Desarrolladores · Guía

Guía de la API y el MCP de Licitaciones365

Lleva las licitaciones públicas de España a tus aplicaciones con una API REST, o conecta tu asistente de IA con el servidor MCP. Los datos son los de la Plataforma de Contratación del Sector Público y las plataformas autonómicas que ya usas en la app, actualizados a diario.

URL de la API
https://api.licitaciones365.es/v1
Servidor MCP
https://api.licitaciones365.es/mcp
Autenticación
API key (Bearer) · OAuth 2.1 para asistentes
Formato
JSON · OpenAPI 3.1
Índice de la documentación

Beta. Estamos abriendo el acceso por fases. Si al usar tu clave recibes el error beta_cerrada, escríbenos a contact-us@licitaciones365.es y te damos acceso.

Introducción

Licitaciones365 ofrece dos puertas a los mismos datos y a la misma cuenta, con los permisos y los límites de tu plan:

API REST

Para tus aplicaciones, scripts e integraciones (ERP, CRM, hojas de cálculo, automatizaciones). Se autentica con una API key.

Planes Pro y Enterprise de pago

Servidor MCP

Para asistentes de IA compatibles con el Model Context Protocol, como ChatGPT y Claude. Se conecta con OAuth: el usuario inicia sesión y autoriza.

Planes Plus, Pro y Enterprise, y la prueba gratuita

La API está en https://api.licitaciones365.es/v1. Con ella puedes buscar licitaciones con los mismos filtros que el buscador de la app, ver su ficha por secciones y sus documentos; gestionar las favoritas y las descartadas del equipo, la nota, las tareas y los recordatorios de cada licitación y la agenda de plazos; crear, probar y ajustar alertas; consultar los contratos que vencen, los órganos de contratación, los adjudicatarios y estadísticas de mercado; y usar la IA de Licitaciones365 sobre cada licitación. La referencia recoge todas las operaciones.

Si buscas usar Licitaciones365 desde ChatGPT o Claude sin programar, tienes los pasos en ChatGPT y Claude.

Autenticación con API key

Cada petición lleva una API key en la cabecera Authorization:

Cabecera
Authorization: Bearer l365_tu_clave

Si tu herramienta solo te deja indicar el nombre de una cabecera (Copilot Studio, Power Automate…), envíala en X-API-Key: l365_tu_clave.

Crear una clave

  1. Entra en la app y ve a Perfil → Integraciones (ir a Integraciones).
  2. En API keys, crea una clave: ponle un nombre que te ayude a reconocerla (por ejemplo, «ERP de ofertas»), elige el equipo con el que trabajará (o todos tus equipos) y su permiso: solo lectura o lectura y escritura. Si quieres, ponle una caducidad (de 1 a 730 días).
  3. Copia la clave: solo se muestra una vez. Empieza por l365_.
  • Planes: las API keys están incluidas en los planes Pro y Enterprise de pago. No están en la prueba gratuita. Si el plan del equipo baja de Pro, sus claves dejan de funcionar (error plan_insuficiente) hasta que vuelva a subir.
  • Las crea el propietario del equipo. Solo el propietario, que es quien paga el plan, crea, usa y revoca las API keys de su equipo. El resto del equipo las ve en la app y trabaja con su propio asistente. Hasta 5 claves activas por equipo.
  • Un equipo o todos los tuyos. La clave trabaja con el equipo que elegiste, sin depender del que tengas abierto en la app. Si la creas para todos tus equipos, cada petición elige equipo con la cabecera X-Equipo: <id> (los ids salen en GET /cuenta). Sin ella, trabaja con el equipo con el que la creaste.
  • Permisos: con una clave de solo lectura, cualquier petición que cambie datos responde solo_lectura. Empieza con solo lectura si no necesitas más.
  • Revocación: revoca una clave desde la misma pantalla y deja de funcionar al momento. Cerrar todas las sesiones de tu cuenta, suspenderla o borrarla también revoca tus claves.
  • Guárdala como una contraseña: en variables de entorno o en un gestor de secretos, nunca en el código ni en una web. La API no admite llamadas desde el navegador (no tiene CORS): llámala desde tu servidor. De la clave solo guardamos su huella (hash), así que no podemos recuperarla: si la pierdes, revócala y crea otra.

Primera petición

Guarda tu clave en la variable de entorno L365_API_KEY (la usan todos los ejemplos) y comprueba que funciona con GET /cuenta, que no consume cuota diaria:

