Todo el grafo como JSON tipado y direccionable: un archivo por trámite, por
entidad y por norma, servidos estáticamente desde GitHub Pages. Sin autenticación, sin límites,
CORS abierto — pensado para que un agente (p. ej. elinor-proto), una simulación o
el script de otra persona consuma el Estado sin raspar HTML.
api/manifest.json | Versión, conteos, licencia, índice de endpoints. |
api/tramites/index.json | Índice liviano de los 2166 trámites (búsqueda/listado). |
api/tramites/{id}.json | Un trámite tipado, con requisitos, fundamento legal y procedencia. El permalink. |
api/entities/index.json | Índice de las 326 entidades. |
api/entities/{entity_id}.json | Una entidad con todas sus aristas (adscripción, juntas, fiscalización, trámites). |
api/norms.json | Las 671 normas citadas, con cuántos trámites cita cada una. |
api/requiere_de.json | Grafo de dependencias inferido (marcado como candidato, no canónico). |
api/pmr.json | Planes de Mejora Regulatoria vigentes + membresía por trámite. |
api/schema/tramite.schema.json | JSON Schema del documento de trámite. |
data/graph.json | El grafo institucional completo (nodos + aristas). |
Rutas relativas a
https://intelligent-institutions.github.io/estado-cr-web/.
Cada escalar tiene tipo: silencio_positivo y gratuito son
booleanos (la cláusula «or else» de un trámite es un hecho, no una palabra); el costo es
null cuando no hay dato, nunca un cero silencioso. Toda afirmación lleva su
procedencia; lo inferido va marcado aparte.
{
"id": 7011,
"nombre": "Gestión Administrativa en Registro Inmobiliario",
"institucion": {
"cnt_nombre": "Registro Nacional",
"cnt_id": "1042",
"tipo": "Órgano Adscrito a Ministerio",
"entity_id": "junta-administrativa-del-registro-nacional",
"entity_nombre": "Junta Administrativa del Registro Nacional"
},
"canal": {
"forma": "presencial",
"nivel_digitalizacion": "No disponible en línea",
"digital": "no"
},
"costo": {
"colones": 2000.0,
"dolares": null,
"tipo": "fijo",
"gratuito": false
},
"sla": {
"plazo_resolucion": "1 Mes",
"silencio_positivo": false
},
"mejora_regulatoria": {
"en_pmr": false,
"plan_id": null,
"estado": null,
"plan_url": null
},
"_links": {
"self": "api/tramites/7011.json",
"institucion": "api/entities/junta-administrativa-del-registro-nacional.json",
"html": "tramites.html#t=7011",
"fuente": "https://tramitescr.meic.go.cr/tramite/7011"
},
"requisitos": [
{
"n": 1,
"texto": "El escrito inicial de la gestión administrativa a solicitud de parte, indicará al menos lo siguiente: a) Una relación de hechos que describa y delimite la existencia de la inexactitud de que se trate."
},
"… (4 en total)"
]
}
provenance
con la fuente y la fecha de captura. El grafo requiere_de va aparte y marcado
metodo: "inferido" con nivel de confianza — nunca mezclado con campos afirmados.
Es un mapa de jure: lo declarado en el catálogo, no lo medido en ventanilla.
# el catálogo entero, liviano curl -s https://intelligent-institutions.github.io/estado-cr-web/api/tramites/index.json | jq '.[0]' # un trámite concreto (el permalink de datos) curl -s .../api/tramites/7011.json | jq '.sla, .fundamento_legal' # qué trámites operan una entidad curl -s .../api/entities/ministerio-de-hacienda-mh.json | jq '.tramites.count'
Para análisis pesado están el grafo completo y el
repositorio de datos
(CSV versionados, SQLite compilada). Y para agentes hay un servidor MCP ya cableado a
esta API (mcp/estado_cr_api_mcp.py en el repo; make mcp-api):
11 herramientas de solo lectura — buscar trámites, entidades, normas por carga, dependencias
verificadas, trayectorias — cada respuesta con su procedencia y el aviso de jure.
Instrucciones de conexión (Claude Desktop, elinor-proto) en
docs/mcp.md.
Datos: CC BY 4.0 (datos oficiales: MIDEPLAN, MEIC/CNT, SINALEVI)
· Código: MIT (scripts/, mcp/ y el generador del sitio).
Cómo citar: «Estado CR — grafo institucional versionado (Intelligent Institutions Lab, 2026). Datos: MIDEPLAN, MEIC/Catálogo Nacional de Trámites, SINALEVI.».