+800 empresas ya ganan más licitaciones con IARegístrate gratis
    API v1 · 11 países

    La contratación pública, dentro de tu producto

    Busca licitaciones, descarga sus documentos con el texto ya leído, consulta adjudicaciones, lanza análisis con IA y recibe avisos automáticos en tu servidor. Una sola clave, los filtros propios de cada país y créditos que ves en todo momento.

    Primera llamada
    export IAL_API_KEY="ilk_live_..."
    
    curl -X POST "https://api.ialicitaciones.com/v1/search" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"country":"ES","q":"limpieza","per_page":5}'

    Autenticación

    Crea la clave desde Ajustes → API. Empieza por ilk_live_ y solo se muestra una vez. Se envía en cada llamada:

    Authorization: Bearer ilk_live_xxxxxxxxxxxxxxxx

    Cada clave tiene permisos por apartado (búsqueda, fichas, IA, avisos, webhooks), puede limitarse a ciertos países, tiene caducidad opcional y se anula al instante.

    Créditos y límites

    • · Búsqueda, ficha y adjudicaciones: 1 crédito
    • · Documentos con texto: 3 · Lectura bajo demanda: 5
    • · Resumen y requisitos: 25 · Análisis, estrategia, anexos y mercado: 40
    • · Consultar el estado de una tarea: gratis

    Plan Business: bolsa mensual incluida. Enterprise: bolsa ampliada y límites a medida. El saldo se repone cada periodo de facturación y los packs adicionales se suman al saldo. Límite por defecto: 120 llamadas por minuto y clave, con cabeceras X-RateLimit-*.

    Pruébala aquí mismo

    Pega tu clave y lanza una llamada real. La clave se queda en tu navegador: no la guardamos.

    Respuesta
    // La respuesta aparecerá aquí

    Referencia de endpoints

    Cuenta y catálogo

    Estado de tu clave, créditos disponibles y filtros válidos en cada país.

    GET/healthgratis

    Comprobación de disponibilidad (sin clave).

    Permiso necesario: —

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/health" \
      -H "Authorization: Bearer $IAL_API_KEY"
    GET/openapi.jsongratis

    Especificación OpenAPI completa (sin clave).

    Permiso necesario: —

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/openapi.json" \
      -H "Authorization: Bearer $IAL_API_KEY"
    GET/megratis

    Datos de la clave, créditos usados y restantes del periodo.

    Permiso necesario: search

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/me" \
      -H "Authorization: Bearer $IAL_API_KEY"
    GET/countries/{code}/schemagratis

    Filtros admitidos, valores válidos y tareas de IA de ese país.

    Permiso necesario: search

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/countries/ES/schema" \
      -H "Authorization: Bearer $IAL_API_KEY"

    Búsqueda y fichas

    El mismo buscador de Explorar, con los filtros propios de cada país.

    POST/search1 créd.

    Busca licitaciones por texto y filtros del país.

    Permiso necesario: search

    cURL
    curl -X POST "https://api.ialicitaciones.com/v1/search" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "pais": "ES", "q": "limpieza", "exclude_awarded": true, "page": 1, "per_page": 20 }'
    GET/tenders/{id}1 créd.

    Ficha completa de una licitación con sus lotes.

    Permiso necesario: tenders

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/tenders/LICITACION_ID" \
      -H "Authorization: Bearer $IAL_API_KEY"
    GET/tenders/{id}/documents3 créd.

    Documentos de la licitación (texto extraído incluido).

    Permiso necesario: tenders

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/tenders/LICITACION_ID/documents" \
      -H "Authorization: Bearer $IAL_API_KEY"
    GET/tenders/{id}/awards1 créd.

    Adjudicaciones, adjudicatarios e importes.

    Permiso necesario: tenders

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/tenders/LICITACION_ID/awards" \
      -H "Authorization: Bearer $IAL_API_KEY"

    Documentos

    Añade documentos propios y pide su lectura para que la IA los use.

    POST/tenders/{id}/documents1 créd.

    Registra un documento externo por URL.

    Permiso necesario: tenders

    cURL
    curl -X POST "https://api.ialicitaciones.com/v1/tenders/LICITACION_ID/documents" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "url": "https://ejemplo.org/pliego.pdf", "tipo": "pliego" }'
    POST/tenders/{id}/documents/extract5 créd.

    Lanza la lectura del texto de los documentos.

    Permiso necesario: tenders

    cURL
    curl -X POST "https://api.ialicitaciones.com/v1/tenders/LICITACION_ID/documents/extract" \
      -H "Authorization: Bearer $IAL_API_KEY"

    Inteligencia artificial

    Tareas en segundo plano. Devuelven un identificador y el resultado se consulta después.

    POST/ai/{tarea}25 créd.

    resumen (25) · requisitos (25) · analisis (40) · estrategia (40) · anexos (40) · mercado (40). Se adapta sola al país.

    Permiso necesario: ai

    cURL
    curl -X POST "https://api.ialicitaciones.com/v1/ai/resumen" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "licitacion_id": "…", "expediente_id": null }'
    GET/jobs/{id}gratis

    Estado y resultado de una tarea de IA.

    Permiso necesario: ai

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/jobs/LICITACION_ID" \
      -H "Authorization: Bearer $IAL_API_KEY"

    Avisos

    Crea y gestiona los avisos guardados del espacio de trabajo.

    GET/alertsgratis

    Lista los avisos del espacio de trabajo.

    Permiso necesario: alerts

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/alerts" \
      -H "Authorization: Bearer $IAL_API_KEY"
    POST/alerts1 créd.

    Crea un aviso.

    Permiso necesario: alerts

    cURL
    curl -X POST "https://api.ialicitaciones.com/v1/alerts" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "nombre": "Limpieza Madrid", "paises": ["ES"], "keywords": ["limpieza"], "provincias": ["Madrid"], "frecuencia": "diaria" }'
    GET/alerts/{id}gratis

    Detalle de un aviso.

    Permiso necesario: alerts

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/alerts/LICITACION_ID" \
      -H "Authorization: Bearer $IAL_API_KEY"
    PATCH/alerts/{id}1 créd.

    Modifica un aviso.

    Permiso necesario: alerts

    cURL
    curl -X PATCH "https://api.ialicitaciones.com/v1/alerts/LICITACION_ID" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "activa": false }'
    DELETE/alerts/{id}1 créd.

    Elimina un aviso.

    Permiso necesario: alerts

    cURL
    curl -X DELETE "https://api.ialicitaciones.com/v1/alerts/LICITACION_ID" \
      -H "Authorization: Bearer $IAL_API_KEY"

    Avisos automáticos (webhooks)

    Te enviamos cada novedad a tu servidor, firmada y con reintentos.

    GET/webhooksgratis

    Lista los destinos configurados.

    Permiso necesario: webhooks

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/webhooks" \
      -H "Authorization: Bearer $IAL_API_KEY"
    POST/webhooks1 créd.

    Registra un destino. La clave de firma se muestra una sola vez.

    Permiso necesario: webhooks

    cURL
    curl -X POST "https://api.ialicitaciones.com/v1/webhooks" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "url": "https://tuservidor.com/hooks/ialicitaciones", "events": ["tender.matched", "tender.award_published"] }'
    DELETE/webhooks/{id}1 créd.

    Elimina un destino.

    Permiso necesario: webhooks

    cURL
    curl -X DELETE "https://api.ialicitaciones.com/v1/webhooks/LICITACION_ID" \
      -H "Authorization: Bearer $IAL_API_KEY"
    GET/webhooks/{id}/deliveriesgratis

    Últimos envíos con estado, código y error.

    Permiso necesario: webhooks

    cURL
    curl -X GET "https://api.ialicitaciones.com/v1/webhooks/LICITACION_ID/deliveries" \
      -H "Authorization: Bearer $IAL_API_KEY"
    POST/webhooks/{id}/test1 créd.

    Envía un evento de prueba (test.ping).

    Permiso necesario: webhooks

    cURL
    curl -X POST "https://api.ialicitaciones.com/v1/webhooks/LICITACION_ID/test" \
      -H "Authorization: Bearer $IAL_API_KEY"

    22 endpoints en la versión v1. Los cambios que rompan compatibilidad irán a v2 con aviso previo.

    Tareas de IA en segundo plano

    Las tareas pesadas no bloquean tu llamada: lanzas la tarea, recibes un identificador y consultas el resultado (o lo recibes por webhook). Cada tarea usa automáticamente la versión adaptada a la normativa del país de la licitación.

    Resumen de una licitación
    # 1. Lanzas la tarea (devuelve un identificador)
    curl -X POST "https://api.ialicitaciones.com/v1/ai/resumen" \
      -H "Authorization: Bearer $IAL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"licitacion_id":"LICITACION_ID"}'
    # => { "job_id": "…", "status": "queued", "poll_url": "https://api.ialicitaciones.com/v1/jobs/…" }
    
    # 2. Consultas el resultado cada pocos segundos
    curl "https://api.ialicitaciones.com/v1/jobs/JOB_ID" -H "Authorization: Bearer $IAL_API_KEY"
    # => { "status": "done", "result": { … } }

    Avisos automáticos

    tender.matched

    Una licitación nueva encaja con uno de tus avisos.

    tender.award_published

    Se publica la adjudicación de una licitación que sigues.

    test.ping

    Evento de prueba que puedes lanzar cuando quieras.

    Cada envío va firmado y se reintenta hasta 6 veces (1, 5, 15, 60, 180 y 720 minutos) si tu servidor falla. Verifica siempre la firma antes de procesar el contenido:

    Verificar la firma · cURL
    # Cabeceras que recibes en cada envío
    X-IAL-Event: tender.matched
    X-IAL-Delivery: 1234
    X-IAL-Timestamp: 1758220800
    X-IAL-Signature: sha256=<hmac>
    
    # hmac = HMAC_SHA256(secreto, "<timestamp>.<cuerpo exacto>")

    Un esquema por país

    Cada país tiene sus propios filtros y clasificaciones. Consulta GET /countries/{code}/schema y recibirás los filtros válidos, sus valores admitidos y las tareas de IA disponibles allí.

    ESEspaña

    CPV, provincia, órgano, estado, importe

    ITItalia

    CPV, región, estado, importe

    GBReino Unido

    CPV, nación, estado, importe

    DOR. Dominicana

    Objeto, subobjeto, modalidad, institución

    MXMéxico

    Entidad, orden de gobierno, carácter, CUCoP

    COColombia

    UNSPSC, departamento, modalidad, entidad

    UYUruguay

    UNSPSC, organismo, moneda, tipo de compra

    CRCosta Rica

    UNSPSC, institución, procedimiento

    ECEcuador

    CPC, provincia, tipo de contratación

    PEPerú

    Objeto, departamento, entidad

    CLChile

    ONU/UNSPSC, región, organismo

    Errores

    401Falta la clave o no es válida.
    402Sin créditos en el periodo actual.
    403La clave no tiene permiso para ese apartado o ese país.
    404El recurso no existe.
    422Filtro o campo no admitido (te indicamos cuáles valen).
    429Demasiadas llamadas por minuto. Reintenta según Retry-After.
    Formato de error
    {
      "error": {
        "code": "insufficient_credits",
        "message": "Sin créditos en el periodo actual",
        "credits_remaining": 0
      }
    }

    ¿Empezamos?

    La API viene incluida en el plan Business. Si necesitas un volumen mayor o un acuerdo a medida, hablamos y lo ajustamos.