API pública
Todo lo que muestra este sitio se obtiene de la misma API que puede usar cualquier entidad, periodista o ciudadano. Especificación OpenAPI 3.1: /api/v1/openapi.json. Lectura bajo políticas de seguridad por filas; la escritura sólo existe para el rol sistema desde las funciones de ingesta.
Ejemplos (copie y ejecute)
# Panorama con procedencia
curl -s "https://rpehvytoidnzggcopkdw.supabase.co/rest/v1/rpc/panorama" -H "apikey: sb_publishable_MSO4f36lkx4t0PV_HPEXOg_yP6ic5Y5" -H "Content-Type: application/json" -d '{}'
# Serie de embalses (30 días)
curl -s "https://rpehvytoidnzggcopkdw.supabase.co/rest/v1/rpc/serie" -H "apikey: sb_publishable_MSO4f36lkx4t0PV_HPEXOg_yP6ic5Y5" -H "Content-Type: application/json" \
-d '{"p_variable":"xm.PorcVoluUtilDiar","p_sujeto":"SIN","p_limite":30}'
# Contratos de mayor valor (vista con filtros PostgREST)
curl -s "https://rpehvytoidnzggcopkdw.supabase.co/rest/v1/nodos?clase=eq.Contrato&order=props->valor.desc&limit=5&select=etiqueta,props" -H "apikey: sb_publishable_MSO4f36lkx4t0PV_HPEXOg_yP6ic5Y5"
# Trazabilidad de una entidad (NIT sin dígito de verificación)
curl -s "https://rpehvytoidnzggcopkdw.supabase.co/rest/v1/rpc/trazabilidad_entidad" -H "apikey: sb_publishable_MSO4f36lkx4t0PV_HPEXOg_yP6ic5Y5" -H "Content-Type: application/json" -d '{"p_nit":"899999055"}'
# Verificar un asiento del registro (sin apikey: función pública)
curl -s "https://rpehvytoidnzggcopkdw.supabase.co/functions/v1/verificar?seq=27"
# Verificar un ancla y contrastarla con el testigo en GitHub
curl -s "https://rpehvytoidnzggcopkdw.supabase.co/functions/v1/verificar?ancla=1"La clave
apikey es la clave publishable del proyecto: es pública por diseño y no otorga privilegios; los datos clasificados requieren además un JWT de sesión con rol analista o auditor (Authorization: Bearer …).Rutas
| Método | Ruta | Descripción | Grupo |
|---|---|---|---|
| POST | /panorama | Indicadores del panorama con su procedencia (captura, hash, asiento) | Funciones (RPC) |
| POST | /estado_sistema | Conteos y estado del sistema (nodos, aristas, asientos, anclas, fuentes, hallazgos) | Funciones (RPC) |
| POST | /serie | Serie temporal de una variable | Funciones (RPC) |
| POST | /ultimas_observaciones | Últimas observaciones de una variable | Funciones (RPC) |
| POST | /verificar_cadena | Recorre la cadena de asientos y recalcula cada enlace | Funciones (RPC) |
| POST | /vecindad | Vecindad de un nodo del grafo hasta N saltos | Funciones (RPC) |
| POST | /trazabilidad_entidad | Entidad estatal → contratos → proveedores → hallazgos → presupuesto | Funciones (RPC) |
| POST | /programacion | Tareas programadas (pg_cron) y su última ejecución | Funciones (RPC) |
| POST | /atlas | Atlas por escalas: hijos con agregados, actores por capa (público, control, conocimiento, privado: sociedades, consorcios y uniones temporales; personas naturales sólo agregadas), flujos de dinero, contratos ubicados en el municipio de la unidad contratante, hallazgos y ambiente del marco | Funciones (RPC) |
| POST | /grafo_consolidado | Dos capas del grafo para el orbe: clases con conteos reales y muestra determinista de instancias con sus aristas | Funciones (RPC) |
| GET | /territorios | Departamentos y municipios DIVIPOLA con centroide (base del mapa teselado) | Vistas (PostgREST, RLS) |
| GET | /nodos | Nodos del grafo (filtros PostgREST: `clase=eq.Contrato`, `etiqueta=ilike.*TRANSPORTE*`) | Vistas (PostgREST, RLS) |
| GET | /aristas | Relaciones del grafo | Vistas (PostgREST, RLS) |
| GET | /observaciones | Observaciones con procedencia | Vistas (PostgREST, RLS) |
| GET | /capturas | Capturas de fuentes: URL, hash SHA-256, estado, asiento | Vistas (PostgREST, RLS) |
| GET | /hallazgos | Hallazgos de reglas de riesgo con evidencia | Vistas (PostgREST, RLS) |
| GET | /asientos | Registro criptográfico: asientos firmados | Vistas (PostgREST, RLS) |
| GET | /anclas | Anclas Merkle selladas y su publicación | Vistas (PostgREST, RLS) |
| GET | /asiento_anclas | Pruebas de inclusión de cada asiento en su ancla | Vistas (PostgREST, RLS) |
| GET | /llavero | Llaves públicas (ML-DSA-65, Ed25519, SLH-DSA, ML-KEM) | Vistas (PostgREST, RLS) |
| GET | /fuentes | Catálogo de fuentes oficiales con estado de conexión | Vistas (PostgREST, RLS) |
| GET | /clases | Clases de la ontología | Vistas (PostgREST, RLS) |
| GET | /propiedades_objeto | Relaciones de la ontología | Vistas (PostgREST, RLS) |
| GET | /propiedades_dato | Propiedades de dato | Vistas (PostgREST, RLS) |
| GET | /indicadores | Catálogo de indicadores | Vistas (PostgREST, RLS) |
| GET | /reglas | Reglas de banderas rojas | Vistas (PostgREST, RLS) |
| GET | /normas | Marco normativo | Vistas (PostgREST, RLS) |
| GET | /politicas | Políticas de acceso (ODRL) | Vistas (PostgREST, RLS) |
| GET | /vocabularios | Vocabularios reutilizados | Vistas (PostgREST, RLS) |
| GET | /modulos | Módulos de la ontología | Vistas (PostgREST, RLS) |
| GET | /entidades_observadas | Entidades con seguimiento de contratación | Vistas (PostgREST, RLS) |
| GET | /verificar | Verificación pública del registro (sin apikey) | Funciones de borde |
Límites y compromiso
Tier gratuito de Supabase: cuota compartida de peticiones y 500 MB de base; suficiente para el MVP, con ruta de escalado sin cambios de código (véase arquitectura). Formatos: JSON (PostgREST), CSV con Accept: text/csv, y la ontología en OWL/Turtle, SHACL y JSON-LD en /ontologia.