Documentación para desarrolladores

El motor jurídico
de México,
en tu sistema.

316 leyes federales vigentes, 36,000+ artículos indexados y el mismo motor RAG+LLM del chat, disponible vía REST API. Intégralo en tu despacho, app o automatización.

316+ Leyes federales
36K Artículos indexados
500/día Solicitudes plan VIP
lex-mex-api · bash
$

Referencia completa

Endpoint principal

Un solo endpoint para consultas jurídicas en lenguaje natural. Reutiliza el mismo motor del chat — misma calidad, mismas fuentes.

POST https://lex-mex.xyz/api/v1/consulta

Consulta jurídica

Envía una pregunta en lenguaje natural y recibe una respuesta legal fundamentada en artículos reales de la ley mexicana. Cada llamada es independiente — sin memoria entre requests.

Headers requeridos

X-API-Key REQUERIDO Tu API key con prefijo lmx_live_. Obtenla en tu dashboard.
Content-Type REQUERIDO application/json

Body (JSON)

pregunta string REQUERIDO Consulta en lenguaje natural. Mín. 1 char, máx. 2,000 chars.

Respuesta exitosa (200)

respuesta string campo Texto de la respuesta legal generada.
fuentes array campo Artículos y leyes citados. Cada elemento tiene ley, articulo, texto.
confianza string campo "alta" | "media" | "baja" — nivel de certeza jurídica.
version string campo Versión del motor LEX-MEX que generó la respuesta.
curl -X POST https://lex-mex.xyz/api/v1/consulta \
  -H "X-API-Key: lmx_live_TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "pregunta": "¿Cuántos días de vacaciones me
                 corresponden según la LFT?"
  }'

# Respuesta
{
  "respuesta": "El artículo 76 de la Ley Federal del
    Trabajo establece que los trabajadores que
    tengan más de un año de servicios disfrutarán
    de un período anual de vacaciones pagadas...",
  "fuentes": [
    {
      "ley":      "Ley Federal del Trabajo",
      "articulo": "76"
    }
  ],
  "confianza": "alta",
  "version":   "15.0"
}
import requests

API_KEY  = "lmx_live_TU_API_KEY"
BASE_URL = "https://lex-mex.xyz/api/v1"

def consultar_ley(pregunta: str) -> dict:
    """Consulta el motor jurídico de LexMex."""
    resp = requests.post(
        f"{BASE_URL}/consulta",
        headers={
            "X-API-Key":      API_KEY,
            "Content-Type":  "application/json",
        },
        json={"pregunta": pregunta},
        timeout=30,
    )
    resp.raise_for_status()
    return resp.json()


# Uso básico
resultado = consultar_ley(
    "¿Qué dice el artículo 123 constitucional?"
)
print(resultado["respuesta"])
print(f"Confianza: {resultado['confianza']}")
print(f"Fuentes: {len(resultado['fuentes'])} artículos")


# Manejo de errores de producción
try:
    r = consultar_ley("¿Cuánto es el salario mínimo?")
except requests.HTTPError as e:
    if e.response.status_code == 429:
        print("Límite diario alcanzado")
    elif e.response.status_code == 401:
        print("API key inválida")
    else:
        raise
// ESM / Node.js 18+ / Browser
const API_KEY  = "lmx_live_TU_API_KEY";
const BASE_URL = "https://lex-mex.xyz/api/v1";

async function consultarLey(pregunta) {
  const res = await fetch(`${BASE_URL}/consulta`, {
    method:  "POST",
    headers: {
      "X-API-Key":     API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ pregunta }),
  });

  if (!res.ok) {
    const err = await res.json();
    throw new Error(err.detail || `HTTP ${res.status}`);
  }
  return res.json();
}

// Ejemplo: integración en sistema de expedientes
const caso = {
  tipo:    "despido injustificado",
  sector:  "privado",
  antiguedad: 3, // años
};

const resultado = await consultarLey(
  `¿Qué indemnización corresponde por ${caso.tipo}
   con ${caso.antiguedad} años de antigüedad?`
);

console.log(resultado.respuesta);
// → "El artículo 48 de la LFT establece..."

console.log(`Fuentes: ${resultado.fuentes.length} artículos`);
console.log(`Confianza: ${resultado.confianza}`);
// Zapier: Code by Zapier (JavaScript)
// Usa inputData para recibir datos de pasos anteriores

const pregunta = inputData.pregunta
  || "¿Cuántos días de liquidación corresponden?";

