API pública
Sólo lectura, sin autenticación y sin clave. Los mismos datos que ves en las páginas, en JSON.
Licitaciones estatales
Postor Abierto incluye fuentes de Ciudad de México, Estado de México, Nuevo León, Jalisco, Chihuahua, Puebla, Guanajuato, Sinaloa, Oaxaca, Baja California, Baja California Sur, Campeche, Nayarit y Zacatecas. Cada ficha conserva su dependencia, ámbito, calendario y documentos oficiales. La cobertura se informa por portal; no acredita que estén integradas todas las dependencias ni todo el histórico de una entidad. El rango de incorporación de las nuevas fuentes comienza en 2023; los años disponibles dependen de cada portal.
ComprasMX conserva sus URLs, búsquedas, índices y contratos. La colección estatal se consulta por separado en Licitaciones estatales.
API: /api/open/v1/estatales?q=texto&state=7&page=1. Filtros: q, state, status, year, buyer y type. Páginas de 30; total indica el tamaño. state=2 Baja California, state=3 Baja California Sur, state=4 Campeche, state=6 Chihuahua, state=7 Ciudad de México, state=11 Guanajuato, state=14 Jalisco, state=17 Estado de México, state=18 Nayarit, state=19 Nuevo León, state=20 Oaxaca, state=21 Puebla, state=25 Sinaloa y state=32 Zacatecas: son identificadores Postor, no INEGI.
Descubre valores en /estatales/facetas?state=7, registros disponibles en /estatales/cobertura y revisiones en /estatales/fuentes, bajo el mismo prefijo API. last_metadata_scan identifica la última revisión completa del catálogo con fecha, rango y conteos; latest_metadata_attempt muestra el intento más reciente, incluido un resultado parcial. Cita siempre fecha y rango juntos. documents informa la recuperación de anexos actuales de expedientes publicados, mientras last_complete_scan y last_complete_scan_from/to identifican el último lote archivado sin errores y el periodo de ese lote. checkedAt es la observación de un registro individual.
Para las publicaciones recientes, consulta last_current_metadata_scan y latest_current_metadata_attempt. Estos campos conservan la revisión del periodo reciente aunque una revisión histórica termine después. Sus fechas siempre deben leerse junto al rango from/to.
Las fichas ofrecen .md, .json y .ocds.json; los índices, .md y .json. Usa html_url para citar. El resumen OCDS utiliza un prefijo local no registrado; fechas programadas no acreditan adjudicaciones.
MCP ofrece coberturaEstatal, buscarLicitacionesEstatales, obtenerLicitacionEstatal y cambiosLicitacionesEstatales. El feed /estatales/cambios?cursor=0 devuelve upsert y withdrawal; guarda next_cursor. NDJSON paginado: /estatales/export.ndjson?page=1; sigue la cabecera Link rel=next.
Base
https://api.postor.com.mx/api/open/v1
Consultas principales
/proveedores/buscar?q=medicamentos&limite=5 devuelve coincidencias públicas. Con el slug elegido, consulta /proveedores/{slug}/adjudicaciones; admite anio, limite y cursor. La paginación cuenta adjudicaciones y conserva el vínculo con su procedimiento.
/estadisticas?dimension=general devuelve los agregados generales. Para un ejercicio usa dimension=anio&clave=2025; para una entidad, dimension=estado&clave=7. Las claves de entidad son las del índice ComprasMX, no INEGI. Estas consultas devuelven {success:true,data:...}; los esquemas y límites actuales están en openapi.json.
Paginación
Los listados e historiales de ComprasMX se recorren por cursor; los parámetros page y offset se rechazan. La colección estatal usa page, como se describe arriba. La búsqueda transversal devuelve coincidencias limitadas por tipo: no equivale a una descarga completa.
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é
En los recursos GET que devuelven ETag, envía If-None-Match para recibir 304 si no cambiaron. Las llamadas MCP son POST y no usan esa caché condicional. Para mantenerte al día 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.
MCP para agentes
Endpoint remoto: https://api.postor.com.mx/api/open/v1/mcp. Usa JSON-RPC 2.0 mediante POST, sin autenticación. Descubre nombres, filtros y esquemas actuales con tools/list y ejecuta consultas con tools/call. Las cinco herramientas principales de ComprasMX son:
buscarProcedimientos: texto y filtros públicos, con cursor para continuar.buscarProveedores: encontrar perfiles públicos por nombre; utiliza el slug devuelto.obtenerProcedimiento: ficha pública por número, con las adjudicaciones publicadas disponibles.listarAdjudicacionesProveedor: adjudicaciones públicas paginadas de un proveedor.estadisticasContratacion: agregados publicados, con cobertura y criterio de importes.
Las herramientas previas de perfiles y precios siguen disponibles. Las estatales conservan su colección y cobertura independientes. llms.txtdescribe las URLs y los límites del conjunto de datos.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "buscarProcedimientos",
"arguments": {
"q": "medicamentos",
"limite": 5
}
}
}Los resultados incluyen texto y datos estructurados. Revisa isError: un error de validación o de servicio no significa que la consulta no tenga coincidencias. Si recibes HTTP 429, respeta Retry-After antes de reintentar.
Cómo verificar un resultado
En procedimientos ComprasMX, licitia_url identifica la ficha HTML de Postor; source_id es el identificador público del registro oficial ysource_url enlaza al expediente oficial cuando está disponible. El número de procedimiento sigue siendo la clave de consulta. Un campo ausente o nulo no autoriza a inventar una URL. Los agregados remiten a su página y metodología; no representan un expediente oficial único. Las fichas estatales conservan sus campos html_url y referencias de fuente propias.
Los importes agregados siguen la metodología del sitio: pesos, otras monedas al tipo de cambio de Banxico y contratos por verificar declarados. Una fecha programada no acredita un fallo. La cobertura refleja lo publicado en Postor, no la totalidad de las compras de México. Cita la URL HTML de Postor y, al verificar un expediente, incluye también la referencia oficial disponible.
WebMCP en el navegador
En navegadores compatibles, las páginas de datos abiertos registran las mismas cinco herramientas a partir del contrato del MCP público. En la sección estatal añaden coberturaEstatal, buscarLicitacionesEstatales yobtenerLicitacionEstatal. La herramienta abrirResultadoabre una ficha o búsqueda pública en la pestaña para que la persona vea el resultado.
Recorrido: busca procedimientos o proveedores, consulta el detalle y pasa su URL HTML de Postor a abrirResultado. Consultar datos es de sólo lectura; abrir un resultado cambia la página visible. Las herramientas no requieren una cuenta ni acceden a guardados o archivos de clientes.
WebMCP es experimental y requiere un navegador y agente compatibles con document.modelContext. Su disponibilidad depende de la versión y configuración del navegador. Consulta la documentación de Chrome. Si el navegador no lo admite, puedes usar la API, el MCP remoto y la navegación habitual.
Límites y licencia
600 peticiones por minuto por IP. CC BY 4.0: úsalo para lo que quieras, cita Postor y la URL HTML del recurso, sin sufijo de formato.
Recursos
| Endpoint | Qué devuelve |
|---|---|
| GET /licitaciones/{numero} | Un procedimiento por su número |
| GET /licitaciones | Búsqueda por texto, etapa, dependencia, año, estatus, tipo o clave CUCOP |
| GET /licitaciones/cambios?desde= | Lo que cambió desde una fecha |
| GET /proveedores/buscar?q=&limite= | Buscar perfiles públicos de proveedores por nombre |
| GET /proveedores/{slug} | Perfil de una empresa |
| GET /proveedores/{slug}/adjudicaciones | Adjudicaciones del proveedor, por año y cursor |
| GET /estadisticas?dimension=&clave= | Agregados públicos: general, año o estado |
| 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}/procedimientos | Historial completo con cursor, total y snapshot |
| GET /buscar?q=&tipo=&limit= | Búsqueda transversal; hasta 50 coincidencias por tipo |
| GET /hubs | Conteos por estado, año, ramo, tipo, estatus y etapa Postor |
| GET /sitemap | Índice de fragmentos del sitemap |
| GET /sitemap/recientes | Vigentes y altas de la última semana |
Contrato completo en openapi.json. Metodología y límites de los datos en /datos.