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.brTodas as rotas sao prefixadas com /v1.
Formato de Resposta
application/jsonTodas 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.
| Plano | Limite / Minuto | Cota Mensal |
|---|---|---|
| Basic | 100 req/min | 50.000 |
| Pro | 500 req/min | 500.000 |
| Enterprise | 2.000 req/min | Ilimitado |
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
/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.OOOOExemplo 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" }
}/v1/processos/searchBusca 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
}
}/v1/monitoramentosCria um monitoramento para receber alertas automaticos quando houver movimentacao no processo.
Request Body
processo_idstringobrigatorio— UUID do processo a monitorarwebhook_urlstring— URL HTTPS para receber webhooksemailboolean— 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"
}| Codigo | Status | Descricao |
|---|---|---|
400 | Bad Request | Requisicao invalida — parametros incorretos ou ausentes. |
401 | Unauthorized | API Key ausente ou invalida no header X-API-Key. |
403 | Forbidden | A chave nao tem permissao para acessar este recurso ou plano insuficiente. |
404 | Not Found | Recurso nao encontrado. Verifique o numero CNJ ou ID informado. |
429 | Too Many Requests | Rate limit excedido. Aguarde o reset ou atualize seu plano. |
500 | Internal Server Error | Erro interno do servidor. Tente novamente em alguns instantes. |
SDKs e Exemplos
Exemplos de integracao nas principais linguagens de programacao.
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();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()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)