ContextLexMX

Guía

Consulta el índice jurídico por API

La API REST /v1 devuelve disposiciones, versiones y procedencia desde el acervo observado. Es de sólo lectura, requiere HTTPS y una clave API de tu organización con el permiso legislation:read.

  1. Entra y elige tu organización.
  2. Abre «Claves API», crea una con permiso de lectura y guárdala una sola vez.
  3. Envía la clave en el encabezado X-API-Key en cada solicitud.
  4. Una respuesta sin resultados no significa que una norma no exista: sólo que no está cubierta.

Autenticación

Todas las consultas a /v1 usan la clave en el encabezado X-API-Key. No aceptamos tokens en la URL ni claves compartidas. Si la clave falta, es inválida o está vencida, la API responde 401 con el reto WWW-Authenticate: ApiKey header="X-API-Key".

HTTP · encabezadoX-API-Key: TU_CLAVE

Endpoints de consulta

MétodoRutaDescripción
GET/v1/searchBúsqueda léxica de disposiciones; por defecto consulta el acervo observado.
GET/v1/instruments/resolveResuelve un instrumento por clave, slug, título o alias.
GET/v1/changesEventos jurídicos observados.
GET/v1/facetsFacetas normativas por función.
POST/v1/coverageCompuertas de cobertura «answerability».
POST/v1/context-packPack de contexto por utilidad de pasaje.
POST/v1/citations/validateVerifica que una cita o postura exista en el acervo.
POST/v1/routeRouter de intención de consulta.
POST/v1/judgeJuicio tipado de una cláusula contra una provisión del corpus (banda experimental).

Acervo observado y fechas

/v1/search usa status=observed por defecto: sin as_of busca también en versiones observadas anteriores, no sólo en la observación más reciente. El parámetro limit sigue acotando los resultados. Consulta expression_id, las fechas y la procedencia de cada resultado; observado no significa vigente.

status=vigente es un filtro estricto opt-in: sin as_of usa la fecha de hoy y puede devolver un resultado vacío cuando no hay fechas efectivas registradas. Con as_of, la búsqueda exige una ventana efectiva que cubra esa fecha, sin recurrir al texto actual si falta cobertura (fail-closed).

/v1/context-pack recupera del acervo observado (excluye observaciones sustituidas y claves retiradas del catálogo) y no ofrece los filtros temporales de /v1/search. Cada snippet incluye en provenance la identidad de su fuente: instrument_id, expression_id, version, canonical_sha256 y fechas conocidas (con raw_sha256 e indexed_at cuando hay manifestación; campos desconocidos se omiten). Una misma stable_key puede corresponder a más de una expresión; el score mide utilidad y no vigencia, el snippet es un recorte y no el texto íntegro, y los identificadores no certifican validez jurídica ni aseguran actualidad.

Referencias de provisión

GET /v1/instruments/{id}/provisions/{stable_key} y POST /v1/citations/validate resuelven la clave estable completa (por ejemplo book:1/title:1/article:22) o una referencia simple (article:22) cuando es única dentro de la expresión consultada. Si hay ambigüedad, la API responde 409 con las claves candidatas: nunca adivina. Esta regla no se aplica a /v1/judge, cuyo provision_ref se describe abajo.

Ejemplos con curl

Buscar disposicionescurl -sS "https://contextlexmx.asteroitt.com/v1/search?q=datos%20personales" \
  -H "X-API-Key: TU_CLAVE"
Resolver un instrumentocurl -sS "https://contextlexmx.asteroitt.com/v1/instruments/resolve?q=C%C3%B3digo%20Civil%20Federal" \
  -H "X-API-Key: TU_CLAVE"
Validar una citacurl -sS -X POST "https://contextlexmx.asteroitt.com/v1/citations/validate" \
  -H "X-API-Key: TU_CLAVE" -H "Content-Type: application/json" \
  -d '{"instrument": "mx-federal-ccf", "provision": "article:22"}'

Juzgar una cláusula (experimental)

POST /v1/judge compara una cláusula tuya contra una disposición del acervo. Sólo acepta la referencia de la provisión (provision_ref: la provision_key única global o una clave estable única entre los instrumentos servidos); el texto se resuelve contra el corpus y nunca se toma del cliente, para que la cita sea verificable. Devuelve verdict (contradiction, no_contradiction o needs_context), confidence, band, la citation (instrumento, provisión, versión) y una rationale ensamblada por código.

No es consejo legal ni afirma vigencia. La band (auto, review, discard) y sus umbrales son experimentales: derivan de un PoC de 14 parejas y sólo orientan la revisión humana. Una provision_ref inexistente responde 404; sin proveedor de juicios, 503 honesto.

Juzgar una cláusulacurl -sS -X POST "https://contextlexmx.asteroitt.com/v1/judge" \
  -H "X-API-Key: TU_CLAVE" -H "Content-Type: application/json" \
  -d '{"claim_text": "La capacidad jurídica de las personas físicas se adquiere por el nacimiento y se pierde por la muerte.",
       "provision_ref": "book:1/title:1/article:22"}'

Errores

Los errores devuelven JSON con la forma {"code": "...", "message": "..."}. Las validaciones de parámetros responden 422 con code=validation_error; un recurso no observado se reporta explícitamente y nunca se finge cobertura.

401
Clave ausente, inválida, vencida, revocada o sin el alcance requerido.
403
La organización no aplica o tu sesión no tiene el alcance requerido.
404
El recurso solicitado no está observado en el acervo.
409
Referencia de provisión ambigua: repite la consulta con la clave completa de las candidatas.
429
Se excedió el límite de consultas; respeta el encabezado Retry-After.
503
Servicio o proveedor externo no disponible; no es un resultado vacío.

Límites de uso

Cada clave consume una cubeta con recarga por minuto y ráfaga. El plan por defecto permite 60 consultas por minuto con una ráfaga de 20; tu plan de negocio puede ajustar esas cotas. Cada respuesta de /v1 autenticada con clave incluye RateLimit-Limit, RateLimit-Remaining y RateLimit-Reset; al excederse responde 429 con Retry-After.

TLS y versionado

El servicio exige HTTPS y responde con Strict-Transport-Security. La superficie pública está versionada bajo /v1; los cambios incompatibles se publicarán en una versión nueva en lugar de alterar la existente.

¿Buscas conectar un agente MCP? Consulta la guía MCP.