Terminal
curl https://api.licitaciones365.es/v1/cuenta \
  -H "Authorization: Bearer $L365_API_KEY"
Respuesta (resumida)
{
  "data": {
    "usuario": { "id": 1234, "email": "ana@empresa.es", "nombre": "Ana García" },
    "equipo": { "id": 567, "nombre": "Licitaciones", "plan": "Pro", "rol": "owner" },
    "credencial": { "tipo": "api_key", "nombre": "ERP de ofertas", "escritura": false },
    "cuotas_api_hoy": {
      "busquedas_dia": { "limite": 1000, "usado": 37 },
      "fichas_dia": { "limite": 2000, "usado": 112 },
      …
    },
    "datos_actualizados": "2026-10-13T21:47:12+02:00",
    …
  }
}

La respuesta dice con qué usuario, equipo y plan trabaja la clave, si puede escribir y cuánto has usado hoy de cada cuota.

Servidor MCP

El servidor MCP permite a un asistente de IA buscar licitaciones y trabajar con los datos del equipo en nombre del usuario. Usa el transporte HTTP en streaming (Streamable HTTP) en:

URL del servidor MCP
https://api.licitaciones365.es/mcp

Autenticación con OAuth (ChatGPT, Claude y otros asistentes)

Es lo que usa el botón «Conectar» de los asistentes. El usuario no comparte su contraseña: inicia sesión en Licitaciones365, elige el equipo y si el asistente puede hacer cambios o solo consultar, y autoriza. Disponible en los planes Plus, Pro y Enterprise y en la prueba gratuita.

  • OAuth 2.1 con código de autorización y PKCE (S256), con registro dinámico de clientes (RFC 7591) en /oauth/register.
  • Descubrimiento en /.well-known/oauth-protected-resource y /.well-known/oauth-authorization-server. Una petición sin token recibe un 401 con la cabecera WWW-Authenticate que apunta a esos metadatos.
  • Se aceptan las direcciones de vuelta de Claude (claude.ai, claude.com), ChatGPT (chatgpt.com, chat.openai.com) y las locales (localhost, 127.0.0.1), que usan clientes de escritorio y de terminal como Claude Code.
  • Los tokens de acceso duran poco y el cliente los renueva solo. El usuario puede desconectar el asistente cuando quiera en Perfil → Integraciones.

Autenticación con API key

En clientes que permiten cabeceras propias, puedes conectar el MCP con una API key (planes Pro y Enterprise de pago). Por ejemplo, en Claude Code:

Terminal
claude mcp add --transport http licitaciones365 https://api.licitaciones365.es/mcp \
  --header "Authorization: Bearer l365_..."

La clave trabaja con su equipo y su permiso, igual que en la API. Los pasos para conectar Claude y ChatGPT con OAuth están en ChatGPT y Claude.

Herramientas

Los nombres y las descripciones de las herramientas están en español, para que el asistente sepa cuándo usar cada una. Cada conexión ve solo las que su plan y su permiso permiten: con permiso de solo lectura no aparecen las que escriben. Lo marcado como «Pro y Enterprise» también está en la prueba gratuita.

Cada herramienta declara si solo consulta, si añade algo o si modifica o borra (las marcas readOnlyHint y destructiveHint del protocolo), y los asistentes se basan en ellas: lo que solo consulta lo ejecutan sin preguntar, para añadir piden permiso salvo que el usuario lo haya dejado permitido, y antes de modificar o borrar piden confirmación. El detalle depende de cómo tenga configurados los permisos cada asistente.

Cuenta y códigos

  • contexto_cuentaConsulta

    Usuario, equipo, plan, límites, presupuesto de IA y cuotas de hoy.

  • buscar_codigosConsulta

    Traduce sectores y territorios a códigos: CPV, provincias, comunidades, estados, tipos de contrato…

Licitaciones

  • buscar_licitacionesConsulta

    Búsqueda con los filtros del buscador de la app, 25 resultados por página.

  • ver_licitacionConsulta

    Ficha por secciones (o el resumen de hasta 30 a la vez). La sección de vencimiento, en Pro y Enterprise.

  • listar_documentosConsulta

    Enlaces a los pliegos y anuncios en el portal oficial.

