{"components":{"responses":{"Error400":{"content":{"application/problem+json":{"examples":{"consulta-invalida":{"value":{"detail":"El parámetro «consulta» debe tener entre 2 y 2000 caracteres.","status":400,"title":"Consulta no válida","type":"https://boletinclaro.es/v1/errores/consulta-invalida"}},"parametro-invalido":{"value":{"detail":"El parámetro «limite» debe ser un número entre 1 y 50.","status":400,"title":"Parámetro no válido","type":"https://boletinclaro.es/v1/errores/parametro-invalido"}}},"schema":{"$ref":"#/components/schemas/Problema"}}},"description":"Un parámetro no vale."},"Error401":{"content":{"application/problem+json":{"examples":{"clave-no-valida":{"value":{"detail":"Clave de API no válida o revocada.","status":401,"title":"Clave de API no válida","type":"https://boletinclaro.es/v1/errores/clave-no-valida"}}},"schema":{"$ref":"#/components/schemas/Problema"}}},"description":"La clave de API no existe o está revocada."},"Error403":{"content":{"application/problem+json":{"examples":{"sin-acceso-api":{"value":{"detail":"Tu plan no incluye acceso programático a la API.","status":403,"title":"Tu plan no incluye la API","type":"https://boletinclaro.es/v1/errores/sin-acceso-api"}}},"schema":{"$ref":"#/components/schemas/Problema"}}},"description":"El plan del espacio de trabajo no incluye acceso a la API."},"Error404":{"content":{"application/problem+json":{"examples":{"no-encontrado":{"value":{"detail":"No tenemos registros de dinero público para el NIF A78053147.","status":404,"title":"No encontrado","type":"https://boletinclaro.es/v1/errores/no-encontrado"}},"ruta-no-encontrada":{"value":{"detail":"La ruta «/v1/noexiste» no existe en esta API. Las rutas que sí existen están en https://boletinclaro.es/v1 y en https://boletinclaro.es/v1/openapi.json.","status":404,"title":"Ruta no encontrada","type":"https://boletinclaro.es/v1/errores/ruta-no-encontrada"}}},"schema":{"$ref":"#/components/schemas/Problema"}}},"description":"No hay registros para lo pedido, o la ruta no existe."},"Error429":{"content":{"application/problem+json":{"examples":{"cuota-agotada":{"value":{"detail":"Has agotado la cuota mensual de tu clave de API. Se renueva el día 1.","status":429,"title":"Cuota mensual agotada","type":"https://boletinclaro.es/v1/errores/cuota-agotada"}},"limite-por-ip":{"value":{"detail":"Has superado el límite de peticiones por minuto. Usa una clave de API para subirlo.","status":429,"title":"Demasiadas peticiones","type":"https://boletinclaro.es/v1/errores/limite-por-ip"}},"limite-por-minuto":{"value":{"detail":"Has superado el ritmo de peticiones por minuto de tu clave.","status":429,"title":"Demasiadas peticiones","type":"https://boletinclaro.es/v1/errores/limite-por-minuto"}}},"schema":{"$ref":"#/components/schemas/Problema"}}},"description":"Has superado el ritmo o la cuota. Sin clave el límite es por IP y se comparte; con clave es tuyo.","headers":{"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar. Para `limite-por-ip` y `limite-por-minuto` son menos de 60; para `cuota-agotada` son los que faltan hasta el día 1 del mes que viene, así que pueden ser semanas: no reintentes antes, no puede funcionar.","example":43,"required":false,"schema":{"minimum":1,"type":"integer"}},"X-RateLimit-Limit":{"description":"Cuota mensual de tu clave. Ausente sin clave o en planes sin cuota.","example":10000,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Consultas que te quedan este mes.","example":9873,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Momento en que se renueva la cuota, en RFC 3339. La ventana es un mes natural.","example":"2026-10-01T00:00:00Z","required":false,"schema":{"format":"date-time","type":"string"}}}},"Error500":{"content":{"application/problem+json":{"examples":{"error-interno":{"value":{"detail":"No hemos podido completar la petición. Si persiste, escríbenos a hola@boletinclaro.es.","status":500,"title":"Error interno","type":"https://boletinclaro.es/v1/errores/error-interno"}}},"schema":{"$ref":"#/components/schemas/Problema"}}},"description":"Fallo nuestro."},"Error503":{"content":{"application/problem+json":{"examples":{"servicio-no-disponible":{"value":{"detail":"No hemos podido resolver la zona geográfica. Reinténtalo, o repite la búsqueda sin «zona».","status":503,"title":"Servicio no disponible temporalmente","type":"https://boletinclaro.es/v1/errores/servicio-no-disponible"}}},"schema":{"$ref":"#/components/schemas/Problema"}}},"description":"Algo nuestro no está disponible. Incluye el caso en que no se pudo resolver «zona»: preferimos fallar a devolverte resultados sin filtrar.","headers":{"Retry-After":{"description":"Segundos que hay que esperar antes de reintentar. A partir de ahí, backoff exponencial.","example":30,"required":false,"schema":{"minimum":1,"type":"integer"}}}}},"schemas":{"AgregadoAnio":{"properties":{"anio":{"example":2022,"format":"int64","type":"integer"},"importe":{"example":52098.72,"format":"double","type":"number"},"numero":{"example":1,"format":"int64","type":"integer"}},"required":["anio","numero","importe"],"type":"object"},"AgregadoOrganismo":{"properties":{"importe":{"example":106587.48,"format":"double","type":"number"},"numero":{"example":2,"format":"int64","type":"integer"},"organismo":{"example":"DIRECCIÓN GENERAL DE POLÍTICA ENERGÉTICA Y MINAS / MINISTERIO PARA LA TRANSICIÓN ECOLÓGICA Y EL RETO DEMOGRÁFICO / ESTADO","type":"string"}},"required":["organismo","numero","importe"],"type":"object"},"AgregadoSector":{"properties":{"codigo":{"example":"35","type":"string"},"descripcion":{"example":"Suministro de energía eléctrica","type":"string"},"importe":{"example":52098.72,"format":"double","type":"number"}},"required":["importe"],"type":"object"},"BloqueImportes":{"description":"Recuento, dinero y rango de fechas de un canal de financiación.","properties":{"importe":{"example":3282572208.95,"format":"double","type":"number"},"numero":{"example":4806,"format":"int64","type":"integer"},"primera":{"example":"2012-04-19","format":"date","type":"string"},"ultima":{"example":"2026-09-03","format":"date","type":"string"}},"required":["numero","importe"],"type":"object"},"Codigo":{"description":"Un código de clasificación que encaja con la descripción buscada.","properties":{"codigo":{"example":"90911200-8","type":"string"},"descripcion":{"example":"Servicios de limpieza de edificios","type":"string"},"division":{"description":"Etiqueta de jerarquía del catálogo (CPV y CNAE).","type":"string"},"grupo":{"description":"Etiqueta de jerarquía del catálogo (IAE).","type":"string"},"seccion":{"description":"Etiqueta de jerarquía del catálogo (CNAE e IAE).","type":"string"},"tipo":{"description":"Catálogo del que sale el código.","enum":["cpv","cnae","iae"],"example":"cpv","type":"string"}},"required":["tipo","codigo","descripcion"],"type":"object"},"Empresa":{"description":"El perfil de dinero público de una empresa: identidad, totales y agregados.\n\nTodavía **no** incluye el detalle línea a línea de cada subvención y cada contrato, los proyectos europeos (CORDIS) ni los datos mercantiles del BORME. Añadir campos no rompe a nadie: si necesitas alguno, dínoslo.","properties":{"contratos":{"$ref":"#/components/schemas/BloqueImportes"},"dinero_publico_total":{"example":3282678796.43,"format":"double","type":"number"},"ficha":{"example":"https://boletinclaro.es/empresa/A78053147","format":"uri","type":"string"},"importes_por_anio":{"description":"Reparto por año.","items":{"$ref":"#/components/schemas/AgregadoAnio"},"type":"array"},"nif":{"example":"A78053147","type":"string"},"nombre":{"example":"TELEFONICA SOLUCIONES DE INFORMATICA Y COMUNICACIONES DE ESP","type":"string"},"organismos_principales":{"description":"Organismos de los que más dinero ha recibido.","items":{"$ref":"#/components/schemas/AgregadoOrganismo"},"type":"array"},"sectores_principales":{"description":"Sectores en los que más ha recibido.","items":{"$ref":"#/components/schemas/AgregadoSector"},"type":"array"},"subvenciones":{"$ref":"#/components/schemas/BloqueImportes"}},"required":["nif","nombre","dinero_publico_total","subvenciones","contratos"],"type":"object"},"EmpresaResumen":{"description":"Una empresa candidata, con lo que lleva recibido, para poder pedir después su perfil.","properties":{"dinero_publico_total":{"description":"Suma de subvenciones y contratos.","example":3282678796.43,"format":"double","type":"number"},"importe_contratos":{"example":3282572208.95,"format":"double","type":"number"},"importe_subvenciones":{"example":106587.48,"format":"double","type":"number"},"nif":{"example":"A78053147","type":"string"},"nombre":{"example":"TELEFONICA SOLUCIONES DE INFORMATICA Y COMUNICACIONES DE ESP","type":"string"},"num_contratos":{"example":4806,"format":"int64","type":"integer"},"num_subvenciones":{"example":2,"format":"int64","type":"integer"}},"required":["nif","nombre","dinero_publico_total"],"type":"object"},"Entrada":{"description":"Una publicación: una convocatoria de subvención, una licitación o una entrada de boletín. Un solo tipo para las tres porque eso es lo que son los datos — el mismo documento desde todas las fuentes.\n\n**La clave es la tripleta `fuente` + `fecha_publicacion` + `identificador`.** El identificador es la referencia de la fuente oficial, pero en algunas gacetas (BOPV, BOB, BORM) es una secuencia que se reinicia cada año: quien use solo `fuente` + `identificador` acabará fusionando dos entradas distintas de años distintos.","properties":{"ambito":{"description":"`nacional` cuando aplica a todo el país; `local` cuando va atada a lugares concretos.","enum":["nacional","local"],"example":"local","type":"string"},"codigos_ubicacion":{"description":"Jerarquía del INE de lo más concreto a lo más general (municipio, provincia, comunidad), para cruzarla con tus datos. Vacía en las entradas de ámbito nacional.","example":["0917","09"],"items":{"type":"string"},"type":"array"},"enlace":{"description":"URL oficial de la fuente.","example":"https://www.pap.hacienda.gob.es/bdnstrans/GE/es/convocatoria/913303","format":"uri","type":"string"},"fecha_fin":{"description":"Cierre del plazo. Es lo que usamos para decidir si algo sigue abierto. Solo una parte de las convocatorias lo publica.","example":"2026-10-31","format":"date","type":"string"},"fecha_inicio":{"description":"Apertura del plazo, cuando la fuente la publica.","example":"2026-06-30","format":"date","type":"string"},"fecha_publicacion":{"description":"Cuándo salió en el boletín. AAAA-MM-DD.","example":"2026-06-16","format":"date","type":"string"},"ficha":{"description":"Nuestra página del mismo elemento. **No guardes el identificador que aparece dentro de esta URL**: es la clave de nuestra página, no de la entrada.","example":"https://boletinclaro.es/subvencion/913303","format":"uri","type":"string"},"fuente":{"description":"Código corto de la fuente: BDNS, PLACSP, TED, EUFUNDING, BOE, BOJA, DOG…","example":"BDNS","type":"string"},"identificador":{"description":"Referencia propia de la fuente oficial. Estable en el único sitio que no controlamos nosotros.","example":"913303","type":"string"},"importe":{"description":"Importe en la moneda de `moneda`. Cuando la fuente no publica importe el campo **no aparece**, en vez de venir a cero: así una suma tuya no se queda corta en silencio. Un cero que sí viene es un cero de verdad.","example":119840,"format":"double","type":"number"},"moneda":{"description":"Código ISO 4217.","example":"EUR","type":"string"},"seccion":{"description":"Sección del boletín, cuando la fuente la marca.","example":"III. Otras disposiciones","type":"string"},"tipo":{"description":"Qué es la entrada. Se deriva de la fuente, así que no puede contradecir al filtro que la trajo.","enum":["subvencion","licitacion","boletin"],"example":"subvencion","type":"string"},"titulo":{"description":"Título tal y como lo publica la fuente.","example":"Convocatoria Programa Pyme Digital 2026","type":"string"},"ubicacion":{"description":"Nombres completos de los lugares, para leerlos. Una entrada por lugar real, no una por nivel de la jerarquía. Se omiten si la geografía no está disponible; los códigos viajan igual.","example":["Girona, Cataluña"],"items":{"type":"string"},"type":"array"}},"required":["titulo","fuente","tipo"],"type":"object"},"Problema":{"description":"Cuerpo de error estándar RFC 9457, servido como `application/problem+json`. El campo que debes mirar en tu código es `type`: es estable y no cambiará aunque reescribamos el texto.","properties":{"detail":{"description":"Qué ha pasado en este caso concreto.","example":"El parámetro «consulta» debe tener entre 2 y 2000 caracteres.","type":"string"},"status":{"description":"El mismo código HTTP de la respuesta.","example":400,"type":"integer"},"title":{"description":"Resumen legible, en español.","example":"Consulta no válida","type":"string"},"type":{"description":"Identificador estable del error. Catálogo completo y cerrado.","enum":["https://boletinclaro.es/v1/errores/consulta-invalida","https://boletinclaro.es/v1/errores/parametro-invalido","https://boletinclaro.es/v1/errores/clave-no-valida","https://boletinclaro.es/v1/errores/sin-acceso-api","https://boletinclaro.es/v1/errores/no-encontrado","https://boletinclaro.es/v1/errores/ruta-no-encontrada","https://boletinclaro.es/v1/errores/limite-por-ip","https://boletinclaro.es/v1/errores/limite-por-minuto","https://boletinclaro.es/v1/errores/cuota-agotada","https://boletinclaro.es/v1/errores/error-interno","https://boletinclaro.es/v1/errores/servicio-no-disponible"],"example":"https://boletinclaro.es/v1/errores/consulta-invalida","format":"uri","type":"string"}},"required":["type","title","status"],"type":"object"},"RespuestaCodigos":{"description":"Envoltorio común de las respuestas de lista. No hay paginación: una búsqueda semántica ordena por parecido, y la fila 400 de un ranking así no significa nada.","properties":{"consulta":{"description":"La consulta tal y como se aplicó, ya recortada si venía por encima del máximo.","type":"string"},"resultados":{"description":"Códigos encontrados, agrupados por catálogo.","items":{"$ref":"#/components/schemas/Codigo"},"type":"array"},"total":{"description":"Cuántas filas trae ESTA respuesta. No es cuántas hay en total.","example":3,"type":"integer"}},"required":["total","resultados"],"type":"object"},"RespuestaEmpresas":{"description":"Envoltorio común de las respuestas de lista. No hay paginación: una búsqueda semántica ordena por parecido, y la fila 400 de un ranking así no significa nada.","properties":{"consulta":{"description":"La consulta tal y como se aplicó, ya recortada si venía por encima del máximo.","type":"string"},"resultados":{"description":"Empresas que coinciden con el nombre.","items":{"$ref":"#/components/schemas/EmpresaResumen"},"type":"array"},"total":{"description":"Cuántas filas trae ESTA respuesta. No es cuántas hay en total.","example":3,"type":"integer"}},"required":["total","resultados"],"type":"object"},"RespuestaEntradas":{"description":"Envoltorio común de las respuestas de lista. No hay paginación: una búsqueda semántica ordena por parecido, y la fila 400 de un ranking así no significa nada.","properties":{"consulta":{"description":"La consulta tal y como se aplicó, ya recortada si venía por encima del máximo.","type":"string"},"resultados":{"description":"Entradas encontradas, ordenadas por relevancia.","items":{"$ref":"#/components/schemas/Entrada"},"type":"array"},"total":{"description":"Cuántas filas trae ESTA respuesta. No es cuántas hay en total.","example":3,"type":"integer"}},"required":["total","resultados"],"type":"object"}},"securitySchemes":{"claveAPI":{"description":"Opcional. La clave **no da acceso** a nada nuevo: sube los límites de uso.\n\nSin clave: 20 peticiones por minuto, compartidas por IP.\n\nCon clave: el ritmo por minuto de tu plan más una cuota mensual, que se te reporta en las cabeceras `X-RateLimit-*`.\n\nLa clave la crea el administrador del espacio de trabajo en https://boletinclaro.es/ajustes/api, en un plan que incluya la API. Se muestra en claro una sola vez, al crearla; esa misma pantalla la revoca y lleva el consumo del mes contra la cuota.","scheme":"bearer","type":"http"}}},"externalDocs":{"description":"Referencia interactiva: este mismo documento, navegable","url":"https://boletinclaro.es/v1/referencia"},"info":{"contact":{"email":"hola@boletinclaro.es","name":"Boletín Claro","url":"https://boletinclaro.es/v1"},"description":"API REST de solo lectura sobre las fuentes oficiales que vigila Boletín Claro: la BDNS y EUFUNDING para subvenciones, la PLACSP y TED para licitaciones, y los boletines oficiales del Estado, las comunidades autónomas, las provincias forales y la Unión Europea.\n\nLa búsqueda es **semántica**: se describe en una frase lo que se busca, no se pasan palabras clave sueltas.\n\nNo hace falta clave para probarla. La clave de API no da acceso a nada nuevo: sube los límites de uso.\n\nReferencia escrita: https://boletinclaro.es/v1\n\nReferencia interactiva: https://boletinclaro.es/v1/referencia","license":{"name":"Condiciones de uso de Boletín Claro","url":"https://boletinclaro.es/terminos"},"summary":"Subvenciones, licitaciones y boletines oficiales de España y Europa, en JSON.","termsOfService":"https://boletinclaro.es/terminos","title":"API de Boletín Claro","version":"1.0.0"},"openapi":"3.1.0","paths":{"/":{"get":{"description":"Devuelve la página de referencia en HTML, o un índice de endpoints en JSON si la petición envía `Accept: application/json`.","operationId":"referencia","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}},"text/html":{"schema":{"type":"string"}}},"description":"La referencia, en HTML o en JSON según `Accept`."},"429":{"$ref":"#/components/responses/Error429"}},"summary":"Referencia de la API","tags":["Referencia"]}},"/assets/redoc-2.5.4.js":{"get":{"description":"Redoc 2.5.4 (MIT), servido desde nuestro propio origen en vez de desde un CDN porque la política de seguridad del dominio solo admite scripts propios. No forma parte del contrato de datos: está documentado porque está montado bajo `/v1`.","operationId":"referenciaScript","responses":{"200":{"content":{"application/javascript":{"schema":{"type":"string"}}},"description":"El script."},"429":{"$ref":"#/components/responses/Error429"}},"summary":"El script de la referencia interactiva","tags":["Referencia"]}},"/boletines":{"get":{"description":"Todo lo que **no** es dinero: normativa, oposiciones, nombramientos, edictos y anuncios. Busca a la vez en las 25 gacetas oficiales — el BOE, el BORME, el DOUE y los diarios de las comunidades autónomas, las provincias forales vascas y las ciudades autónomas.\n\nLas fuentes de subvenciones y licitaciones (BDNS, PLACSP, TED, EUFUNDING) **no** están aquí: para esas, usa `/oportunidades`.","operationId":"buscarBoletines","parameters":[{"description":"Describe lo que buscas, en una frase.\n\nEntre 2 y 2000 caracteres. Más largo se **recorta**, no se rechaza.","example":"oposiciones de auxiliar administrativo","in":"query","name":"consulta","required":true,"schema":{"maxLength":2000,"minLength":2,"type":"string"}},{"description":"Códigos de boletín separados por comas. Vacío = todos.\n\nOjo: `BOC` es Cantabria y `BOCAN` Canarias, no al revés.\n\nDos códigos se admiten pero hoy no tienen contenido, y devuelven `0` resultados siempre en vez de un error: la ingesta de `BORME` está apagada y de `BOCCE` (Ceuta) todavía no ingerimos nada. Se quedan en la lista para que el día que se enciendan funcionen sin cambiar tu código.","example":["BOE","BOJA","DOGC"],"explode":false,"in":"query","name":"fuentes","required":false,"schema":{"items":{"enum":["BOE","BORME","DOUE","BOJA","BOA","BOPA","BOIB","BOC","BOCAN","BOCYL","DOCM","DOGC","DOCV","DOE","DOG","BOCM","BORM","BON","BOPV","BOR","BOTHA","BOG","BOB","BOCCE","BOME"],"type":"string"},"type":"array"},"style":"form"},{"description":"Comunidad autónoma, provincia o municipio. Aplica la jerarquía: `Andalucía` incluye Sevilla y sus municipios. Lo de ámbito nacional entra siempre, porque también aplica a esa zona.\n\nSi no pudiéramos resolver la zona, la respuesta es un **503**, nunca un listado sin filtrar: no vas a recibir resultados de toda España creyendo que has filtrado por una provincia.","example":"Bizkaia","in":"query","name":"zona","required":false,"schema":{"type":"string"}},{"description":"Número de resultados.","example":5,"in":"query","name":"limite","required":false,"schema":{"default":10,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"consulta":"oposiciones de auxiliar administrativo","resultados":[{"ambito":"nacional","enlace":"https://www.boe.es/diario_boe/txt.php?id=BOE-A-2026-23881","fecha_publicacion":"2026-09-08","fuente":"BOE","identificador":"BOE-A-2026-23881","seccion":"II. Autoridades y personal","tipo":"boletin","titulo":"Resolución por la que se convocan pruebas selectivas para el ingreso en el Cuerpo Auxiliar"}],"total":1},"schema":{"$ref":"#/components/schemas/RespuestaEntradas"}}},"description":"Entradas de boletín ordenadas por relevancia.","headers":{"X-RateLimit-Limit":{"description":"Cuota mensual de tu clave. Ausente sin clave o en planes sin cuota.","example":10000,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Consultas que te quedan este mes.","example":9873,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Momento en que se renueva la cuota, en RFC 3339. La ventana es un mes natural.","example":"2026-10-01T00:00:00Z","required":false,"schema":{"format":"date-time","type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"429":{"$ref":"#/components/responses/Error429"},"500":{"$ref":"#/components/responses/Error500"},"503":{"$ref":"#/components/responses/Error503"}},"summary":"Buscar en los boletines oficiales","tags":["Boletines"]}},"/codigos":{"get":{"description":"CPV para contratación pública, CNAE para actividad económica, IAE para el impuesto de actividades. Es la búsqueda que hace utilizables los demás filtros.\n\nCada fila lleva su `tipo`. Las filas **no** vienen mezcladas por relevancia entre catálogos, porque sus puntuaciones no son comparables entre sí.","operationId":"buscarCodigos","parameters":[{"description":"Describe la actividad, en una frase.\n\nEntre 2 y 2000 caracteres. Más largo se **recorta**, no se rechaza.","example":"limpieza de edificios","in":"query","name":"consulta","required":true,"schema":{"maxLength":2000,"minLength":2,"type":"string"}},{"description":"Catálogos a consultar, separados por comas.","example":["cpv","cnae"],"explode":false,"in":"query","name":"tipos","required":false,"schema":{"default":["cpv","cnae","iae"],"items":{"enum":["cpv","cnae","iae"],"type":"string"},"type":"array"},"style":"form"},{"description":"Número de resultados **por catálogo**: pedir los tres con `limite=10` devuelve hasta 30 filas.","example":5,"in":"query","name":"limite","required":false,"schema":{"default":10,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"consulta":"limpieza de edificios","resultados":[{"codigo":"90911200-8","descripcion":"Servicios de limpieza de edificios","tipo":"cpv"},{"codigo":"45452000-0","descripcion":"Trabajos de limpieza exterior de edificios","tipo":"cpv"}],"total":2},"schema":{"$ref":"#/components/schemas/RespuestaCodigos"}}},"description":"Códigos que encajan con la descripción.","headers":{"X-RateLimit-Limit":{"description":"Cuota mensual de tu clave. Ausente sin clave o en planes sin cuota.","example":10000,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Consultas que te quedan este mes.","example":9873,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Momento en que se renueva la cuota, en RFC 3339. La ventana es un mes natural.","example":"2026-10-01T00:00:00Z","required":false,"schema":{"format":"date-time","type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"429":{"$ref":"#/components/responses/Error429"},"500":{"$ref":"#/components/responses/Error500"},"503":{"$ref":"#/components/responses/Error503"}},"summary":"De lenguaje natural a código CPV, CNAE o IAE","tags":["Códigos"]}},"/empresas":{"get":{"description":"Busca por coincidencia parcial del nombre y devuelve el NIF con cuánto dinero público lleva recibido cada candidata. El paso previo a pedir su perfil.","operationId":"buscarEmpresas","parameters":[{"description":"Nombre o parte del nombre de la empresa.","example":"telefonica","in":"query","name":"consulta","required":true,"schema":{"maxLength":60,"minLength":3,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"consulta":"telefonica","resultados":[{"dinero_publico_total":3282678796.43,"importe_contratos":3282572208.95,"importe_subvenciones":106587.48,"nif":"A78053147","nombre":"TELEFONICA SOLUCIONES DE INFORMATICA Y COMUNICACIONES DE ESP","num_contratos":4806,"num_subvenciones":2}],"total":1},"schema":{"$ref":"#/components/schemas/RespuestaEmpresas"}}},"description":"Empresas que coinciden, de más a menos dinero público.","headers":{"X-RateLimit-Limit":{"description":"Cuota mensual de tu clave. Ausente sin clave o en planes sin cuota.","example":10000,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Consultas que te quedan este mes.","example":9873,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Momento en que se renueva la cuota, en RFC 3339. La ventana es un mes natural.","example":"2026-10-01T00:00:00Z","required":false,"schema":{"format":"date-time","type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"429":{"$ref":"#/components/responses/Error429"},"500":{"$ref":"#/components/responses/Error500"},"503":{"$ref":"#/components/responses/Error503"}},"summary":"Resolver un nombre de empresa a su NIF","tags":["Empresas"]}},"/empresas/{nif}":{"get":{"description":"Subvenciones y contratos de una empresa, con totales, rango de fechas, organismos y sectores principales, y el reparto por año.\n\nUn NIF sin registros devuelve `404`, no una respuesta vacía.","operationId":"perfilEmpresa","parameters":[{"description":"NIF, CIF o NIE. Se acepta con guiones o puntos (`A-78053147`) y se normaliza.","example":"A78053147","in":"path","name":"nif","required":true,"schema":{"pattern":"^[0-9A-Za-z.\\- ]{8,16}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"contratos":{"importe":3282572208.95,"numero":4806,"primera":"2012-04-19","ultima":"2026-09-03"},"dinero_publico_total":3282678796.43,"ficha":"https://boletinclaro.es/empresa/A78053147","importes_por_anio":[{"anio":2022,"importe":52098.72,"numero":1},{"anio":2023,"importe":54488.76,"numero":1}],"nif":"A78053147","nombre":"TELEFONICA SOLUCIONES DE INFORMATICA Y COMUNICACIONES DE ESP","organismos_principales":[{"importe":106587.48,"numero":2,"organismo":"DIRECCIÓN GENERAL DE POLÍTICA ENERGÉTICA Y MINAS / MINISTERIO PARA LA TRANSICIÓN ECOLÓGICA Y EL RETO DEMOGRÁFICO / ESTADO"}],"subvenciones":{"importe":106587.48,"numero":2,"primera":"2022-01-01","ultima":"2023-01-01"}},"schema":{"$ref":"#/components/schemas/Empresa"}}},"description":"El perfil de dinero público de la empresa.","headers":{"X-RateLimit-Limit":{"description":"Cuota mensual de tu clave. Ausente sin clave o en planes sin cuota.","example":10000,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Consultas que te quedan este mes.","example":9873,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Momento en que se renueva la cuota, en RFC 3339. La ventana es un mes natural.","example":"2026-10-01T00:00:00Z","required":false,"schema":{"format":"date-time","type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"},"500":{"$ref":"#/components/responses/Error500"},"503":{"$ref":"#/components/responses/Error503"}},"summary":"Dinero público recibido por una empresa","tags":["Empresas"]}},"/errores":{"get":{"description":"Todos los errores que puede devolver esta API: qué significa cada uno, si merece la pena reintentar y cuándo. Es la documentación a la que apunta el campo `type` de cualquier respuesta de error.\n\nHTML en el navegador; con `Accept: application/json`, la misma lista en JSON (`{base, total, errores[]}`, cada error con `codigo`, `tipo`, `estado`, `titulo`, `significado`, `reintento` y `reintentable`).","operationId":"catalogoDeErrores","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}},"text/html":{"schema":{"type":"string"}}},"description":"El catálogo, en HTML o en JSON según `Accept`."},"429":{"$ref":"#/components/responses/Error429"}},"summary":"Catálogo de errores","tags":["Referencia"]}},"/errores/{slug}":{"get":{"description":"La página a la que dereferencia el `type` de una respuesta de error: qué significa, si merece la pena reintentar y cuándo.","operationId":"detalleDeError","parameters":[{"description":"El identificador del error, es decir el último segmento de su `type`.","example":"cuota-agotada","in":"path","name":"slug","required":true,"schema":{"enum":["consulta-invalida","parametro-invalido","clave-no-valida","sin-acceso-api","no-encontrado","ruta-no-encontrada","limite-por-ip","limite-por-minuto","cuota-agotada","error-interno","servicio-no-disponible"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}},"text/html":{"schema":{"type":"string"}}},"description":"La entrada del catálogo, en HTML o en JSON según `Accept`."},"404":{"$ref":"#/components/responses/Error404"},"429":{"$ref":"#/components/responses/Error429"}},"summary":"Un error del catálogo","tags":["Referencia"]}},"/licitaciones":{"get":{"description":"Licitaciones todavía abiertas bajo uno o varios códigos CPV, **con jerarquía**: pedir `72000000` devuelve también todo lo que cuelga de él.\n\nSi no sabes el código, sácalo de `/codigos`.","operationId":"licitacionesPorCPV","parameters":[{"description":"Uno o varios códigos CPV de 6 a 8 dígitos, separados por comas. Se acepta el dígito de control tras un guion (`72000000-3`) y se ignora.","example":["72000000","48000000"],"explode":false,"in":"query","name":"cpv","required":true,"schema":{"items":{"pattern":"^\\d{6,8}(-\\d)?$","type":"string"},"type":"array"},"style":"form"},{"description":"Número de licitaciones.","example":5,"in":"query","name":"limite","required":false,"schema":{"default":10,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"example":{"resultados":[{"ambito":"local","codigos_ubicacion":["0141","41"],"enlace":"https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion\u0026idEvl=abc","fecha_fin":"2026-09-01","fecha_publicacion":"2026-08-18","ficha":"https://boletinclaro.es/licitacion/PLACSP-2026-08-18_253","fuente":"PLACSP","identificador":"26/45262","importe":17290,"moneda":"EUR","tipo":"licitacion","titulo":"Suministro de licencias anuales y soporte","ubicacion":["Sevilla, Andalucía"]}],"total":1},"schema":{"$ref":"#/components/schemas/RespuestaEntradas"}}},"description":"Licitaciones abiertas bajo esos CPV.","headers":{"X-RateLimit-Limit":{"description":"Cuota mensual de tu clave. Ausente sin clave o en planes sin cuota.","example":10000,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Consultas que te quedan este mes.","example":9873,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Momento en que se renueva la cuota, en RFC 3339. La ventana es un mes natural.","example":"2026-10-01T00:00:00Z","required":false,"schema":{"format":"date-time","type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"429":{"$ref":"#/components/responses/Error429"},"500":{"$ref":"#/components/responses/Error500"},"503":{"$ref":"#/components/responses/Error503"}},"summary":"Licitaciones abiertas por código CPV","tags":["Dinero público"]}},"/openapi.json":{"get":{"description":"Este mismo documento. Impórtalo en Postman, Insomnia o un generador de clientes.","operationId":"especificacion","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"El documento OpenAPI."},"429":{"$ref":"#/components/responses/Error429"}},"summary":"Especificación OpenAPI 3.1 de esta API","tags":["Referencia"]}},"/oportunidades":{"get":{"description":"Dinero público al que todavía se puede optar, ordenado por lo bien que encaja con una descripción en lenguaje natural.\n\nQueda fuera automáticamente lo que ya no se puede solicitar: plazo vencido, concesión directa sin proceso, o una licitación que la fuente ya ha adjudicado.","operationId":"buscarOportunidades","parameters":[{"description":"Describe la empresa o lo que buscas, en una frase.\n\nEntre 2 y 2000 caracteres. Más largo se **recorta**, no se rechaza.","example":"digitalización para una pyme industrial","in":"query","name":"consulta","required":true,"schema":{"maxLength":2000,"minLength":2,"type":"string"}},{"description":"Qué se busca.","example":"licitaciones","in":"query","name":"tipo","required":false,"schema":{"default":"ambos","enum":["subvenciones","licitaciones","ambos"],"type":"string"}},{"description":"Comunidad autónoma, provincia o municipio. Aplica la jerarquía: `Andalucía` incluye Sevilla y sus municipios. Lo de ámbito nacional entra siempre, porque también aplica a esa zona.\n\nSi no pudiéramos resolver la zona, la respuesta es un **503**, nunca un listado sin filtrar: no vas a recibir resultados de toda España creyendo que has filtrado por una provincia.","example":"Bizkaia","in":"query","name":"zona","required":false,"schema":{"type":"string"}},{"description":"Número de resultados.","example":5,"in":"query","name":"limite","required":false,"schema":{"default":10,"maximum":50,"minimum":1,"type":"integer"}},{"description":"`true` para incluir lo ya cerrado o adjudicado (estudio de mercado, histórico).","example":"true","in":"query","name":"incluir_cerradas","required":false,"schema":{"default":"false","enum":["true","false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"example":{"consulta":"digitalización para una pyme industrial","resultados":[{"ambito":"local","codigos_ubicacion":["0917","09"],"enlace":"https://www.pap.hacienda.gob.es/bdnstrans/GE/es/convocatoria/913303","fecha_fin":"2026-10-31","fecha_inicio":"2026-06-30","fecha_publicacion":"2026-06-16","ficha":"https://boletinclaro.es/subvencion/913303","fuente":"BDNS","identificador":"913303","importe":119840,"moneda":"EUR","tipo":"subvencion","titulo":"Convocatoria Programa Pyme Digital 2026","ubicacion":["Girona, Cataluña"]}],"total":1},"schema":{"$ref":"#/components/schemas/RespuestaEntradas"}}},"description":"Resultados ordenados por relevancia.","headers":{"X-RateLimit-Limit":{"description":"Cuota mensual de tu clave. Ausente sin clave o en planes sin cuota.","example":10000,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Consultas que te quedan este mes.","example":9873,"required":false,"schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Momento en que se renueva la cuota, en RFC 3339. La ventana es un mes natural.","example":"2026-10-01T00:00:00Z","required":false,"schema":{"format":"date-time","type":"string"}}}},"400":{"$ref":"#/components/responses/Error400"},"401":{"$ref":"#/components/responses/Error401"},"403":{"$ref":"#/components/responses/Error403"},"429":{"$ref":"#/components/responses/Error429"},"500":{"$ref":"#/components/responses/Error500"},"503":{"$ref":"#/components/responses/Error503"}},"summary":"Subvenciones y licitaciones abiertas","tags":["Dinero público"]}},"/referencia":{"get":{"description":"La misma especificación, navegable: endpoints, parámetros, esquemas desplegables y ejemplos. Se genera de `/v1/openapi.json`, así que no puede contradecirlo.","operationId":"referenciaInteractiva","responses":{"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"La referencia interactiva, en HTML."},"429":{"$ref":"#/components/responses/Error429"}},"summary":"Referencia interactiva (este documento, dibujado)","tags":["Referencia"]}}},"security":[{},{"claveAPI":[]}],"servers":[{"description":"Producción","url":"https://boletinclaro.es/v1"}]}