API / Referencia
Referencia de la API
Generada del mismo OpenAPI que usa la API.
Todas las rutas necesitan una clave: Authorization: Bearer dl_live_….
GET /api/public/v1/contracts
Buscar licitaciones
Licitaciones públicas de España, de la más reciente a la más antigua por fecha de publicación. Todos los filtros son opcionales y se combinan (Y). Pagina con `cursor`: la respuesta trae `meta.siguiente_cursor` mientras queden resultados. Las licitaciones sin fecha de publicación (un 0,1 %) no aparecen en este listado; sí en `/contracts/{id}`.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| q | query | string | null | Texto libre sobre título y objeto. |
| solo_abiertas | query | boolean | Solo las que admiten ofertas ahora. |
| estado | query | string | null | Código de estado: OPEN, EVALUATION, AWARDED... |
| cpv | query | string | null | Código CPV o su prefijo (2 dígitos = división). |
| provincia | query | string | null | |
| comunidad_autonoma | query | string | null | |
| tipo_contrato | query | string | null | OBRAS, SERVICIOS, SUMINISTROS... |
| procedimiento | query | string | null | ABIERTO, RESTRINGIDO... |
| presupuesto_min | query | number | null | Euros, sin IVA. |
| presupuesto_max | query | number | null | |
| publicada_desde | query | date | null | AAAA-MM-DD, incluido. |
| publicada_hasta | query | date | null | AAAA-MM-DD, excluido. |
| cursor | query | string | null | |
| page_size | query | integer |
Respuesta: ListaLicitaciones
GET /api/public/v1/changes
Licitaciones cambiadas desde una fecha
Para mantener una copia sincronizada: devuelve las licitaciones cuyo contenido cambió después de `since`, de la más antigua a la más reciente. Guarda el `siguiente_cursor` y vuelve a llamar con él hasta que venga vacío; la próxima vez, empieza con el `actualizado` de la última que recibiste.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| since * | query | date-time | Fecha y hora ISO 8601 con zona. |
| cursor | query | string | null | |
| page_size | query | integer |
Respuesta: ListaLicitaciones
GET /api/public/v1/contracts/{ref}
Una licitación, con adjudicaciones, documentos y cronología
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| ref * | path | string | UUID de la licitación o su `slug`. |
Respuesta: LicitacionDetalle
GET /api/public/v1/contracts/{ref}/documents
Documentos de una licitación (pliegos, anuncios, actas)
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| ref * | path | string | UUID de la licitación o su `slug`. |
Respuesta: lista de Documento
GET /api/public/v1/organizations/{identificador}
Un organismo contratante, por NIF o por id
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| identificador * | path | string | NIF del organismo o su id (UUID). |
Respuesta: OrganismoDetalle
GET /api/public/v1/alerts
List Alerts
List current user's alert subscriptions. Sobre estándar `{total, page, page_size, results}`, y en cada alerta la frecuencia EFECTIVA (`frecuencia: inmediato|diario`) derivada del plan — nunca la columna, que puede mentir en los dos sentidos.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| page | query | integer | Page number |
| page_size | query | integer | Items per page |
Respuesta: objeto
POST /api/public/v1/alerts
Create Alert
Create a new alert subscription.
Cuerpo: AlertCreate
Respuesta: objeto
GET /api/public/v1/alerts/{alert_id}
Get Alert
Get alert detail. La frecuencia que viaja es la efectiva.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| alert_id * | path | uuid |
Respuesta: objeto
PUT /api/public/v1/alerts/{alert_id}
Update Alert
Update an alert subscription.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| alert_id * | path | uuid |
Cuerpo: AlertUpdate
Respuesta: objeto
DELETE /api/public/v1/alerts/{alert_id}
Delete Alert
Delete an alert subscription.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| alert_id * | path | uuid |
Respuesta: objeto
GET /api/public/v1/alerts/{alert_id}/events
List Alert Events
Get event history for an alert.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| alert_id * | path | uuid |
Respuesta: objeto
GET /api/public/v1/follows
Listar Seguimientos
Seguimientos activos del perfil, con la ficha resumida de cada uno.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| page | query | integer | Page number |
| page_size | query | integer | Items per page |
Respuesta: object
GET /api/public/v1/follows/{contract_id}
Estado Seguimiento
¿Sigue este perfil la licitación? Solo lo activo cuenta.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| contract_id * | path | uuid |
Respuesta: object
PUT /api/public/v1/follows/{contract_id}
Seguir
Seguir (o reactivar) una licitación. Idempotente. 403 con motivo cuando no queda capacidad — el cliente nativo decide cómo contarlo; aquí no se disfraza de éxito.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| contract_id * | path | uuid |
Respuesta: object
DELETE /api/public/v1/follows/{contract_id}
Dejar De Seguir
Dejar de seguir. Idempotente, y nunca toca las filas pausadas.
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| contract_id * | path | uuid |
Respuesta: object
Modelos
Adjudicacion
| lote | string | null | |
| adjudicatario | string | null | |
| adjudicatario_nif | string | null | Solo si es persona jurídica. |
| importe | number | null | Importe de adjudicación sin IVA, en euros. |
| importe_con_iva | number | null | |
| ofertas | integer | null | Número de ofertas recibidas. |
| fecha | date | null |
AlertChannel
AlertCreate
| name | string | null | |
| filter_text | string | null | |
| filter_cpv | lista de string | null | |
| filter_provincia | lista de string | null | |
| filter_ccaa | lista de string | null | |
| filter_tipo_contrato | lista de string | null | |
| filter_procedimiento | lista de string | null | |
| filter_presupuesto_min | number | null | |
| filter_presupuesto_max | number | null | |
| trigger_new_contract | boolean | |
| trigger_deadline_48h | boolean | |
| trigger_deadline_24h | boolean | |
| channel | AlertChannel | |
| frequency | AlertFrequency |
AlertFrequency
AlertUpdate
| name | string | null | |
| filter_text | string | null | |
| filter_cpv | lista de string | null | |
| filter_provincia | lista de string | null | |
| filter_ccaa | lista de string | null | |
| filter_tipo_contrato | lista de string | null | |
| filter_procedimiento | lista de string | null | |
| filter_presupuesto_min | number | null | |
| filter_presupuesto_max | number | null | |
| trigger_new_contract | boolean | |
| trigger_deadline_48h | boolean | |
| trigger_deadline_24h | boolean | |
| channel | AlertChannel | |
| frequency | AlertFrequency | |
| is_active | boolean | null |
Codigo
| codigo | string | null | Valor estable, apto para filtrar y comparar. |
| etiqueta | string | null | Texto en castellano para mostrar. |
Documento
| tipo | string | null | |
| titulo | string | null | |
| url * | string | |
| mime_type | string | null | |
| tamano_bytes | integer | null | |
| publicado | date-time | null | Cuándo lo vimos por primera vez. |
Fuente
| titular * | string | |
| licencia * | string | Identificador SPDX o de la licencia pública del titular. |
| licencia_url * | string | |
| atribucion * | string | Texto que hay que conservar al reutilizar el registro. |
| no_patrocinio * | string |
Hito
| clave * | string | |
| etiqueta * | string | |
| alcanzado * | boolean | |
| fecha | string | null | |
| estado | string | null | |
| sin_fecha_publicada | boolean |
Licitacion
| id * | string | UUID estable de la licitación. |
| slug * | string | |
| url * | string | Ficha pública en donlicitacion.es. |
| expediente * | string | |
| lote | string | null | |
| titulo | string | null | |
| objeto | string | null | |
| estado * | Codigo | |
| abierta * | boolean | Se puede presentar oferta ahora: estado abierto y plazo sin vencer. |
| fecha_publicacion | date-time | null | |
| fecha_limite | date-time | null | Último momento para presentarse. En procedimientos en dos fases (restringido, negociado con publicidad, diálogo competitivo), el fin de las solicitudes de participación. |
| fecha_fin_ofertas | date-time | null | Fin de presentación de ofertas de los invitados, solo en procedimientos en dos fases y cuando difiere de `fecha_limite`. |
| fecha_adjudicacion | date-time | null | |
| fecha_formalizacion | date-time | null | |
| presupuesto_base | number | null | Sin IVA, en euros. |
| presupuesto_con_iva | number | null | |
| valor_estimado | number | null | |
| cpv_principal | string | null | Código CPV de 8 dígitos. |
| cpv_secundarios | lista de string | |
| tipo_contrato * | Codigo | |
| procedimiento * | Codigo | |
| provincia | string | null | |
| comunidad_autonoma | string | null | |
| organismo * | Organismo | |
| adjudicacion | Adjudicacion | null | Resumen; el detalle por lotes está en la ficha. |
| url_oficial | string | null | Anuncio en la plataforma oficial. |
| actualizado | date-time | null | Último cambio real de contenido. |
| fuente * | Fuente |
LicitacionDetalle
| id * | string | UUID estable de la licitación. |
| slug * | string | |
| url * | string | Ficha pública en donlicitacion.es. |
| expediente * | string | |
| lote | string | null | |
| titulo | string | null | |
| objeto | string | null | |
| estado * | Codigo | |
| abierta * | boolean | Se puede presentar oferta ahora: estado abierto y plazo sin vencer. |
| fecha_publicacion | date-time | null | |
| fecha_limite | date-time | null | Último momento para presentarse. En procedimientos en dos fases (restringido, negociado con publicidad, diálogo competitivo), el fin de las solicitudes de participación. |
| fecha_fin_ofertas | date-time | null | Fin de presentación de ofertas de los invitados, solo en procedimientos en dos fases y cuando difiere de `fecha_limite`. |
| fecha_adjudicacion | date-time | null | |
| fecha_formalizacion | date-time | null | |
| presupuesto_base | number | null | Sin IVA, en euros. |
| presupuesto_con_iva | number | null | |
| valor_estimado | number | null | |
| cpv_principal | string | null | Código CPV de 8 dígitos. |
| cpv_secundarios | lista de string | |
| tipo_contrato * | Codigo | |
| procedimiento * | Codigo | |
| provincia | string | null | |
| comunidad_autonoma | string | null | |
| organismo * | Organismo | |
| adjudicacion | Adjudicacion | null | Resumen; el detalle por lotes está en la ficha. |
| url_oficial | string | null | Anuncio en la plataforma oficial. |
| actualizado | date-time | null | Último cambio real de contenido. |
| fuente * | Fuente | |
| adjudicaciones | lista de Adjudicacion | |
| documentos | lista de Documento | |
| cronologia | lista de Hito | Hitos del procedimiento, en orden. |
ListaLicitaciones
| data * | lista de Licitacion | |
| meta * | Meta |
Meta
| siguiente_cursor | string | null | Pásalo como `cursor` para la página siguiente. |
| page_size * | integer |
Organismo
| nombre | string | null | |
| nif | string | null | |
| id | string | null | Identificador del organismo en Don Licitación, si está vinculado. |
OrganismoDetalle
| id * | string | |
| nombre | string | null | |
| nif | string | null | |
| nivel | string | null | |
| comunidad_autonoma | string | null | |
| provincia | string | null | |
| municipio | string | null | |
| web | string | null | |
| licitaciones_total | integer | null | |
| licitaciones_abiertas | integer | null | |
| url * | string |