Favoritas y descartadas

  • listar_favoritasConsulta

    Favoritas del equipo («Mis concursos») y sus grupos.

  • anadir_favoritaEscribe

    Añadir una licitación a favoritas, si quieres en un grupo.

  • mover_favoritaEscribeDestructiva

    Cambiar una favorita de grupo o dejarla sin grupo.

  • quitar_favoritaEscribeDestructiva

    Quitar de favoritas (también desactiva sus recordatorios pendientes).

  • descartar_licitacionEscribe

    Marcar una licitación como «No me interesa».

  • deshacer_descarteEscribeDestructiva

    Quitar la marca «No me interesa».

Alertas y resumen diario

  • listar_alertasConsulta

    Alertas del equipo, con los ajustes del resumen y sus destinatarios.

  • probar_alertaConsulta

    Cuántas y cuáles licitaciones habría traído una alerta en los últimos 30 días.

  • crear_alertaEscribe

    Crear una alerta. Propietario del equipo.

  • modificar_alertaEscribeDestructiva

    Cambiar, activar o pausar una alerta. Propietario del equipo.

  • borrar_alertaEscribeDestructiva

    Borrar una alerta. Propietario del equipo.

  • historial_resumenConsulta

    Lo que se envió cada día en el resumen y los cambios en favoritas.

  • ajustes_resumenEscribeDestructiva

    Cambiar los ajustes del correo de resumen y sus destinatarios. Pro y Enterprise; propietario del equipo.

Trabajo en cada licitación

  • espacio_licitacionConsulta

    Nota, tareas, recordatorios y conversaciones de IA de una licitación.

  • anadir_a_notaEscribe

    Añadir texto al final de la nota del equipo.

  • reemplazar_notaEscribeDestructiva

    Sustituir la nota del equipo por otra.

  • crear_tareaEscribe

    Crear una tarea en el checklist.

  • modificar_tareaEscribeDestructiva

    Cambiar o completar una tarea. Asignarla a alguien, en Pro y Enterprise.

  • borrar_tareaEscribeDestructiva

    Borrar una tarea del checklist.

  • crear_recordatorioEscribe

    Crear un recordatorio de un plazo.

  • modificar_recordatorioEscribeDestructiva

    Pausar o reactivar un recordatorio.

  • borrar_recordatorioEscribeDestructiva

    Borrar un recordatorio.

  • agendaConsulta

    Calendario de plazos y vencimientos. Tus tareas, en Pro y Enterprise.

IA de Licitaciones365

Las que generan algo gastan presupuesto de IA del equipo y necesitan permiso de escritura; las de consulta, no.

  • preguntar_licitacionEscribe

    Pregunta a la IA, que responde leyendo los pliegos; la conversación queda en la app.

  • consultar_respuesta_iaConsulta

    Recoge una respuesta que aún estaba en curso.

  • generar_checklist_iaEscribe

    Propuesta de tareas para presentarse, a partir de los pliegos. Pro y Enterprise.

  • ver_checklist_iaConsulta

    La última propuesta de tareas de la IA. Pro y Enterprise.

  • importar_checklist_iaEscribe

    Pasa las tareas propuestas al checklist del equipo. Pro y Enterprise.

  • generar_informe_pdfEscribe

    Informe PDF de la licitación, con un enlace de descarga que caduca a los 15 minutos.

  • ver_informe_pdfConsulta

    Estado del informe y enlace de descarga.

  • analizar_competenciaEscribe

    Calcula quién suele ganar en el segmento de un lote y con qué bajas. Pro y Enterprise.

  • ver_competenciaConsulta

    El último análisis de competencia del equipo, sin coste. Pro y Enterprise.

  • recomendar_cpvEscribe

    Los 10 CPV que mejor encajan con la descripción de una empresa.

Mercado

  • buscar_vencimientosConsulta

    Contratos que vencen pronto, con filtros y estadísticas. Pro y Enterprise.

  • buscar_organos_adjudicatariosConsulta

    Directorios de órganos de contratación y de empresas adjudicatarias.

  • estadisticas_mercadoConsulta

    Estadísticas por CPV, provincia y comunidad autónoma.

Atajos

El servidor ofrece también estos atajos (prompts del MCP), que el asistente muestra para lanzar una tarea completa con un clic:

  • buscar_oportunidadesBuscar oportunidades para mi empresa. Licitaciones abiertas que encajan con tu actividad, tu zona y el importe que te interesa, con su plazo y por qué encajan.
  • analizar_licitacionAnalizar una licitación. Alcance, importes, plazos, criterios, solvencia, riesgos y si encaja con tu empresa.
  • preparar_ofertaPreparar la oferta de una licitación. Plan de trabajo para presentarse: documentación, tareas con fechas, responsables y recordatorios.
  • novedadesNovedades y próximos plazos. Lo que ha llegado por tus alertas, los cambios en tus favoritas y los plazos y tareas que tienes por delante.

