Hispanic Legacy — read API API
the most trusted source on Spain's contributions to world science, exploration and culture. Every path here is emitted as a static file by the same build that wrote this document.
the most trusted source on Spain's contributions to world science, exploration and culture. Every path here is emitted as a static file by the same build that wrote this document.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/hispanic-legacy-com:hispanic-legacy-read-api-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
{
"openapi": "3.1.0",
"x-comment": "GENERATED by the Citarium compiler — do not edit",
"x-citarium-framework": "0.9.2",
"info": {
"title": "Hispanic Legacy — read API",
"description": "the most trusted source on Spain's contributions to world science, exploration and culture. Every path here is emitted as a static file by the same build that wrote this document.",
"version": "2026.1101.917",
"license": {
"name": "CC-BY-4.0",
"identifier": "CC-BY-4.0"
}
},
"servers": [
{
"url": "https://hispanic-legacy.com"
}
],
"tags": [
{
"name": "Corpus",
"description": "The knowledge itself: objects, their index and the evidence behind them."
},
{
"name": "Deployment",
"description": "What this deployment is and what it serves: manifests, versions, this document."
}
],
"paths": {
"/llms-full/index.json": {
"get": {
"operationId": "getLlmsFullShards",
"summary": "Index of the full corpus's pieces",
"description": "Where each piece of llms-full.txt lives and how big it is. Join them in order with newlines and you have the whole file, byte for byte; the whole file is still served at /llms-full.txt for anyone who wants it in one request.",
"tags": [
"Corpus"
],
"responses": {
"200": {
"description": "Index of the full corpus's pieces",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"whole",
"total_bytes",
"shard_bytes",
"join",
"shards"
],
"properties": {
"whole": {
"type": "string",
"format": "uri"
},
"total_bytes": {
"type": "integer"
},
"shard_bytes": {
"type": "integer"
},
"join": {
"type": "string",
"description": "The separator to join the pieces with."
},
"shards": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"bytes"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"bytes": {
"type": "integer"
}
}
}
}
}
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/feed.json": {
"get": {
"operationId": "getFeedJson",
"summary": "JSON Feed of recent changes",
"description": "JSON Feed 1.1. Its shape is that specification's, not ours.",
"tags": [
"Corpus"
],
"responses": {
"200": {
"description": "JSON Feed of recent changes",
"content": {
"application/feed+json": {
"schema": {
"type": "object"
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/graph.json": {
"get": {
"operationId": "getGraph",
"summary": "The relation graph",
"description": "Nodes and edges between knowledge objects. Shape not specified here; read `nodes` and `edges`.",
"tags": [
"Corpus"
],
"responses": {
"200": {
"description": "The relation graph",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/api/index.json": {
"get": {
"operationId": "getEntityIndex",
"summary": "Every knowledge object, as cards",
"description": "One entry per object with its identity, summary, tags and both URLs. This is the list to read before requesting any single object.",
"tags": [
"Corpus"
],
"responses": {
"200": {
"description": "Every knowledge object, as cards",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/api/sources.json": {
"get": {
"operationId": "getSourceRegistry",
"summary": "The evidence layer",
"description": "Every source a claim in this corpus rests on, with its tier, reliability and licence.",
"tags": [
"Corpus"
],
"responses": {
"200": {
"description": "The evidence layer",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"description": "Stable source id, referenced by claims"
},
"title": {
"type": "string",
"minLength": 1
},
"url": {
"description": "Omit only for offline sources (books, interviews)",
"type": "string",
"format": "uri"
},
"publisher": {
"type": "string",
"minLength": 1
},
"tier": {
"type": "string",
"enum": [
"primary",
"secondary",
"derived"
]
},
"reliability": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Editorial judgement of the source's reliability, 0–1"
},
"license": {
"description": "SPDX id or human note; machine-readable when possible",
"type": "string",
"minLength": 1
},
"accessed": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date the source was last accessed/verified"
},
"notes": {
"type": "string"
}
},
"required": [
"id",
"title",
"tier",
"reliability",
"accessed"
],
"additionalProperties": false
}
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/openapi.json": {
"get": {
"operationId": "getOpenapi",
"summary": "This document",
"description": "The generated OpenAPI 3.1 description of these paths. Regenerated by every build, so it cannot describe an API this instance no longer serves.",
"tags": [
"Deployment"
],
"responses": {
"200": {
"description": "This document",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/status.json": {
"get": {
"operationId": "getStatus",
"summary": "What this deployment is running",
"description": "Runtime SemVer, corpus snapshot version, object count, corpus hash and the date the knowledge last moved — plus the MCP endpoint and the protocol revisions it answers. Answering 'which version am I talking to' used to require reading four surfaces and guessing which number meant what.",
"tags": [
"Deployment"
],
"responses": {
"200": {
"description": "What this deployment is running",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"live",
"instance",
"runtime_version",
"corpus_version",
"corpus_hash"
],
"properties": {
"live": {
"type": "boolean"
},
"instance": {
"type": "string"
},
"runtime_version": {
"type": "string",
"description": "SemVer of the software and the tool contract."
},
"corpus_version": {
"type": "string",
"description": "Corpus snapshot, YYYY.MMDD.OBJECTS (ADR-017)."
},
"corpus_objects": {
"type": "integer"
},
"corpus_hash": {
"type": "string",
"description": "Digest of the knowledge, independent of when it was built."
},
"corpus_updated": {
"type": "string",
"format": "date"
}
}
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/.well-known/mcp/server.json": {
"get": {
"operationId": "getMcpManifest",
"summary": "MCP server manifest",
"description": "Where this instance's MCP server lives and what it declares.",
"tags": [
"Deployment"
],
"responses": {
"200": {
"description": "MCP server manifest",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/skill.json": {
"get": {
"operationId": "getSkillManifest",
"summary": "Skill manifest",
"description": "The agent skill this instance publishes.",
"tags": [
"Deployment"
],
"responses": {
"200": {
"description": "Skill manifest",
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
}
},
"404": {
"description": "Not served by this deployment — the manifest at /ai-index.json lists what is."
}
}
}
},
"/api/k/{id}.json": {
"get": {
"operationId": "getKnowledgeObject",
"tags": [
"Corpus"
],
"summary": "One knowledge object",
"description": "The full object as served: everything its author wrote, plus the URLs and the schema.org projection the compiler adds.",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"description": "The object's id. The complete list is at /api/index.json — it is not repeated here.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "The knowledge object",
"content": {
"application/json": {
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"entity",
"guide",
"comparison",
"faq",
"glossary"
]
},
{
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
}
]
},
"name": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"locale": {
"type": "string",
"const": "en",
"description": "v0.1 is single-locale by scope; declaring a locale is a contract (pt-BR incident)"
},
"tags": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
}
},
"relations": {
"default": [],
"type": "array",
"items": {
"type": "object",
"properties": {
"rel": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"target": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"description": "id of another knowledge object in this instance"
}
},
"required": [
"rel",
"target"
],
"additionalProperties": false
}
},
"questions": {
"default": [],
"description": "Real questions this object answers (feeds FAQ/AAR intents)",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"claims": {
"minItems": 1,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^c\\d+$"
},
"text": {
"type": "string",
"minLength": 1,
"description": "The assertion, as published"
},
"sources": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"description": "Source ids backing this claim. No sources → compiler refuses to publish."
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"id",
"text",
"sources",
"confidence"
],
"additionalProperties": false
}
},
"takeaways": {
"default": [],
"description": "The 2-5 things a reader/agent should retain. Guides and comparisons want these.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"faqs": {
"default": [],
"description": "Question→claim bindings; the compiler projects them as FAQPage JSON-LD",
"type": "array",
"items": {
"type": "object",
"properties": {
"q": {
"type": "string",
"minLength": 5
},
"claim": {
"type": "string",
"pattern": "^c\\d+$"
}
},
"required": [
"q",
"claim"
],
"additionalProperties": false
}
},
"evidence_tier": {
"type": "string",
"enum": [
"primary",
"secondary",
"derived"
],
"description": "Contract: the weakest tier among this object's claims' sources"
},
"evidence": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"production",
"simulation",
"benchmark",
"industry_observation",
"theoretical"
]
},
"source_types": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"personal_experience",
"production_system",
"benchmark",
"paper",
"industry_observation"
]
},
"description": "One or more provenance sources, strongest first"
}
},
"required": [
"level",
"source_types"
],
"additionalProperties": false
},
"moat_flag": {
"default": false,
"description": "True if this object carries proprietary evidence (the moat)",
"type": "boolean"
},
"winning_edge": {
"type": "string",
"minLength": 1,
"description": "Why this piece wins its intent vs. the best existing source (v2.3 §1)"
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"last_verified": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"body": {
"description": "Markdown prose (from .md body). Optional for pure-data objects.",
"type": "string"
},
"media": {
"default": [],
"description": "ADR-025: imágenes como unidades citables, atribuidas y licenciadas",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
"description": "La imagen tiene que ser citable por sí misma"
},
"file": {
"description": "Ruta relativa a la raíz de la instancia. Excluyente con `url`.",
"type": "string",
"minLength": 1
},
"url": {
"description": "URL del MISMO origen que canonical_base_url. Excluyente con `file`.",
"type": "string",
"format": "uri"
},
"variants": {
"default": [],
"description": "Rutas de la misma imagen a otros tamaños; el ancho se mide del fichero",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"alt": {
"type": "string",
"minLength": 1,
"description": "Obligatorio: lo único que lee un agente sin visión"
},
"license_spdx": {
"type": "string",
"minLength": 1,
"description": "Obligatorio: sin licencia, nadie puede reutilizarla"
},
"license_grant": {
"description": "ADR-028: qué se puede hacer con esta imagen, acción por acción",
"type": "object",
"properties": {
"subject_type": {
"type": "string",
"enum": [
"public",
"personal_agent",
"enterprise_agent",
"organization"
]
},
"actions": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"read",
"display",
"analyze",
"embed",
"cache",
"cite",
"derive",
"redistribute",
"sublicense",
"train",
"commercial_use",
"resell"
]
},
"description": "Lo que se concede. Lo que no está aquí, no está concedido"
},
"purposes": {
"default": [],
"description": "Para qué. Vacío = sin restricción de propósito",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"territories": {
"default": [],
"description": "Dónde. Vacío = sin restricción territorial",
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
}
},
"valid_until": {
"description": "Hasta cuándo. Ausente = sin caducidad declarada",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"attribution_required": {
"default": true,
"type": "boolean"
}
},
"required": [
"subject_type",
"actions",
"purposes",
"territories",
"attribution_required"
],
"additionalProperties": false
},
"permissions": {
"description": "ADR-029: qué usos autoriza esta imagen. Ausente = solo mostrarla a personas",
"type": "object",
"properties": {
"humanDisplay": {
"type": "boolean"
},
"machineDisplay": {
"type": "boolean"
},
"machineAnalysis": {
"type": "boolean"
},
"embedding": {
"type": "boolean"
},
"derivativeCreation": {
"type": "boolean"
},
"redistribution": {
"type": "boolean"
},
"commercialReuse": {
"type": "boolean"
},
"modelTraining": {
"type": "boolean"
}
},
"additionalProperties": false
},
"credit": {
"type": "string",
"minLength": 1,
"description": "Quién la hizo; sin esto no hay atribución posible"
},
"caption": {
"description": "Prosa para humanos",
"type": "string",
"minLength": 1
},
"depicts": {
"default": [],
"description": "Qué muestra, en términos del dominio",
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
}
},
"captured": {
"description": "Cuándo — en viajes, una foto de hace ocho años miente",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"supports": {
"description": "La claim que evidencia, si evidencia alguna",
"type": "string",
"pattern": "^c\\d+$"
}
},
"required": [
"id",
"variants",
"alt",
"license_spdx",
"credit",
"depicts"
],
"additionalProperties": false
}
},
"x": {
"default": {},
"description": "ADR-027: campos declarados por la instancia en `extensions`",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"canonical_url": {
"type": "string",
"format": "uri",
"description": "The human page for this object. Added by the compiler; not authored."
},
"api_url": {
"type": "string",
"format": "uri",
"description": "This document's own URL, so a copy of it can be traced back. Added by the compiler."
},
"jsonld": {
"type": "object",
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://artifacts.apis.io/hispanic-legacy-com/openapi/_original/hispanic-legacy-com-api-openapi.json