const resp = await fetch("https://lex-mex.xyz/api/v1/consulta", {
  method:  "POST",
  headers: {
    "X-API-Key":     "lmx_live_TU_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ pregunta }),
});

const data = await resp.json();

// Retorna al siguiente paso del Zap
output = {
  respuesta:     data.respuesta,
  num_fuentes:   data.fuentes?.length || 0,
  primera_ley:   data.fuentes?.[0]?.ley || "",
  primer_art:    data.fuentes?.[0]?.articulo || "",
  confianza:     data.confianza,
};

/* ─ Make (Integromat): HTTP Module ─────────────
  URL:     POST https://lex-mex.xyz/api/v1/consulta
  Headers: X-API-Key → tu key
           Content-Type → application/json
  Body:    { "pregunta": "{{1.pregunta}}" }
  Parse:   respuesta, fuentes[], confianza
───────────────────────────────────────────── */
200 OK Ejemplo de respuesta real
{
  "respuesta": "De acuerdo con el artículo 76 de la
    Ley Federal del Trabajo, los trabajadores con
    más de un año de servicios tienen derecho a un
    período de vacaciones que no podrá ser inferior
    a doce días laborables, aumentando en dos días
    por cada año subsecuente de servicios...",

  "fuentes": [
    {
      "ley":      "Ley Federal del Trabajo",
      "articulo": "76",
      "texto":    "Los trabajadores que tengan..."
    },
    {
      "ley":      "Ley Federal del Trabajo",
      "articulo": "78",
      "texto":    "De cada seis días de vacaciones..."
    }
  ],

  "confianza": "alta",
  "version":   "15.0"
}

Aplicaciones reales

¿Qué puedes construir?

Desde automatizaciones sin código hasta apps móviles completas. La API es el mismo motor que usa el chat — la diferencia es quién controla la interfaz.

⚖️

CRM Legal con fundamentos automáticos

Cada expediente que se abre en tu sistema muestra automáticamente los artículos relevantes. El abogado recibe el fundamento legal antes de abrir la boca en la audiencia.

Despachos
🤖

Chatbot de WhatsApp para clientes

Conecta LexMex con Twilio o la API de WhatsApp Business. Tus clientes hacen preguntas legales básicas por WhatsApp y el bot responde con artículos reales — 24/7, sin que intervenga un abogado.

Fintechs · RRHH
📊

Hoja de cálculo legal en Google Sheets

El área de RRHH llena una columna con situaciones laborales. Un script de Apps Script llama a LexMex y llena la columna de al lado con el fundamento legal. Sin abrir ninguna app adicional.

Zapier · Make · n8n
🏗️

Widget legal embebido en tu sitio web

Un bufete puede ofrecer en su sitio un chatbot que responde preguntas básicas de potenciales clientes — generando leads y demostrando expertise. Todo encima del motor de LexMex.

Agencias · Bufetes
🔍

Compliance automatizado en contratos

Cuando se genera un contrato en tu sistema, una llamada automática verifica si las cláusulas son compatibles con la ley mexicana vigente. Alerta si hay conflictos antes de firmar.

Legal Ops · Enterprise
📱

App móvil con motor jurídico propio

Construye tu propia app en React Native, Flutter o Swift sin preocuparte por la base de conocimiento legal. LexMex es el backend jurídico — tú controlas el frontend y la experiencia de usuario.

Startups · Developers

Rate limits y cuotas

Límites del plan VIP

Los límites aplican por API key, de forma independiente al uso del chat web. El contador se reinicia cada día a medianoche (hora Ciudad de México).

500 solicitudes / día Límite diario por API key en plan VIP
2K chars max / pregunta Longitud máxima del campo pregunta
keys simultáneas Puedes generar y revocar múltiples API keys desde el dashboard

¿Necesitas más de 500 solicitudes/día? Contáctanos para un plan Enterprise →

Manejo de errores

Códigos de respuesta

Todos los errores devuelven JSON con el campo detail que describe el problema. Diseña tu integración para manejar estos casos.

Status Código Causa Solución
200 OK Consulta exitosa
401 Unauthorized Header X-API-Key ausente o key inválida/revocada Verifica tu key en el dashboard. Si la revocaste, genera una nueva.
403 Forbidden El plan de tu cuenta no incluye acceso API Activa el plan VIP desde tu dashboard.
422 Validation Error El campo pregunta está vacío o supera 2,000 chars Valida el body antes de enviar. Recorta preguntas largas.
429 Too Many Requests Alcanzaste el límite de 500 solicitudes/día Espera a la medianoche del día siguiente. Implementa retry con backoff exponencial.
500 Internal Server Error Error interno del motor LLM o de la base de datos Reintenta la solicitud con backoff. Si persiste, repórtalo.

Patrón recomendado: retry con backoff exponencial (Python)

import time, requests

def consultar_con_retry(pregunta, max_intentos=3):
    for intento in range(max_intentos):
        try:
            return consultar_ley(pregunta)
        except requests.HTTPError as e:
            if e.response.status_code in (429, 500) and intento < max_intentos - 1:
                espera = 2 ** intento  # 1s, 2s, 4s
                time.sleep(espera)
                continue
            raise

Lista en 2 minutos.

Activa tu plan VIP → genera tu API key en el dashboard → haz tu primera llamada.
Sin formularios. Sin aprobación manual.

⚡ Obtener API key gratis Hablar con el equipo →
✓ Copiado al portapapeles