En el MCP, los errores (plan, permisos, límites, parámetros) llegan como resultado de la herramienta, con un mensaje en español para que el asistente se lo explique al usuario. Las llamadas del MCP cuentan en las mismas cuotas diarias del equipo que la API.

Límites y cuotas

Los límites dependen del plan del equipo. Los de por minuto cuentan por credencial (cada API key o cada asistente conectado); los diarios, por equipo, sumando todas sus credenciales, y se renuevan a medianoche (hora de Madrid).

LímitePlusPro y prueba gratuitaEnterprise
Consultas por minuto por credencial60120240
Cambios por minuto por credencial153060
Búsquedas al día por equipo3001.0003.000
Fichas de detalle al día por equipo5002.0006.000
  • El plan Plus y la prueba gratuita usan estos límites a través del MCP: las API keys son de Pro y Enterprise de pago.
  • Crear favoritas y alertas, probar alertas y consultar a la IA tienen además topes diarios propios. Todas las cuotas, con lo usado hoy, están en cuotas_api_hoy de GET /cuenta (en el MCP, la herramienta contexto_cuenta).
  • Al pasarte de un límite recibes 429 limite_superado con la cabecera Retry-After en segundos.
  • Búsquedas: hasta 100 resultados por página y los primeros 5.000 de cada búsqueda. Una búsqueda que tarda demasiado se corta con busqueda_demasiado_amplia: acótala con más filtros.
  • Los intentos con credenciales no válidas se limitan por dirección IP.
  • Son cifras de partida: pueden ajustarse durante la beta.

Respuestas y paginación

Todas las respuestas son JSON con los datos en data y, cuando hay información adicional (paginación, filtros aplicados…), en meta:

Formato
{
  "data": [ … ],
  "meta": {
    "paginacion": { "pagina": 1, "por_pagina": 25, "total": 312, "total_es_minimo": false, "hay_mas": true },
    "filtros": { … }
  }
}
  • Las claves van en español y en minúsculas con guion bajo: importe_sin_iva.
  • Los códigos llevan su nombre: {"codigo": "PUB", "nombre": "En plazo"}.
  • Fechas con hora en ISO 8601 y hora de Madrid (2026-10-02T09:15:00+02:00); fechas sin hora como AAAA-MM-DD.
  • Importes en euros y sin IVA, salvo los campos que acaban en _con_iva.
  • Si no hay dato, el valor es null; en algunas secciones de la ficha, la clave sin dato no aparece.
  • Los filtros de lista van separados por comas en la URL: estado=PUB,EV.
  • Pagina con pagina y por_pagina; sigue pidiendo mientras meta.paginacion.hay_mas sea true.
  • url_app abre la licitación en la app de Licitaciones365; url_origen, en el portal oficial.
  • Tareas largas (IA): responden 202 con estado: "en_curso" y se recogen después con su GET. Con el parámetro esperar (hasta 25 segundos), la misma llamada espera a que terminen.
  • Estabilidad: en /v1 podemos añadir recursos y campos nuevos, así que ignora los que no conozcas. Un cambio incompatible iría en una versión nueva de la API.

Errores

Los errores llevan el estado HTTP que corresponde y este cuerpo. Usa code en tu código: es estable. message está en español para mostrarlo a una persona y puede cambiar.

Límite superado
HTTP/1.1 429 Too Many Requests
Retry-After: 42
Content-Type: application/json

{
  "error": {
    "code": "limite_superado",
    "message": "Demasiadas peticiones: con el plan Pro cada credencial puede hacer 120 consultas por minuto. Vuelve a intentarlo en 42 s."
  }
}
Parámetro no válido
{
  "error": {
    "code": "parametros_invalidos",
    "message": "El campo por_pagina debe ser como máximo 100.",
    "details": {
      "por_pagina": ["El campo por_pagina debe ser como máximo 100."]
    }
  }
}
codeHTTPCuándoQué hacer
no_autenticado401

Falta la cabecera Authorization.

Envía Authorization: Bearer l365_… (o X-API-Key: l365_…).

credencial_invalida401

La clave no existe, ha caducado o se ha revocado, o su equipo ya no existe. También si usas en /v1 el token de un asistente conectado por OAuth.

