AMIRA — Africa Multiple Research Data
Read-only access to AMIRA, the Africa Multiple research-data platform on Omeka S.
Should I use this
Quality & Safety
Findings (1)
- LOWin fetch
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"amira-mcp-server": {
"url": "https://data.africamultiple.uni-bayreuth.de/mcp"
}
}
}Remote endpoints
https://data.africamultiple.uni-bayreuth.de/mcpstreamable-httpWhat it can do
Tool inventory
Tools (35)
🟢get_collection_overview
Start here: corpus counts, text coverage, breakdowns, dates, snapshot freshness and refresh status.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"collection_name": {
"type": "string"
},
"site_url": {
"type": "string"
},
"counts": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"universities": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"items_by_university": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"items_by_research_section": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"items_by_resource_type": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"items_by_language": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"research_sections": {
"type": "array",
"items": {
"type": "string"
}
},
"content_date_range": {
"anyOf": [
{
"type": "object",
"properties": {
"earliest": {
"type": "number"
},
"latest": {
"type": [
"number",
"null"
]
}
},
"required": [
"earliest",
"latest"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"metadata_exposure": {
"type": "string"
},
"data_snapshot": {
"type": "object",
"properties": {
"source": {
"type": "string"
},
"fetched_at": {
"type": "string"
},
"max_modified": {
"type": [
"string",
"null"
]
},
"api_base": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"source",
"fetched_at",
"max_modified",
"api_base",
"note"
],
"additionalProperties": false
},
"refresh": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"in_flight": {
"type": "boolean"
},
"last_attempt": {
"type": [
"string",
"null"
]
},
"last_success": {
"type": [
"string",
"null"
]
},
"error_class": {
"type": [
"string",
"null"
]
}
},
"required": [
"enabled",
"in_flight",
"last_attempt",
"last_success",
"error_class"
],
"additionalProperties": false
}
},
"required": [
"collection_name",
"site_url",
"counts",
"items_by_resource_type",
"content_date_range",
"data_snapshot",
"refresh"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_research_items(keyword, subject, location, location_id, country, ...)
Search digitised research items. Filters are AND-combined; empty results suggest a filter to relax or a stored place name. export links all matches as a file.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Every word must occur in the title, description, abstract, contents or identifiers; quote a phrase to match it exactly",
"type": "string",
"maxLength": 1000
},
"subject": {
"description": "Subject heading, partial (e.g. 'Architecture'). Subjects absorb the former free-form tags — there is no tag filter",
"type": "string",
"maxLength": 1000
},
"location": {
"description": "A place at ANY level of the city→country hierarchy: 'Nigeria' finds Lagos items, 'Lagos' finds only Lagos",
"type": "string",
"maxLength": 1000
},
"location_id": {
"description": "Exact location authority ID, including descendants; avoids homonym matches",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"country": {
"description": "Country only, exact name or common alias ('Côte d'Ivoire' = 'Ivory Coast'). Use `location` for cities",
"type": "string",
"maxLength": 1000
},
"contributor": {
"description": "A person/organisation credited on the item; either name order works",
"type": "string",
"maxLength": 1000
},
"project_id": {
"description": "Project Omeka id",
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
}
]
},
"research_section": {
"description": "e.g. 'Arts & Aesthetics', 'Mobilities'",
"type": "string",
"maxLength": 1000
},
"university": {
"description": "ubt | unilag | ujkz | ufba | external — code or full name",
"type": "string",
"maxLength": 1000
},
"resource_type": {
"description": "e.g. 'Image', 'Text', 'Audio', 'Moving image'",
"type": "string",
"maxLength": 1000
},
"genre": {
"description": "Format/genre descriptor, partial (e.g. 'interview', 'letter', 'photograph')",
"type": "string",
"maxLength": 1000
},
"collection": {
"description": "Item-set title (partial) or id from list_collections",
"type": "string",
"maxLength": 1000
},
"language": {
"description": "Name or ISO code — 'French', 'fr', 'fra' and legacy 'fre' all match",
"type": "string",
"maxLength": 1000
},
"year_from": {
"description": "Keep items whose content dates overlap from this year",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"description": "Keep items whose content dates overlap up to this year",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"has_media": {
"description": "true: only items with digitised files",
"type": "boolean"
},
"added_since": {
"description": "Added to AMIRA on or after this ISO date",
"type": "string",
"maxLength": 40
},
"modified_since": {
"description": "Changed on or after this ISO date",
"type": "string",
"maxLength": 40
},
"export": {
"description": "Return a file link instead of rows",
"type": "string",
"enum": [
"csv",
"jsonl"
]
},
"limit": {
"description": "Default 20, max 100",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_research_item(id, citation_format)
Research-item metadata, linked entities, rights, media files, IIIF manifest and a generated citation (BibTeX/RIS/CSL-JSON). Long fields cap at 25,000 characters.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
}
],
"description": "Omeka id (the number ending its amira_url, e.g. 7392) or a typed id such as research_item:7392"
},
"citation_format": {
"description": "Export format for the generated citation: bibtex (default) → `bibtex`, ris → `ris`, csl-json → `csl_json`",
"type": "string",
"enum": [
"bibtex",
"ris",
"csl-json"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_projects(keyword, university, research_section, principal_investigator, member, ...)
Search project names, descriptions and membership. Returns cited summaries and item counts; use get_project for detail.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Matches the project name, an acronym or the description",
"type": "string",
"maxLength": 1000
},
"university": {
"description": "ubt | unilag | ujkz | ufba | external — code or name. A data facet, not a full AMRC list",
"type": "string",
"maxLength": 1000
},
"research_section": {
"description": "Name or id, e.g. 'Knowledges'",
"type": "string",
"maxLength": 1000
},
"principal_investigator": {
"description": "A PI name; either order works ('Oliver Baumann' finds 'Baumann, Oliver')",
"type": "string",
"maxLength": 1000
},
"member": {
"description": "A project member's name; either order works",
"type": "string",
"maxLength": 1000
},
"institution": {
"description": "Funding/affiliated institution name, partial",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Default 25, max 100",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_project(id)
Project description, team, sections, funders, item counts by type, top subjects and ten sample research items, with citation links.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "number"
}
],
"description": "Project Omeka id (e.g. 37700) or typed id project:37700"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_research_sections
Cluster research sections, funding phases, project/item counts and citation links. Includes the external-collection grouping.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_research_section(name, id)
One research section's description, team and projects, each with its research-item count.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Section name, e.g. 'Arts & Aesthetics'",
"type": "string",
"maxLength": 1000
},
"id": {
"description": "Section Omeka id or typed id section:218",
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "number"
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_persons(keyword, affiliation, limit, offset)
Find canonical person authority records. Names accept either order and ignore accents. Use resolve_entity to disambiguate homonyms.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Matches the name, a name variant or an affiliation",
"type": "string",
"maxLength": 1000
},
"affiliation": {
"description": "Matches the person's affiliations only",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Default 25, max 100",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_person(name, id)
Person affiliations, authority identifiers, PI/member projects, credited items, publications and top collaborators. Lists cap at 50 with totals. Use id to disambiguate.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Full name in either order, with or without accents: 'Beier, Ulli' and 'Ulli Beier' both resolve",
"type": "string",
"maxLength": 1000
},
"id": {
"description": "Exact person Omeka id or typed id (person:123); required to disambiguate homonyms",
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "string",
"maxLength": 64
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_institutions(keyword, limit, offset)
Browse institution authorities by name or acronym (e.g. 'UJKZ'), with project counts and citation links.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Name or acronym, partial",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Default 50, max 200",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_institution(name, id)
Institution or group profile: identifiers, members, funded projects and credited items, with citation links.
Input Schema
{
"type": "object",
"properties": {
"name": {
"description": "Institution or group name, or an acronym",
"type": "string",
"maxLength": 1000
},
"id": {
"description": "Omeka id or typed id organisation:1224",
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "number"
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_cluster_partners(category)
Cluster partner institutions grouped by catalogue category, with citation links.
Input Schema
{
"type": "object",
"properties": {
"category": {
"description": "Optional: amrc | privileged | cooperation | global, or a category label",
"type": "string",
"maxLength": 1000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_groups(keyword, limit, offset)
Browse research groups and associations by name, with citation links.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Name or acronym, partial",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Default 50, max 200",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_subjects(keyword, vocabulary, limit, offset)
Subject headings (LCSH or free tags) ranked by distinct research-item count. Feed a heading into search_research_items.subject.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Substring filter on the subject heading",
"type": "string",
"maxLength": 1000
},
"vocabulary": {
"description": "Only Library of Congress headings or only free tags",
"type": "string",
"enum": [
"lcsh",
"tag"
]
},
"limit": {
"description": "Default 50, max 300",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_locations(filters, country, keyword, near, bbox, ...)
Research places with coordinates and ancestor rollups. One item can count under both city and country. Feed a name into search_research_items.location.
Input Schema
{
"type": "object",
"properties": {
"filters": {
"description": "Research-item filters applied before place counts",
"type": "object",
"properties": {
"keyword": {
"type": "string",
"maxLength": 1000
},
"subject": {
"type": "string",
"maxLength": 1000
},
"location": {
"type": "string",
"maxLength": 1000
},
"country": {
"type": "string",
"maxLength": 1000
},
"contributor": {
"type": "string",
"maxLength": 1000
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"project_id": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
]
},
"research_section": {
"type": "string",
"maxLength": 1000
},
"university": {
"type": "string",
"maxLength": 1000
},
"resource_type": {
"type": "string",
"maxLength": 1000
},
"genre": {
"type": "string",
"maxLength": 1000
},
"collection": {
"type": "string",
"maxLength": 1000
},
"language": {
"type": "string",
"maxLength": 1000
},
"year_from": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"has_media": {
"type": "boolean"
},
"added_since": {
"type": "string",
"maxLength": 40
},
"modified_since": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
},
"country": {
"description": "One country, exact name or alias, plus its cities",
"type": "string",
"maxLength": 1000
},
"keyword": {
"description": "Substring filter on the place name",
"type": "string",
"maxLength": 1000
},
"near": {
"description": "Places within km of a point",
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"km": {
"type": "number",
"exclusiveMinimum": 0
}
},
"required": [
"latitude",
"longitude",
"km"
],
"additionalProperties": false
},
"bbox": {
"description": "[west, south, east, north]",
"minItems": 4,
"maxItems": 4,
"type": "array",
"items": {
"type": "number"
}
},
"limit": {
"description": "Default 50, max 300",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_collections(keyword, limit, offset)
Omeka item sets ranked by research-item count, with catalogue links. Feed an ID into search_research_items.collection.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Substring filter on the collection title",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Default 50, max 200",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_categories(category, keyword, limit, offset)
Ranked formats, languages or resource types used by research items. Feed values into the corresponding search filters.
Input Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"formats",
"genres",
"languages",
"resource_types"
],
"description": "'genres' is an alias of 'formats'. The former 'tags' facet is merged into subjects — use list_subjects"
},
"keyword": {
"description": "Substring filter on the value",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Default 100, max 500",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"category"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_years(filters, bucket, from, to, sort, ...)
Research-item year/decade histogram with dated and undated counts. A date range counts in each spanned bucket. Supports shared item filters and pagination.
Input Schema
{
"type": "object",
"properties": {
"filters": {
"description": "Research-item filters applied before bucketing",
"type": "object",
"properties": {
"keyword": {
"type": "string",
"maxLength": 1000
},
"subject": {
"type": "string",
"maxLength": 1000
},
"location": {
"type": "string",
"maxLength": 1000
},
"country": {
"type": "string",
"maxLength": 1000
},
"contributor": {
"type": "string",
"maxLength": 1000
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"project_id": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
]
},
"research_section": {
"type": "string",
"maxLength": 1000
},
"university": {
"type": "string",
"maxLength": 1000
},
"resource_type": {
"type": "string",
"maxLength": 1000
},
"genre": {
"type": "string",
"maxLength": 1000
},
"collection": {
"type": "string",
"maxLength": 1000
},
"language": {
"type": "string",
"maxLength": 1000
},
"year_from": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"has_media": {
"type": "boolean"
},
"added_since": {
"type": "string",
"maxLength": 40
},
"modified_since": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
},
"bucket": {
"description": "Default 'year'",
"type": "string",
"enum": [
"year",
"decade"
]
},
"from": {
"description": "Earliest year to report (inclusive)",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"to": {
"description": "Latest year to report (inclusive)",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"sort": {
"description": "Default 'chronological' (oldest first); 'count' ranks by item count",
"type": "string",
"enum": [
"chronological",
"count"
]
},
"limit": {
"description": "Default 200, max 500",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"total_matches": {
"type": "number"
},
"offset": {
"type": "number"
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"type": "number"
},
"bucket": {
"type": "string"
},
"sort": {
"type": "string"
},
"distinct_buckets": {
"type": "number"
},
"dated_items": {
"type": "number"
},
"undated_items": {
"type": "number"
},
"year_range": {
"type": "object",
"properties": {
"min": {
"type": "number"
},
"max": {
"type": "number"
}
},
"required": [
"min",
"max"
],
"additionalProperties": false
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item_count": {
"type": "number"
},
"year": {
"type": "number"
},
"decade": {
"type": "string"
},
"from": {
"type": "number"
},
"to": {
"type": "number"
}
},
"required": [
"item_count"
],
"additionalProperties": false
}
}
},
"required": [
"count",
"total_matches",
"offset",
"has_more",
"bucket",
"sort",
"distinct_buckets",
"dated_items",
"undated_items",
"results"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢search_publications(keyword, author, type, venue, subject, ...)
AND-filtered bibliography, newest first. Keyword includes PDF text and returns match snippets. citation_format returns citations per page; export links every match as one file. Cite amira_url.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Title, abstracts, venue, subjects or full text; every word must match, quote a phrase",
"type": "string",
"maxLength": 1000
},
"author": {
"description": "Author/editor name, either name order",
"type": "string",
"maxLength": 1000
},
"type": {
"description": "Exact type; discover values with list_publication_facets",
"type": "string",
"maxLength": 1000
},
"venue": {
"description": "Journal/book title, partial",
"type": "string",
"maxLength": 1000
},
"subject": {
"description": "Subject heading, partial",
"type": "string",
"maxLength": 1000
},
"language": {
"description": "Language name or ISO code",
"type": "string",
"maxLength": 1000
},
"has_fulltext": {
"description": "Filter by extracted full-text availability",
"type": "boolean"
},
"year_from": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"added_since": {
"description": "Added to AMIRA on or after this ISO date",
"type": "string",
"maxLength": 40
},
"citation_format": {
"description": "Omit for summaries; pages carry bibtex, ris or csl_json",
"type": "string",
"enum": [
"bibtex",
"ris",
"csl-json"
]
},
"export": {
"description": "Return a file link instead of rows",
"type": "string",
"enum": [
"csv",
"jsonl",
"bibtex",
"ris",
"csl-json"
]
},
"limit": {
"description": "Default 25; max 100 summaries or 25 exports, also byte-bounded",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_publication(id, citation_format, include_fulltext, fulltext_offset, fulltext_max_chars)
Publication metadata and citation export (BibTeX default). Full text is opt-in and paginated. Cite amira_url; DOI/repository links are additional sources.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
}
],
"description": "Publication Omeka id or typed id publication:29919"
},
"citation_format": {
"description": "Default bibtex; selects bibtex, ris or csl_json field",
"type": "string",
"enum": [
"bibtex",
"ris",
"csl-json"
]
},
"include_fulltext": {
"description": "Default false — set true to include the extracted full text",
"type": "boolean"
},
"fulltext_offset": {
"description": "Start offset into the full text (chars), with include_fulltext",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fulltext_max_chars": {
"description": "Max full-text characters to return (default/max 25000)",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_publication_facets(facet, keyword, author, type, venue, ...)
Ranked facets for the entire filtered bibliography before pagination. Uses the same selection rules as search_publications.
Input Schema
{
"type": "object",
"properties": {
"facet": {
"type": "string",
"enum": [
"type",
"year",
"language",
"subject",
"author",
"venue"
]
},
"keyword": {
"description": "Title, abstracts, venue, subjects or full text; every word must match, quote a phrase",
"type": "string",
"maxLength": 1000
},
"author": {
"description": "Author/editor name, either name order",
"type": "string",
"maxLength": 1000
},
"type": {
"description": "Exact type; discover values with list_publication_facets",
"type": "string",
"maxLength": 1000
},
"venue": {
"description": "Journal/book title, partial",
"type": "string",
"maxLength": 1000
},
"subject": {
"description": "Subject heading, partial",
"type": "string",
"maxLength": 1000
},
"language": {
"description": "Language name or ISO code",
"type": "string",
"maxLength": 1000
},
"has_fulltext": {
"description": "Filter by extracted full-text availability",
"type": "boolean"
},
"year_from": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"added_since": {
"description": "Added to AMIRA on or after this ISO date",
"type": "string",
"maxLength": 40
},
"limit": {
"description": "Default 25, max 100",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"facet"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"facet": {
"type": "string"
},
"total_publications": {
"type": "number"
},
"missing_values": {
"type": "number"
},
"count": {
"type": "number"
},
"total_matches": {
"type": "number"
},
"offset": {
"type": "number"
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"type": "number"
},
"filters": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"requested_limit": {
"type": "number"
},
"effective_limit": {
"type": "number"
},
"response_limited": {
"type": "boolean"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"publication_count": {
"type": "number"
},
"amira_url": {
"type": "string"
}
},
"required": [
"value",
"publication_count"
],
"additionalProperties": false
}
}
},
"required": [
"facet",
"total_publications",
"missing_values",
"count",
"total_matches",
"offset",
"has_more",
"results"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_journals(keyword, limit, offset)
Publication venues ranked by linked bibliography records, with ISSN and catalogue links.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Substring filter on the journal title",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Default 50, max 200",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢find_related(entity_type, value, limit)
Subjects, people, places and projects connected through shared records. Per-corpus counts deduplicate each record; subject/person seeds also include publications. Returns ambiguity and cited samples.
Input Schema
{
"type": "object",
"properties": {
"entity_type": {
"type": "string",
"enum": [
"subject",
"location",
"person",
"project"
],
"description": "What the value denotes. Tags are merged into subjects — there is no tag pivot"
},
"value": {
"type": "string",
"maxLength": 1000,
"description": "The entity to pivot on. subject: substring of a heading ('Islam'). location: any level of the city→country hierarchy ('Nigeria' includes Lagos items). person: a name in either order, accent-insensitive ('Beier, Ulli'). project: an Omeka id ('37700'), a legacy key, or a substring of the project label"
},
"limit": {
"description": "Per-list cap, default 20, max 50",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"entity_type",
"value"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_podcasts(keyword, series, person, language, year_from, ...)
Search podcast metadata and transcripts. Text-only hits include snippets; full transcripts require get_podcast with opt-in.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Every word must occur in the title, abstract or transcript; quote a phrase to match it exactly",
"type": "string",
"maxLength": 1000
},
"series": {
"description": "Series title, partial (e.g. 'Cluster Conversations')",
"type": "string",
"maxLength": 1000
},
"person": {
"description": "A speaker/host name; either name order works",
"type": "string",
"maxLength": 1000
},
"language": {
"description": "Name or ISO code — 'French', 'fr', 'fra' all match",
"type": "string",
"maxLength": 1000
},
"year_from": {
"description": "Earliest year",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"description": "Latest year",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"limit": {
"description": "Default 20, max 100",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_podcast(id, include_transcript, transcript_offset, transcript_max_chars)
Podcast detail, duration, audio file and citation link; says which model generated the transcript. Transcript is opt-in, bounded and pageable.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
}
],
"description": "Podcast id from search_podcasts, e.g. 39121, or podcast:39121"
},
"include_transcript": {
"description": "Default false — set true to include the transcript text",
"type": "boolean"
},
"transcript_offset": {
"description": "Start offset into the transcript (chars), with include_transcript",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"transcript_max_chars": {
"description": "Max transcript characters to return (default/max 25000)",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_videos(keyword, playlist, speaker, language, year_from, ...)
Search video metadata and transcripts. Text-only hits include snippets; full transcripts require get_video with opt-in.
Input Schema
{
"type": "object",
"properties": {
"keyword": {
"description": "Every word must occur in the title, abstract or transcript; quote a phrase to match it exactly",
"type": "string",
"maxLength": 1000
},
"playlist": {
"description": "Playlist title, partial",
"type": "string",
"maxLength": 1000
},
"speaker": {
"description": "A speaker name; either name order works",
"type": "string",
"maxLength": 1000
},
"language": {
"description": "Name or ISO code — 'French', 'fr', 'fra' all match",
"type": "string",
"maxLength": 1000
},
"year_from": {
"description": "Earliest year",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"description": "Latest year",
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"limit": {
"description": "Default 20, max 100",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_video(id, include_transcript, transcript_offset, transcript_max_chars)
Video detail, thumbnail and citation link; says how the transcript was produced when recorded. Transcript is opt-in, bounded and pageable.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
}
],
"description": "Video id from search_videos, e.g. 39218, or video:39218"
},
"include_transcript": {
"description": "Default false — set true to include the transcript text",
"type": "boolean"
},
"transcript_offset": {
"description": "Start offset into the transcript (chars), with include_transcript",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"transcript_max_chars": {
"description": "Max transcript characters to return (default/max 25000)",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢resolve_entity(query, type, limit, offset)
Resolve a label or typed ID to cited candidates. Returns ambiguity instead of merging names. Use a returned id with get_entity_graph or get_* tools.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"type": {
"type": "string",
"enum": [
"person",
"project",
"section",
"organisation",
"location",
"subject",
"format",
"language",
"collection",
"research_item",
"publication",
"journal",
"podcast",
"video",
"playlist"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"total_matches": {
"type": "number"
},
"offset": {
"type": "number"
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"type": "number"
},
"requested_limit": {
"type": "number"
},
"effective_limit": {
"type": "number"
},
"response_limited": {
"type": "boolean"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"person",
"project",
"section",
"organisation",
"location",
"subject",
"format",
"language",
"collection",
"research_item",
"publication",
"journal",
"podcast",
"video",
"playlist"
]
},
"label": {
"type": "string"
},
"omeka_id": {
"type": [
"number",
"null"
]
},
"amira_url": {
"type": [
"string",
"null"
]
},
"resolved": {
"type": "boolean"
}
},
"required": [
"id",
"type",
"label",
"omeka_id",
"amira_url",
"resolved"
],
"additionalProperties": false
}
},
"ambiguous": {
"type": "boolean"
},
"snapshot_id": {
"type": "string"
}
},
"required": [
"count",
"total_matches",
"offset",
"has_more",
"results",
"ambiguous",
"snapshot_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_entity_graph(seed, max_nodes, max_edges, edge_id, snapshot_id, ...)
One-hop graph from a typed ID: explicit catalogue links and derived co-occurrence with distinct-record counts and cited evidence. Pass edge_id to page its evidence; pin snapshot_id across pages.
Input Schema
{
"type": "object",
"properties": {
"seed": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"max_nodes": {
"description": "Default 40, max 100",
"type": "integer",
"minimum": 2,
"maximum": 9007199254740991
},
"max_edges": {
"description": "Default 50, max 200",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"edge_id": {
"type": "string",
"maxLength": 64
},
"snapshot_id": {
"type": "string",
"maxLength": 64
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Evidence page size, default 20, max 50",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"seed"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"snapshot_id": {
"type": "string"
},
"seed": {
"type": "string"
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"person",
"project",
"section",
"organisation",
"location",
"subject",
"format",
"language",
"collection",
"research_item",
"publication",
"journal",
"podcast",
"video",
"playlist"
]
},
"label": {
"type": "string"
},
"omeka_id": {
"type": [
"number",
"null"
]
},
"amira_url": {
"type": [
"string",
"null"
]
},
"resolved": {
"type": "boolean"
}
},
"required": [
"id",
"type",
"label",
"omeka_id",
"amira_url",
"resolved"
],
"additionalProperties": false
}
},
"edges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"source": {
"type": "string"
},
"target": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"explicit",
"cooccurrence"
]
},
"relation": {
"type": "string"
},
"count": {
"type": "number"
},
"research_item_count": {
"type": "number"
},
"publication_count": {
"type": "number"
},
"video_count": {
"type": "number"
},
"podcast_count": {
"type": "number"
},
"evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"corpus": {
"type": "string"
},
"title": {
"type": "string"
},
"amira_url": {
"type": "string"
}
},
"required": [
"id",
"corpus",
"title",
"amira_url"
],
"additionalProperties": false
}
},
"evidence_total": {
"type": "number"
}
},
"required": [
"id",
"source",
"target",
"kind",
"relation",
"count",
"research_item_count",
"publication_count",
"video_count",
"podcast_count",
"evidence",
"evidence_total"
],
"additionalProperties": false
}
},
"total_edges": {
"type": "number"
},
"truncated": {
"type": "boolean"
},
"bounds": {
"type": "object",
"properties": {
"max_nodes": {
"type": "number"
},
"max_edges": {
"type": "number"
},
"hops": {
"type": "number"
}
},
"required": [
"max_nodes",
"max_edges",
"hops"
],
"additionalProperties": false
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"corpus": {
"type": "string"
},
"title": {
"type": "string"
},
"amira_url": {
"type": "string"
}
},
"required": [
"id",
"corpus",
"title",
"amira_url"
],
"additionalProperties": false
}
},
"count": {
"type": "number"
},
"total_matches": {
"type": "number"
},
"offset": {
"type": "number"
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"type": "number"
},
"requested_limit": {
"type": "number"
},
"effective_limit": {
"type": "number"
},
"response_limited": {
"type": "boolean"
}
},
"required": [
"snapshot_id",
"seed"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_text_passages(ids, keyword, radius, offset, limit)
Find literal accent-insensitive keyword passages in selected publication/video/podcast IDs. Original UTF-16 offsets, bounded context, and citations. Requires full text exposure; no semantic ranking.
Input Schema
{
"type": "object",
"properties": {
"ids": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"description": "publication:, video: or podcast: ids"
},
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"radius": {
"type": "integer",
"minimum": 20,
"maximum": 500
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Default 10, max 20",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"required": [
"ids",
"keyword"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"count": {
"type": "number"
},
"total_matches": {
"type": "number"
},
"offset": {
"type": "number"
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"type": "number"
},
"requested_limit": {
"type": "number"
},
"effective_limit": {
"type": "number"
},
"response_limited": {
"type": "boolean"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"amira_url": {
"type": "string"
},
"start": {
"type": "number"
},
"end": {
"type": "number"
},
"match_start": {
"type": "number"
},
"match_end": {
"type": "number"
},
"text": {
"type": "string"
}
},
"required": [
"id",
"title",
"amira_url",
"start",
"end",
"match_start",
"match_end",
"text"
],
"additionalProperties": false
}
},
"snapshot_id": {
"type": "string"
},
"scanned_matches_capped": {
"type": "boolean"
},
"unavailable_ids": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"count",
"total_matches",
"offset",
"has_more",
"results",
"snapshot_id",
"scanned_matches_capped",
"unavailable_ids"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢compare_collections(cohorts, filters)
Compare 2–4 projects or item sets with identical research-item filters. Reports denominators, missingness, dates and top types/languages; collections can overlap.
Input Schema
{
"type": "object",
"properties": {
"cohorts": {
"minItems": 2,
"maxItems": 4,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"project",
"collection"
]
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"type",
"id"
],
"additionalProperties": false
}
},
"filters": {
"type": "object",
"properties": {
"keyword": {
"type": "string",
"maxLength": 1000
},
"subject": {
"type": "string",
"maxLength": 1000
},
"location": {
"type": "string",
"maxLength": 1000
},
"country": {
"type": "string",
"maxLength": 1000
},
"contributor": {
"type": "string",
"maxLength": 1000
},
"location_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"project_id": {
"anyOf": [
{
"type": "string",
"maxLength": 256
},
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
]
},
"research_section": {
"type": "string",
"maxLength": 1000
},
"university": {
"type": "string",
"maxLength": 1000
},
"resource_type": {
"type": "string",
"maxLength": 1000
},
"genre": {
"type": "string",
"maxLength": 1000
},
"collection": {
"type": "string",
"maxLength": 1000
},
"language": {
"type": "string",
"maxLength": 1000
},
"year_from": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"year_to": {
"type": "integer",
"minimum": 0,
"maximum": 2200
},
"has_media": {
"type": "boolean"
},
"added_since": {
"type": "string",
"maxLength": 40
},
"modified_since": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
}
},
"required": [
"cohorts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"snapshot_id": {
"type": "string"
},
"overlap_note": {
"type": "string"
},
"cohorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"amira_url": {
"type": "string"
},
"total_items": {
"type": "number"
},
"matched_items": {
"type": "number"
},
"missing": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"resource_types": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"languages": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"date_range": {
"anyOf": [
{
"type": "object",
"properties": {
"earliest": {
"type": "number"
},
"latest": {
"type": "number"
}
},
"required": [
"earliest",
"latest"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"type",
"id",
"name",
"amira_url",
"total_items",
"matched_items",
"missing",
"resource_types",
"languages",
"date_range"
],
"additionalProperties": false
}
}
},
"required": [
"snapshot_id",
"overlap_note",
"cohorts"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_data_quality
Snapshot coverage and missing metadata, unresolved loaded-authority links, and sanitized refresh status. Missing catalogue metadata is not evidence of real-world absence.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"snapshot_id": {
"type": "string"
},
"fetched_at": {
"type": "string"
},
"schema_version": {
"type": "number"
},
"counts": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"missing": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"unresolved_entities": {
"type": "number"
},
"literal_entities": {
"type": "number"
},
"refresh": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"in_flight": {
"type": "boolean"
},
"last_attempt": {
"type": [
"string",
"null"
]
},
"last_success": {
"type": [
"string",
"null"
]
},
"error_class": {
"type": [
"string",
"null"
]
}
},
"required": [
"enabled",
"in_flight",
"last_attempt",
"last_success",
"error_class"
],
"additionalProperties": false
}
},
"required": [
"snapshot_id",
"fetched_at",
"schema_version",
"counts",
"missing",
"unresolved_entities",
"literal_entities",
"refresh"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_snapshot_changes(from_id, to_id, corpus, offset, limit)
Page added/updated/deleted records between retained snapshots from this Omeka instance. Lists available snapshot IDs when fewer than two exist. For recent additions without history, use added_since on the search tools.
Input Schema
{
"type": "object",
"properties": {
"from_id": {
"type": "string",
"maxLength": 64
},
"to_id": {
"type": "string",
"maxLength": 64
},
"corpus": {
"type": "string",
"enum": [
"persons",
"organisations",
"locations",
"projects",
"research_sections",
"research_items",
"publications",
"journals",
"podcasts",
"videos",
"playlists",
"languages",
"item_sets",
"subjects"
]
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 100000
},
"limit": {
"description": "Default 30, max 100",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ready",
"history_unavailable"
]
},
"snapshots": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"fetched_at": {
"type": "string"
}
},
"required": [
"id",
"fetched_at"
],
"additionalProperties": false
}
},
"from_id": {
"type": "string"
},
"to_id": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"corpus": {
"type": "string"
},
"id": {
"type": "number"
},
"change": {
"type": "string",
"enum": [
"added",
"updated",
"deleted"
]
},
"title": {
"type": "string"
},
"amira_url": {
"type": "string"
}
},
"required": [
"corpus",
"id",
"change",
"title",
"amira_url"
],
"additionalProperties": false
}
},
"count": {
"type": "number"
},
"total_matches": {
"type": "number"
},
"offset": {
"type": "number"
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"type": "number"
},
"requested_limit": {
"type": "number"
},
"effective_limit": {
"type": "number"
},
"response_limited": {
"type": "boolean"
}
},
"required": [
"status",
"snapshots"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search(query, limit, types)
Ranked search across items, publications, videos, podcasts, projects and sections. Returns typed IDs, titles and citation URLs. Fetch selected records for evidence.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 1000,
"description": "A few keywords, names, places or themes — e.g. 'Yoruba architecture'. Terms are matched individually, so concise queries beat full sentences"
},
"limit": {
"description": "Default 10, max 50",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"types": {
"description": "Restrict to these record kinds",
"type": "array",
"items": {
"type": "string",
"enum": [
"item",
"publication",
"video",
"podcast",
"project",
"section"
]
}
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Typed record id, e.g. 'item:7392'"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "The AMIRA/Omeka public record page"
}
},
"required": [
"id",
"title",
"url"
],
"additionalProperties": false
}
},
"requested_limit": {
"type": "number"
},
"effective_limit": {
"type": "number"
}
},
"required": [
"results"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢fetch(id, include_transcript, transcript_offset, transcript_max_chars, include_fulltext, ...)
Read a typed search result as a cited document. Full text/transcripts are opt-in and pageable; metadata and text respect exposure policy. Unknown ID returns an error.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 1000,
"description": "A typed record id from search (item:7392, pub:30001, video:…, podcast:…, project:…, section:…) or resolve_entity"
},
"include_transcript": {
"description": "Default false — set true to append the video/podcast transcript",
"type": "boolean"
},
"transcript_offset": {
"description": "Start offset into the transcript (chars), with include_transcript",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"transcript_max_chars": {
"description": "Max transcript characters to return (default/max 25000)",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"include_fulltext": {
"description": "Default false — set true to append a publication's extracted full text",
"type": "boolean"
},
"fulltext_offset": {
"description": "Start offset into the full text (chars), with include_fulltext",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fulltext_max_chars": {
"description": "Max full-text characters to return (default/max 25000)",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"max_chars": {
"description": "Cap on the whole returned text body, default/max 25000",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"description": "Present instead of the record when the id is unknown",
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"suggested_tool": {
"type": "string"
}
},
"required": [
"code",
"message"
],
"additionalProperties": false
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Evidence