{"openapi":"3.1.0","info":{"title":"Léxora API","version":"1.0.0","description":"API para empresas: monitoreo de expedientes, gestión de alertas, cédulas profesionales y antecedentes legales. Autenticación con llave `Authorization: Bearer lx_…` creada en Mi cuenta > API. Las llaves de producción con los alcances `monitoreo` y `cedulas` requieren aprobación previa; las llaves de pruebas (`lxs_…`) responden de inmediato pero solo leen. Los acuerdos mostrados no son notificaciones judiciales.","contact":{"email":"santiago@lexoramexico.com"}},"servers":[{"url":"https://beta.lexoramexico.com"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","enum":["unauthorized","key_revoked","scope_missing","approval_pending","rate_limited","invalid_input","not_found","plan_limit","insufficient_credits","sandbox_read_only"]}},"required":["error"]},"Acuerdo":{"type":"object","properties":{"id":{"type":"string"},"publishedAt":{"type":"string","format":"date"},"agreementDate":{"type":["string","null"],"format":"date"},"scheduledAt":{"type":["string","null"],"format":"date-time"},"kind":{"type":"string","description":"acuerdo | fe_erratas | sesion | audiencia"},"title":{"type":"string"},"summary":{"type":["string","null"]},"officialUrl":{"type":"string","format":"uri"}}},"SeguirExpediente":{"type":"object","properties":{"juzgado":{"type":"string","minLength":1,"maxLength":20},"expediente":{"type":"string","minLength":3,"maxLength":12},"alias":{"type":"string","maxLength":120}},"required":["juzgado","expediente"]},"Destinatario":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}},"required":["email"]},"Nota":{"type":"object","properties":{"texto":{"type":"string","minLength":1,"maxLength":2000}},"required":["texto"]},"BusquedaAntecedentes":{"type":"object","properties":{"purpose":{"type":"string","enum":["litigio","debida_diligencia","cumplimiento","contratacion","propio","otro"]},"purposeDetail":{"type":"string","maxLength":300},"personType":{"type":"string","enum":["FISICA","MORAL"]},"query":{"type":"string","minLength":5,"maxLength":150},"curp":{"anyOf":[{"type":"string"},{"type":"string","const":""}]},"rfc":{"anyOf":[{"type":"string"},{"type":"string","const":""}]},"scope":{"type":"string","enum":["STATE","NATIONAL"]},"stateCode":{"type":"string","pattern":"^[A-Z]{3}$"},"withDetail":{"type":"boolean"},"yearsBack":{"type":"integer","minimum":1,"maximum":30}},"required":["purpose","personType","query","scope"]},"NuevoWebhook":{"type":"object","properties":{"url":{"type":"string","maxLength":500,"format":"uri"},"eventTypes":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["acuerdo.nuevo","antecedentes.completado","laboral.completado"]}},"description":{"type":"string","maxLength":200}},"required":["url","eventTypes"]}}},"tags":[{"name":"monitoreo","description":"Expedientes seguidos y acuerdos (requiere aprobación)."},{"name":"alertas","description":"Destinatarios, notas y webhooks de las alertas."},{"name":"cedulas","description":"Cédulas profesionales (requiere aprobación)."},{"name":"antecedentes","description":"Antecedentes legales, SAT, CURP y créditos."}],"paths":{"/api/v1/catalogos/juzgados":{"get":{"summary":"Catálogo de juzgados","description":"Alcance requerido: `monitoreo`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"juzgados":{"type":"array","items":{"type":"object"}},"total":{"type":"integer"}}}}}}},"parameters":[{"name":"estado","in":"query","schema":{"type":"string","example":"JAL"}},{"name":"fuente","in":"query","schema":{"type":"string","example":"cjj_extractos"}}],"tags":["monitoreo"]}},"/api/v1/expedientes":{"get":{"summary":"Expedientes seguidos","description":"Alcance requerido: `monitoreo`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"expedientes":{"type":"array","items":{"type":"object"}},"siguiente":{"type":["string","null"]}}}}}}},"parameters":[{"name":"limite","in":"query","schema":{"type":"integer","maximum":500}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"tags":["monitoreo"]},"post":{"summary":"Seguir un expediente","description":"Alcance requerido: `monitoreo`.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"creado":{"type":"boolean"},"acuerdosExistentes":{"type":"integer"},"ultimaPublicacion":{"type":["string","null"]}}}}}},"403":{"description":"plan_limit o sandbox_read_only"},"404":{"description":"Juzgado desconocido"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeguirExpediente"}}}},"tags":["monitoreo"]}},"/api/v1/expedientes/{id}":{"get":{"summary":"Detalle de un expediente seguido","description":"Alcance requerido: `monitoreo`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"No es tuyo o no existe"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["monitoreo"]},"delete":{"summary":"Dejar de seguir (va a la papelera 30 días)","description":"Alcance requerido: `monitoreo`.","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Hecho"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["monitoreo"]}},"/api/v1/expedientes/{id}/acuerdos":{"get":{"summary":"Acuerdos de un expediente seguido, por rango de fechas","description":"Alcance requerido: `monitoreo`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"expediente":{"type":"string"},"acuerdos":{"type":"array","items":{"$ref":"#/components/schemas/Acuerdo"}}}}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"desde","in":"query","schema":{"type":"string","format":"date"}},{"name":"hasta","in":"query","schema":{"type":"string","format":"date"}}],"tags":["monitoreo"]}},"/api/v1/acuerdos":{"get":{"summary":"Lista del día de un juzgado, o un expediente sin seguirlo","description":"Alcance requerido: `monitoreo`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"acuerdos":{"type":"array","items":{"$ref":"#/components/schemas/Acuerdo"}},"truncado":{"type":"boolean"}}}}}}},"parameters":[{"name":"juzgado","in":"query","required":true,"schema":{"type":"string","example":"OM09"}},{"name":"fecha","in":"query","schema":{"type":"string","format":"date"}},{"name":"expediente","in":"query","schema":{"type":"string","example":"123/2026"}}],"tags":["monitoreo"]}},"/api/v1/alertas/{id}/destinatarios":{"get":{"summary":"Correos que reciben las alertas del expediente","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["alertas"]},"post":{"summary":"Agregar destinatario (máximo 10)","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Destinatario"}}}},"tags":["alertas"]},"delete":{"summary":"Quitar destinatario","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Hecho"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"email","in":"query","required":true,"schema":{"type":"string","format":"email"}}],"tags":["alertas"]}},"/api/v1/alertas/{id}/notas":{"get":{"summary":"Notas privadas del expediente","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["alertas"]},"post":{"summary":"Agregar nota","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Creada","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Nota"}}}},"tags":["alertas"]}},"/api/v1/webhooks":{"get":{"summary":"Webhooks de la llave","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["alertas"]},"post":{"summary":"Crear webhook (devuelve el secreto una sola vez)","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Creado","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"secreto":{"type":"string"}}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NuevoWebhook"}}}},"tags":["alertas"]}},"/api/v1/webhooks/{id}":{"get":{"summary":"Últimas entregas del webhook","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["alertas"]},"delete":{"summary":"Borrar webhook","description":"Alcance requerido: `alertas`.","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Hecho"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["alertas"]}},"/api/v1/cedulas":{"get":{"summary":"Buscar cédulas por número o nombre","description":"Alcance requerido: `cedulas`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"cedulas":{"type":"array","items":{"type":"object"}},"fuente":{"type":"string"}}}}}}},"parameters":[{"name":"numero","in":"query","schema":{"type":"string"}},{"name":"nombre","in":"query","schema":{"type":"string"}}],"tags":["cedulas"]}},"/api/v1/sat":{"get":{"summary":"Listas del SAT (69 y 69-B) por RFC o nombre","description":"Alcance requerido: `antecedentes`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"rfc","in":"query","schema":{"type":"string"}},{"name":"nombre","in":"query","schema":{"type":"string"}}],"tags":["antecedentes"]}},"/api/v1/curp/{curp}":{"get":{"summary":"Validar una CURP y consultar RENAPO cuando está conectado","description":"Alcance requerido: `antecedentes`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"curp","in":"path","required":true,"schema":{"type":"string"}}],"tags":["antecedentes"]}},"/api/v1/antecedentes":{"get":{"summary":"Búsquedas de los últimos 30 días","description":"Alcance requerido: `antecedentes`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["antecedentes"]},"post":{"summary":"Nueva búsqueda de antecedentes (gasta 1 crédito o una incluida del plan)","description":"Alcance requerido: `antecedentes`.","security":[{"bearerAuth":[]}],"responses":{"202":{"description":"Aceptada; se completa en menos de una hora","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"estatus":{"type":"string"}}}}}},"402":{"description":"insufficient_credits"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusquedaAntecedentes"}}}},"tags":["antecedentes"]}},"/api/v1/antecedentes/{id}":{"get":{"summary":"Resultado de una búsqueda","description":"Alcance requerido: `antecedentes`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["antecedentes"]}},"/api/v1/creditos":{"get":{"summary":"Saldo de créditos","description":"Alcance requerido: `antecedentes`.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["antecedentes"]}}},"x-webhooks":{"firma":"Cabecera X-Lexora-Signature: t=<unix>,v1=<hex HMAC-SHA256 del secreto sobre `<t>.<cuerpo>`>. Reintentos con espera creciente hasta 6 intentos; tras 20 fallos seguidos el webhook se pausa.","eventos":{"acuerdo.nuevo":{"data":{"expedienteId":"string","juzgado":"string","expediente":"string","acuerdo":"Acuerdo"}},"antecedentes.completado":{"data":{"id":"string","consulta":"string","expedientes":"integer","url":"string"}},"laboral.completado":{"data":{"id":"string","kind":"issste|imss","curp":"string"}}}}}