Crea una clave nueva en la app (Perfil → Integraciones).

cuenta_no_disponible403

La cuenta de la clave está suspendida o se ha borrado.

Escríbenos si crees que es un error.

plan_insuficiente403

El plan del equipo no incluye la API (o el MCP), o la operación necesita un plan superior.

Revisa el plan del equipo en la app.

beta_cerrada403

Las integraciones están en beta cerrada y tu cuenta todavía no tiene acceso.

Pídenos acceso por correo.

sin_equipo403

Ya no perteneces al equipo de la clave.

Usa una clave de un equipo del que seas propietario.

solo_propietario403

La clave no es del propietario del equipo: solo él puede crear y usar las API keys de su equipo.

Pide al propietario del equipo que cree la clave.

equipo_bloqueado403

El equipo está bloqueado por los límites del plan.

Gestiónalo en «Gestionar equipos» de la app.

solo_lectura403

Una petición que cambia datos con una clave de solo lectura.

Usa una clave con permiso de escritura.

sin_permiso403

La acción está reservada a otro rol, por ejemplo al propietario del equipo. También si X-Equipo pide un equipo que no es tuyo, o la clave no es para todos tus equipos.

Pide al propietario que la haga o que te dé acceso.

presupuesto_ia_agotado403

El equipo ha agotado el presupuesto mensual de IA de su plan.

Espera a que se renueve; buscar y consultar licitaciones sigue funcionando.

limite_del_plan403

El equipo ha llegado a un límite de su plan, por ejemplo el máximo de favoritas.

Libera espacio (por ejemplo, quitando favoritas) o amplía el plan.

no_encontrado404

El recurso o la ruta no existen (o no tienes acceso a ellos).

Revisa el identificador y la ruta.

metodo_no_permitido405

La ruta existe, pero no con ese método HTTP.

Consulta la referencia.

ya_es_favorita409

La licitación ya está en las favoritas del equipo.

Para cambiarla de grupo, usa PATCH /favoritas/{id}.

es_favorita409

Una favorita no se puede descartar.

Quítala antes de favoritas (DELETE /favoritas/{id}).

ia_en_curso409

Ya hay una ejecución de IA en curso con esta clave: solo puede haber una a la vez.

Espera a que termine y vuelve a intentarlo.

sin_checklist_ia409

Has pedido importar un checklist IA que todavía no se ha generado.

Genéralo antes con POST /licitaciones/{id}/ia/checklist.

parametros_invalidos422

Algún parámetro no es válido. Si es un error de formato, details trae los mensajes de cada campo.

Corrige los parámetros; el mensaje dice cuál falla.

busqueda_demasiado_amplia422

La búsqueda ha superado el tiempo máximo.

Acótala: fechas de publicación, provincia, CPV, estado o un texto más concreto.

limite_superado429

Has superado el límite por minuto de la clave o una cuota diaria del equipo.

Espera los segundos que indica la cabecera Retry-After.

error_interno500

Un error inesperado de nuestro lado.

Reintenta más tarde; si se repite, escríbenos.

Si recibes un código que no está en la lista, trátalo según su estado HTTP.

Documentos: enlaces al portal oficial

Los pliegos, anexos y anuncios de cada licitación se devuelven como enlaces al portal oficial donde se publicaron (la Plataforma de Contratación del Sector Público o el portal autonómico), igual que en la app. Ni la API ni el MCP descargan, guardan ni sirven su contenido.

  • Cada documento tiene un identificador compuesto (pliego_adm:…, pliego_tec:…, anexo:…, general:…, anuncio:…, modweb:…), su tipo, nombre, fecha y el dominio del portal (fuente).
  • Si un documento se publicó varias veces, sale solo su última versión. Los que el órgano ha retirado llegan con retirado: true.
  • Algunos portales detectan accesos automáticos o necesitan un navegador. Si tu programa o tu asistente no puede abrir un enlace, ábrelo tú en el navegador.

Privacidad

  • Adjudicatarios que son personas físicas: salen como «Persona física», sin nombre ni NIF y con persona_fisica_protegida: true. Solo se muestran el nombre y el NIF de empresas identificadas con certeza; en caso de duda, se protegen. Lo mismo vale en el MCP: estos datos acaban en sistemas de terceros.
  • Datos del equipo: una credencial solo ve los datos de su equipo (favoritas, notas, tareas, alertas). Nunca los de otros equipos.
  • Sin sesiones ni dispositivos: las API keys y los asistentes conectados no ocupan plazas del límite de dispositivos ni aparecen como sesiones.
  • Registro de cambios: guardamos qué cambios hace cada credencial (quién, con qué clave o asistente, qué acción y sobre qué).
  • Más detalle en la política de privacidad.

