GET /api/obrasDevuelve el catálogo completo de obras con sus metadatos públicos.
ETSO ofrece una API pública para consultar las obras y los autores del catálogo y reutilizar sus identificadores, títulos, atribuciones, resultados estilométricos y enlaces.
La información se entrega en formato JSON y puede utilizarse para integrar los datos de ETSO en catálogos, visualizaciones, buscadores o herramientas de investigación.
GET /api/obrasDevuelve el catálogo completo de obras con sus metadatos públicos.
GET /api/obras/{id-publicId-o-slug}Devuelve una sola obra usando su identificador o su slug público.
GET /api/autoresDevuelve el listado completo de autores con sus metadatos y las cinco categorías de obras relacionadas.
GET /api/autores/{id-o-key}Devuelve los metadatos y las cinco categorías de obras de un autor usando su id numérico o su clave textual.
Los cuatro endpoints aceptan el parámetro opcional fields con los nombres de campos públicos de primer nivel separados por comas. Las tablas siguientes describen los campos de cada recurso. Seleccionar un objeto, como resources, devuelve ese objeto público completo.
Sin fields se devuelven todos los campos públicos. La selección conserva las envolturas authors, author, works o work y los metadatos meta que correspondan. Una selección vacía, un campo desconocido o privado, o una ruta anidada como resources.work devuelve HTTP 400.
https://etso.es/api/obras/690677?fields=publicId,displayTitle {
"meta": {
"contentPolicy": {
"includesFullText": false,
"includesSummaries": false,
"excludedFields": [
"fullText",
"text",
"shortSummary",
"summaryText",
"resumen_breve",
"resumen_largo"
]
}
},
"work": {
"publicId": 690677,
"displayTitle": "La francesa Laura"
}
}| Campo | Descripción |
|---|---|
id | Identificador estable de la obra. |
publicId | Identificador público numérico estable de la obra. |
slug | Identificador legible usado en las URLs públicas. |
title | Título tal como viene en la base de datos, incluido el artículo final cuando exista. |
displayTitle | Título transformado con el mismo proceso que utiliza la web de ETSO. |
titleVariants | Otros títulos de la obra tal como vienen en la base de datos. |
displayTitleVariants | Otros títulos transformados con el mismo proceso que utiliza la web. |
genre | Género de la obra. |
origin | Procedencia o fuente del texto usado por ETSO. |
textState | Estado del texto dentro del catálogo. |
addedOn | Fecha de incorporación al catálogo, cuando consta. |
bitesoPublishedOn | Fecha de publicación en BITESO; null si no consta. |
summaryPublishedOn | Fecha de publicación del resumen; null si no consta. |
resultado1 | Resultado estilométrico de la obra en forma de frase. |
flags | Indicadores booleanos sobre informe, resumen, examen de autorías y acceso textual. |
traditionalAttributionText | Atribución tradicional lista para mostrar. |
traditionalAttributionPhrase | Frase de atribución tradicional con texto, Markdown, HTML y partes enlazables. |
stylometryAttributionText | Atribución estilométrica lista para mostrar. |
traditionalAttribution | Atribución tradicional normalizada. |
stylometryAttribution | Atribución estilométrica normalizada. |
resources | Enlaces públicos relacionados dentro de ETSO. |
Dentro de las atribuciones, authorId es el identificador público numérico del autor y authorKey es la clave textual usada en las URLs de ETSO. Son propiedades de los objetos de atribución, no campos de primer nivel.
Consulta de una obra concreta y respuesta completa:
https://etso.es/api/obras/690677 {
"meta": {
"contentPolicy": {
"includesFullText": false,
"includesSummaries": false,
"excludedFields": [
"fullText",
"text",
"shortSummary",
"summaryText",
"resumen_breve",
"resumen_largo"
]
}
},
"work": {
"id": "DESCONOCIDO_FrancesaLaura",
"publicId": 690677,
"slug": "la-francesa-laura",
"title": "Francesa Laura, La",
"displayTitle": "La francesa Laura",
"titleVariants": [],
"displayTitleVariants": [],
"genre": "Comedia",
"origin": "El texto procede de la edición crítica de Álvaro Cuéllar y Germán Vega García-Luengos (Gredos, 2023).",
"textState": "Bueno",
"addedOn": "2021/03",
"bitesoPublishedOn": "2026-06-18",
"summaryPublishedOn": "2026-06-18",
"resultado1": "Los analisis de estilometria permiten asociar esta obra de forma clara con el perfil autorial de Lope de Vega Carpio.",
"flags": {
"inAuthorshipExam": true,
"hasSummary": true,
"hasReport": true,
"hasTextAccess": true
},
"traditionalAttributionText": "Lope de Vega Carpio",
"traditionalAttributionPhrase": {
"text": "Obra atribuida a Lope de Vega Carpio.",
"markdown": "Obra atribuida a [Lope de Vega Carpio](https://etso.es/autores/vega_carpio_lope_de).",
"html": "Obra atribuida a <a href=\"/autores/vega_carpio_lope_de\">Lope de Vega Carpio</a>.",
"parts": [
{
"kind": "text",
"value": "Obra atribuida a "
},
{
"kind": "author",
"value": "Lope de Vega Carpio",
"authorId": 364,
"authorKey": "vega_carpio_lope_de",
"href": "/autores/vega_carpio_lope_de",
"url": "https://etso.es/autores/vega_carpio_lope_de"
},
{
"kind": "text",
"value": "."
}
]
},
"stylometryAttributionText": "Lope de Vega Carpio [Segura]",
"traditionalAttribution": {
"groups": [
{
"members": [
{
"authorId": 364,
"authorKey": "vega_carpio_lope_de",
"authorName": "Lope de Vega Carpio"
}
]
}
],
"connector": "and",
"rawExpression": "vega_carpio_lope_de"
},
"stylometryAttribution": {
"groups": [
{
"members": [
{
"authorId": 364,
"authorKey": "vega_carpio_lope_de",
"authorName": "Lope de Vega Carpio",
"confidence": "segura"
}
]
}
],
"connector": "and",
"rawExpression": "vega_carpio_lope_de[segura]"
},
"resources": {
"work": "/obras/la-francesa-laura",
"summary": "/obras/la-francesa-laura/resumen",
"report": "/informes/analisis-estilometrico-la-francesa-laura",
"textAccess": [
{
"label": "Texto BITESO",
"href": "/biteso/la-francesa-laura",
"kind": "biteso"
}
]
}
}
}Las respuestas se sirven con caché pública: public, max-age=3600, s-maxage=86400, stale-while-revalidate=604800. Para integraciones externas se recomienda cachear localmente la respuesta y no llamar a la API en cada renderizado.
Seleccionar campos reduce el tamaño de la respuesta y la transferencia de datos. Por sí solo no reduce el número de peticiones ni elimina todas las consultas a la base de datos.