API
Todo lo que este sitio muestra sale de un API pública y abierta. Si quiere construir encima, empezar toma menos de un minuto.
Qué es
Los mismos datos que mueven este sitio están disponibles como API pública. Es de solo lectura, no pide autenticación y no tiene cupo: todo lo que sirve son datos públicos del SECOP II, y no hay razón para ponerles una puerta.
Lo que devuelve son indicios. Una bandera encendida quiere decir que un
contrato merece que alguien lo mire, no que alguien haya obrado mal. Cada respuesta
lleva esa salvedad en meta.aviso, y en los CSV viaja en la cabecera
X-Plomada-Aviso. Si va a citar una cifra, lea antes
/v1/meta: trae la cobertura real de cada campo y las limitaciones que
hay que decir en voz alta.
Explorador interactivo (Swagger) Referencia (ReDoc) openapi.json Índice en vivo
Empezar
# la cobertura y las limitaciones: lea esto antes de citar una cifra
curl https://plumb-duy6.onrender.com/v1/meta
# cinco contratos marcados en Santander
curl 'https://plumb-duy6.onrender.com/v1/contratos?departamento=SANTANDER&limite=5'
# lo mismo, en CSV
curl 'https://plumb-duy6.onrender.com/v1/departamentos?formato=csv'
Los tres se pueden copiar y pegar tal cual.
Convenciones
Toda respuesta viene en el mismo sobre: datos con el contenido y
meta con la versión, la fuente, el aviso y la paginación.
- Errores. Un cuerpo
{"error": {"codigo", "mensaje", "detalle"}}. Elcodigoes estable y es por el que conviene ramificar; elmensajees para leer. - Paginación.
limite(tope 200) ydesplazamiento. El total real viene enmeta.paginacion.total, que casi siempre es mayor que lo que devolvió: sin mirarlo es fácil publicar «200 contratos» cuando eran miles. - CSV. Los listados aceptan
?formato=csv. Respeta el mismo tope de 200, así que una descarga completa se arma paginando.
El sobre de toda respuesta
{
"datos": [ ... ],
"meta": {
"version": "1.0.0",
"fuente": "SECOP II - datos.gov.co",
"aviso": "Riesgo no es fraude. Estas cifras son indicios ...",
"paginacion": { "limite": 5, "desplazamiento": 0,
"total": 4794, "devueltas": 5 }
}
}
La primera llamada tarda
El API vive en un plan gratuito que duerme el servicio cuando nadie lo usa. La primera llamada después de un rato puede tardar entre 30 y 60 segundos; las siguientes responden normal. No está caído: está despertando. Si escribe un cliente, déle a la primera petición un tiempo de espera generoso — este sitio usa 60 segundos para la primera y 15 para el resto.
Los endpoints
Veinte rutas bajo /v1, todas de solo lectura. El detalle de
parámetros y respuestas está en
el explorador interactivo.
| Ruta | Qué responde |
|---|---|
/v1 | Índice de la API: el catálogo de todo lo que sigue. |
/v1/meta | Cobertura real de cada campo y las limitaciones. Léalo primero. |
/v1/titulares | Las cifras de encabezado del proyecto. |
/v1/indicios | Cuánta plata hay por categoría de indicio. |
/v1/banderas | Glosario de las banderas, con su peso y su glosa. |
/v1/contratos | Buscador de contratos, con filtros y orden. |
/v1/contratos/{id_contrato} | Ficha completa de un contrato, bandera por bandera. |
/v1/entidades | Buscador de entidades contratantes. |
/v1/entidades/{nit_entidad} | Perfil de una entidad. |
/v1/proveedores | Buscador de proveedores. |
/v1/proveedores/{doc} | Perfil de un proveedor y su red. |
/v1/municipios | Ranking municipal por tasa ajustada. |
/v1/departamentos | Plata y tasas por departamento. |
/v1/tipos-obra | Plata por tipo de obra. |
/v1/fuentes | Plata por fuente de recursos. |
/v1/autosupervision | Entidades donde autosupervisar es la norma. |
/v1/red/clusters | Grupos económicos detectados. |
/v1/red/clusters/{cluster_id} | El subgrafo de un grupo económico. |
/v1/alertas | Licitaciones abiertas que ya presentan banderas. |
/v1/alertas/resumen | Conteo por universo del snapshot de alertas. |
Conecta tu propio cliente (MCP)
Los mismos datos están publicados como servidor MCP, el protocolo con el que un asistente conversacional consulta herramientas externas. Sirve para preguntarle a los datos en lenguaje natural desde un cliente que ya use — Claude Desktop, Claude Code o cualquiera con soporte de MCP remoto — sin escribir código.
Es el mismo trato que el API: solo lectura, sin autenticación, sobre datos públicos. Y la misma salvedad, que el servidor declara en sus propias instrucciones: lo que devuelve son indicios para priorizar una revisión, no prueba de nada.
URL https://plumb-duy6.onrender.com/mcp/
Transporte streamable-http
Auth ninguna
La barra final importa. https://plumb-duy6.onrender.com/mcp/ con
barra. Sin ella el servicio responde con una redirección 307, y hay clientes
que no la siguen en un POST y fallan sin decir por qué.
Cómo se declara un servidor MCP remoto cambia con cada cliente, así que la forma exacta la manda la documentación del suyo. Lo que necesita darle es lo de arriba: la URL con barra final y el transporte.
Las herramientas
| Herramienta | Qué responde |
|---|---|
resumen_indicios | Las cifras titulares y las limitaciones que las acompañan. |
buscar_contratos_atipicos | Contratos marcados, con filtros. |
detalle_contrato | La ficha completa de un contrato, con cada bandera encendida. |
perfil_entidad | El resumen de una entidad contratante. |
buscar_proveedor | El perfil de un proveedor y su red. |
alertas_preadjudicacion | Licitaciones que todavía aceptan ofertas. |
glosario_banderas | Las 26 banderas con su peso. |
O pregúntele aquí mismo
Si no quiere configurar nada, el asistente de Plomada ya está conectado a estas mismas herramientas. Funciona con su propia API key de Anthropic y corre en su navegador.