Condiciones de uso de la API

Además de los términos y condiciones de Licitaciones365, al usar la API o el MCP aceptas estas condiciones:

  • Ni reventa ni redistribución. Los datos que obtienes son para tu actividad y tus propias integraciones. No puedes revenderlos, cederlos ni redistribuirlos a terceros, por ejemplo publicándolos en otra web o servicio o montando con ellos una base de datos para otros.
  • Atribución. Los datos proceden de información del sector público reutilizada conforme a la Ley 37/2007 (RISP). Cuando muestres información obtenida de la API, cita su origen: «Fuente: Plataforma de Contratación del Sector Público y plataformas autonómicas, vía Licitaciones365». La ficha de cada licitación lo trae en el campo fuente.

Ejemplos de código

Los casos más comunes, en curl, Python (con requests) y JavaScript (Node.js 18 o superior, con fetch). Al elegir un lenguaje, se elige en todos los ejemplos de la página.

Licitaciones en plazo de un sector, todas las páginas

Busca las licitaciones en plazo de un CPV en una comunidad autónoma y recorre todas las páginas de 100 en 100. Cada página consume una búsqueda de la cuota diaria.

curl -G "https://api.licitaciones365.es/v1/licitaciones" \
  --data-urlencode "cpv=77310000" \
  --data-urlencode "comunidad=ES52" \
  --data-urlencode "estado=PUB" \
  --data-urlencode "por_pagina=100" \
  --data-urlencode "pagina=1" \
  -H "Authorization: Bearer $L365_API_KEY"

Traducir un sector a códigos CPV

Antes de filtrar por sector, busca sus códigos CPV por texto. El mismo endpoint traduce provincias, comunidades, estados y tipos de contrato.

curl -G "https://api.licitaciones365.es/v1/catalogos/cpv" \
  --data-urlencode "texto=limpieza de edificios" \
  -H "Authorization: Bearer $L365_API_KEY"

Ficha de una licitación, con criterios y documentos

Pide solo las secciones que necesitas. Los documentos son enlaces al portal oficial: tu código decide si los abre o los guarda.

curl -G "https://api.licitaciones365.es/v1/licitaciones/4815162" \
  --data-urlencode "secciones=general,condiciones,documentos" \
  -H "Authorization: Bearer $L365_API_KEY"

Preguntar a la IA sobre los pliegos

La IA de Licitaciones365 responde leyendo los pliegos de la licitación. Necesita una clave con permiso de escritura y gasta presupuesto de IA del equipo. La primera pregunta sobre una licitación puede tardar unos minutos: si no llega dentro de «esperar», recoge la respuesta con su run_id.

# 1. La pregunta (espera hasta 20 s a la respuesta)
curl -X POST "https://api.licitaciones365.es/v1/licitaciones/4815162/ia/preguntas" \
  -H "Authorization: Bearer $L365_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pregunta": "¿Qué solvencia técnica piden y cómo se acredita?", "esperar": 20}'

# 2. Si responde 202 (estado "en_curso"), recoge la respuesta con su run_id
curl "https://api.licitaciones365.es/v1/ia/consultas/98231?esperar=20" \
  -H "Authorization: Bearer $L365_API_KEY"

Respetar los límites: esperar y reintentar

Ante un 429, espera los segundos de la cabecera Retry-After. Si son muchos, se ha agotado una cuota diaria: no reintentes hasta el día siguiente.

# -i muestra las cabeceras: ante un 429, mira Retry-After
curl -i "https://api.licitaciones365.es/v1/cuenta" \
  -H "Authorization: Bearer $L365_API_KEY"

Referencia de la API

OpenAPI 3.1 (JSON)

La referencia interactiva tiene todas las operaciones, con sus parámetros, respuestas y errores, generadas a partir de la especificación OpenAPI 1.0.0. Pulsa «Authorize», pega tu API key y prueba cualquier operación con «Try it out». También puedes importar la especificación en Postman, Insomnia o tu generador de clientes. Todas las rutas cuelgan de https://api.licitaciones365.es/v1.

¿Empezamos?

Crea tu API key en la app o conecta tu asistente. Si algo no está claro o echas en falta un recurso, escríbenos a contact-us@licitaciones365.es.