API Reference
Elicita API
Accede programáticamente al dataset de contratación pública española más completo: más de 66 millones de registros agregados de PLACE, TED, BOE, BORME y los boletines oficiales de las principales comunidades autónomas.
Autenticación
Los endpoints de la API v1 utilizan autenticación Bearer. Incluye tu API key en el header
Authorization. Las API keys se generan y gestionan desde
/cuenta.
También puedes usar /api/v1/search autenticado con tu sesión de Clerk (cookie __session)
mientras navegas por la aplicación.
Rate Limits
Los límites se aplican por periodo de 24 horas y se devuelven en los headers de respuesta.
| Plan | Consultas/día | Notas |
|---|---|---|
| Free (anónimo) | 10 / IP | /api/public/search |
| Developer | 100 | Requiere API key |
| Empresa | ilimitado* | *Con fair-use y rate limit por minuto |
Endpoints
/api/public/search Público Búsqueda pública
Búsqueda anónima en las fuentes públicas. Límite de 10 consultas/día por IP. No requiere autenticación.
/api/v1/search Auth Búsqueda con API key
Búsqueda autenticada con API key. Plan Developer: 100 consultas/día. Empresa: ilimitado.
/api/v1/keys Auth Crear API key
Crea una nueva API key. El secreto completo solo se muestra una vez. Requiere plan Developer/Empresa.
/api/v1/keys Auth Listar API keys
Devuelve metadatos de las API keys activas (sin mostrar el secreto).
/api/v1/keys/:id Auth Revocar API key
Marca una API key como revocada. Las claves revocadas dejan de funcionar inmediatamente.
/mcp/sse Auth MCP server
Servidor MCP (Model Context Protocol) con transporte JSON-RPC. Requiere plan Empresa.
cURL — búsqueda pública
cURL — búsqueda autenticada
cURL — crear API key
JavaScript (fetch)
JavaScript (API key)
Python (requests)
Parámetros de búsqueda
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| q | string | Sí* | Término de búsqueda. Se busca en título, organismo y adjudicatario. *Obligatorio si no se usa otro filtro. |
| cpv | string | No | Código CPV o prefijo (p. ej. 45230000). Filtra por CPV cuando la fuente lo publica. |
| importeMin | number | No | Importe mínimo de adjudicación (€). |
| importeMax | number | No | Importe máximo de adjudicación (€). |
| estado | string | No | Estado del contrato: Anuncio, Adjudicada, Formalizado, etc. |
| fuente | string | No | Fuente: PLACE, TED, Galicia, Andalucía, Euskadi, Madrid, Catalunya. |
| nif | string | No | NIF/CIF del adjudicatario. |
| desde | string (YYYY) | No | Año de inicio del rango de publicación. |
| hasta | string (YYYY) | No | Año de fin del rango de publicación. |
| limit | number | No | Máximo de resultados. Público: ≤20, v1: ≤100. Default: 10/20. |
| offset | number | No | Desplazamiento para paginación. |
| sort | string | No | Columna de ordenación: titulo, organismo, adjudicatario, importe, fuente, fecha. |
| dir | string | No | Dirección: asc o desc. Default: desc. |
Ejemplo de respuesta
Respuesta típica de /api/public/search y /api/v1/search:
MCP
Elicita expone un servidor Model Context Protocol (MCP)
en /mcp/sse. Permite que agentes de IA con acceso OAuth a tu cuenta de Elicita ejecuten búsquedas,
consulten perfiles y gestionen alertas directamente.
Disponible exclusivamente en el plan Empresa. Tools expuestas:
| Tool | Descripción |
|---|---|
| elicita_search | Buscar contratos públicos por texto, CPV, importe y fecha. |
| elicita_profile | Perfil de empresa y historial de adjudicaciones por CIF/nombre. |
| elicita_alerts_list | Listar alertas activas del usuario. |
| elicita_alerts_create | Crear una alerta de contratos (solo Empresa). |
| elicita_export | Exportar resultados a PDF/CSV (solo Empresa). |
Errores
| Código | Nombre | Descripción |
|---|---|---|
| 400 | Bad Request | Faltan parámetros obligatorios (p. ej. q) o son inválidos. |
| 401 | Unauthorized | Falta API key, es inválida o la sesión de Clerk no está activa. |
| 403 | Forbidden | El plan actual no tiene acceso a la API o al MCP. |
| 429 | Too Many Requests | Se ha alcanzado el límite diario de consultas o de rate limit. |
| 500 | Internal Server Error | Error inesperado. Reintentar o contactar soporte. |