HomeDocsAPI Reference
REST API

API Reference

A API REST da Lex Platform fornece acesso programatico a dados judiciais de todos os 91 tribunais do Brasil. Autenticacao via API Key, respostas em JSON, versionamento semantico.

Visao Geral

Base URL

https://api.lex.com.br

Todas as rotas sao prefixadas com /v1.

Formato de Resposta

application/json

Todas as respostas sao JSON com charset UTF-8.

A API utiliza versionamento de URL (/v1/). Mudancas incompativeis resultarao em uma nova versao da API. Nos notificaremos com 90 dias de antecedencia antes de deprecar versoes anteriores.

Autenticacao

Todas as requisicoes devem incluir sua API Key no header X-API-Key. Obtenha sua chave no portal em Configuracoes > API Keys.

# Exemplo de requisicao autenticada
curl -X GET \
  -H "X-API-Key: sk_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  "https://api.lex.com.br/v1/processos/1234567-89.2024.8.26.0100"
# Buscar processos por OAB
curl -X GET \
  -H "X-API-Key: sk_live_sua_chave_aqui" \
  "https://api.lex.com.br/v1/processos/search?oab=123456/SP&tribunal=TJSP"
# Criar monitoramento de processo
curl -X POST \
  -H "X-API-Key: sk_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{"processo_id":"uuid-do-processo","webhook_url":"https://meuapp.com/webhook"}' \
  "https://api.lex.com.br/v1/monitoramentos"

Seguranca: Nunca exponha sua API Key no frontend ou repositorios publicos. Use variaveis de ambiente no servidor. Chaves comprometidas podem ser revogadas imediatamente no portal.

Rate Limits

Os limites de requisicoes sao aplicados por API Key, por minuto (janela deslizante). Quando o limite e atingido, a API retorna 429 Too Many Requests.

PlanoLimite / MinutoCota Mensal
Basic100 req/min50.000
Pro500 req/min500.000
Enterprise2.000 req/minIlimitado

Os headers de resposta informam o estado atual do seu rate limit:

# Headers de rate limit nas respostas
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 1734300000
Retry-After: 12  (presente apenas quando 429)

Endpoints Principais

GET/v1/processos/{numero_cnj}

Retorna detalhes completos de um processo pelo numero CNJ.

Parametros de Rota

numero_cnjstringobrigatorio— Numero CNJ no formato NNNNNNN-DD.AAAA.J.TR.OOOO

Exemplo de Resposta

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "numero_cnj": "1234567-89.2024.8.26.0100",
  "tribunal": "TJSP",
  "classe": "Procedimento Comum",
  "assunto": "Obrigacao de Fazer / Nao Fazer",
  "valor_causa": 50000.00,
  "status": "Em andamento",
  "data_distribuicao": "2024-01-15",
  "ultima_movimentacao": "2024-12-15T10:30:00Z",
  "partes": [...],
  "movimentacoes": [...],
  "dados_extras": { "vara": "2a Vara Civel" }
}
GET/v1/processos/search

Busca processos por multiplos criterios em todos os tribunais.

Query Parameters

qstring— Nome da parte (autor ou reu)
oabstring— Numero OAB (ex: 123456/SP)
cpfstring— CPF da parte (somente digitos)
cnpjstring— CNPJ da empresa (somente digitos)
tribunalstring— Codigo do tribunal (ex: TJSP, TJRJ, TRF1)
pageinteger— Pagina (padrao: 1)
per_pageinteger— Itens por pagina (padrao: 20, max: 100)

Exemplo de Resposta

{
  "data": [
    {
      "id": "uuid",
      "numero_cnj": "1234567-89.2024.8.26.0100",
      "tribunal": "TJSP",
      "classe": "Procedimento Comum",
      "status": "Em andamento",
      "ultima_movimentacao": "2024-12-15T10:30:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 20,
    "total": 142,
    "total_pages": 8
  }
}
POST/v1/monitoramentos

Cria um monitoramento para receber alertas automaticos quando houver movimentacao no processo.

Request Body

processo_idstringobrigatorio— UUID do processo a monitorar
webhook_urlstring— URL HTTPS para receber webhooks
emailboolean— Enviar alertas por email (padrao: true)

Exemplo de Resposta

{
  "id": "uuid",
  "processo_id": "uuid-do-processo",
  "status": "ativo",
  "webhook_url": "https://meusite.com/webhook",
  "email": true,
  "created_at": "2024-12-15T10:00:00Z"
}

Codigos de Erro

Todos os erros retornam um corpo JSON com o campo error descrevendo o problema.

# Exemplo de resposta de erro
{
  "error": "processo_nao_encontrado",
  "message": "Processo com CNJ 9999999-99.2024.8.26.0100 nao encontrado",
  "status": 404,
  "request_id": "req_a1b2c3d4e5f6"
}
CodigoStatusDescricao
400Bad RequestRequisicao invalida — parametros incorretos ou ausentes.
401UnauthorizedAPI Key ausente ou invalida no header X-API-Key.
403ForbiddenA chave nao tem permissao para acessar este recurso ou plano insuficiente.
404Not FoundRecurso nao encontrado. Verifique o numero CNJ ou ID informado.
429Too Many RequestsRate limit excedido. Aguarde o reset ou atualize seu plano.
500Internal Server ErrorErro interno do servidor. Tente novamente em alguns instantes.

SDKs e Exemplos

Exemplos de integracao nas principais linguagens de programacao.

Node.js / TypeScript
const response = await fetch(
  'https://api.lex.com.br/v1/processos/1234567-89.2024.8.26.0100',
  {
    headers: { 'X-API-Key': process.env.LEX_API_KEY }
  }
);
const processo = await response.json();
Python
import requests

response = requests.get(
    "https://api.lex.com.br/v1/processos/1234567-89.2024.8.26.0100",
    headers={"X-API-Key": os.environ["LEX_API_KEY"]}
)
processo = response.json()
Go
req, _ := http.NewRequest("GET",
    "https://api.lex.com.br/v1/processos/1234567-89.2024.8.26.0100",
    nil)
req.Header.Set("X-API-Key", os.Getenv("LEX_API_KEY"))
resp, _ := http.DefaultClient.Do(req)