Saltar al contenido
LicitIAAbierto

API pública

Sólo lectura, sin autenticación y sin clave. Los mismos datos que ves en las páginas, en JSON.

Base

https://api.licitia.com.mx/api/open/v1

Paginación

Sólo por cursor. Los parámetros page y offset se rechazan con un error que lo explica. No es capricho: los rastreadores siguen la paginación hasta el final, y con desplazamiento sobre 365 mil filas eso acaba pidiéndole a la base que produzca y deseche 360 mil filas ordenadas para devolver veinte.

Usa page_info.next_cursor. Un cursor recuerda con qué orden y combinación de filtros se generó; se rechaza si se usa con otros, porque si no devolvería una página plausible y equivocada.

Caché

Todas las respuestas traen ETag; manda If-None-Match y recibirás 304. Los procedimientos concluidos casi nunca cambian, así que se sirven con caché larga. Para mantenerte al día no vuelvas a recorrer el corpus: usa /licitaciones/cambios?desde=.

Formatos por página

Los procedimientos aceptan .md, .json y .ocds.json (Open Contracting Data Standard 1.1). Los perfiles y sus historiales aceptan .md y .json, también mediante negociación por cabecera Accept.

Para modelos

Hay un llms.txt con la gramática de URLs y un endpoint MCP de sólo lectura en https://api.licitia.com.mx/api/open/v1/mcp con cinco herramientas. Cada respuesta incluye la URL HTML para citar — nunca el sufijo .json ni .md.

Límites y licencia

600 peticiones por minuto por IP. CC BY 4.0: úsalo para lo que quieras, cita LicitIA y la URL HTML del recurso, sin sufijo de formato.

Recursos

EndpointQué devuelve
GET /licitaciones/{numero}Un procedimiento por su número
GET /licitacionesBúsqueda por etapa, dependencia, año, estatus, tipo o clave CUCOP
GET /licitaciones/cambios?desde=Lo que cambió desde una fecha
GET /proveedores/{slug}Perfil de una empresa
GET /compradores/{slug}Perfil de una dependencia
GET /unidades/{slug}Perfil de una unidad compradora
GET /categorias/{clave}Precios unitarios por clave CUCOP
GET /{entidad}/{clave}/procedimientosHistorial completo con cursor, total y snapshot
GET /buscar?q=&tipo=&limit=Búsqueda transversal; hasta 50 coincidencias por tipo
GET /hubsConteos por estado, año, ramo, tipo, estatus y etapa LicitIA
GET /sitemapÍndice de fragmentos del sitemap

Contrato completo en openapi.json. Metodología y límites de los datos en /datos.