Skip to main content

Fluxo Básico

A Judit API funciona com um padrão síncrono e assíncrono:

Requisições com padrão assíncrono:

  1. Criar requisição (POST /requests) - Inicia a consulta
  2. Aguardar processamento (GET /requests) - A API busca os dados nos tribunais(Acompanhar status)
  3. Consultar resultado (GET /responses) - Obtém os dados processados

Requisições com padrão síncrono:

  1. Criar requisição (POST /lawsuits) - Inicia a consulta e já entrega a resposta

Pré-requisitos

Ambientes e URLs Base (Base URLs)

A Judit API opera com uma arquitetura dividida por contextos para garantir melhor performance e organização. Antes de configurar suas variáveis de ambiente, identifique a Base URL correspondente ao módulo que você deseja integrar:
Base URLMódulo / ContextoOperações Suportadas
https://requests.prod.judit.ioConsultas AssíncronasConsulta processual, Consulta histórica, Mandados de prisão e Execução penal (fluxos de request e response).
https://tracking.prod.judit.ioMonitoramentosCriar, consultar, atualizar, pausar, deletar, reativar e buscar histórico de monitoramentos processuais.
https://lawsuits.production.judit.ioConsultas SíncronasConsulta ao Datalake (Hot storage), Quantidade de processos, Consulta histórica agrupada, Busca de anexos de bucket e Dados cadastrais.
https://crawler.prod.judit.ioCrawler & InfraGerenciamento do Cofre de Credenciais.

Exemplo Completo

1. Configurar Variáveis de Ambiente

Nota: No exemplo abaixo, utilizaremos a URL de Consultas Assíncronas, mas lembre-se de substituí-la pela URL adequada ao seu caso de uso, conforme a tabela acima.
export JUDIT_API_KEY="sua-api-key-aqui"
export JUDIT_BASE_URL="https://requests.prod.judit.io"

2. Criar uma Requisição

curl -X POST "$JUDIT_BASE_URL/requests" \
  -H "api-key: $JUDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "search": {
      "search_type": "cpf",
      "search_key": "999.999.999-99"
    }
  }'

3. Verificar Status da Requisição

curl -X GET "$JUDIT_BASE_URL/requests/$REQUEST_ID" \
  -H "api-key: $JUDIT_API_KEY"

4. Obter Resultados

Quando o status for completed, consulte os resultados:
curl -X GET "$JUDIT_BASE_URL/responses?page=1" \
  -H "api-key: $JUDIT_API_KEY"

Tipos de Consulta Disponíveis

{
  "search": {
    "search_type": "cpf",
    "search_key": "999.999.999-99"
  }
}

Tipos de Resposta

  • parties: Apenas informações das partes
  • attachments: Lista de anexos disponíveis
  • step: Movimentações processuais

Filtros Avançados

Para consultas mais específicas por documento, é possivel utilizar filtros:
{
  "search": {
    "search_type": "cpf",
    "search_key": "999.999.999-99",
    "search_params": {
      "filter": {
        "side":"passive",
        "amount_gte": 10000,
        "distribution_date_gte": "2024-10-10T00:00:00.000Z",
        "tribunals": {
          "keys": ["TJSP", "TJRJ"],
          "not_equal": false
        }
      }
    }
  }
}

Boas Práticas

1. Use Cache Inteligente

💡 Boa Prática para Consultas Assíncronas: Se você está realizando requisições assíncronas (via https://requests.prod.judit.io), a utilização do parâmetro de cache é altamente recomendada. Isso acelera drasticamente o tempo de resposta do Webhook e otimiza o consumo da API.
Configure o parâmetro cache_ttl_in_days no corpo do seu request para evitar buscas redundantes nos tribunais. Esse campo define por exatos quantos dias um resultado já armazenado na base da Judit será considerado válido antes de forçar uma nova extração.
{
  "cache_ttl_in_days": 7  // Usar cache por até 7 dias
}

2. Implemente Retry com Backoff

  function sleep(ms) {
    return new Promise((resolve) => setTimeout(resolve, ms));
  } // Função setTimeout auxiliar de pausa baseada em setTimeout (nativa do JavaScript)

  async function retryWithBackoff(func, maxRetries = 3) {
    for (let attempt = 0; attempt < maxRetries; attempt++) {
      try {
        return await func();
      } catch (error) {
        if (attempt === maxRetries - 1) {
          throw error; // Última tentativa falhou, propaga o erro
        }

        // Backoff exponencial + jitter aleatório
        const waitTime = (2 ** attempt) * 1000 + Math.random() * 1000;
        console.log(
          `Tentativa ${attempt + 1} falhou. Aguardando ${waitTime.toFixed(0)}ms antes de tentar novamente...`
        );
        await sleep(waitTime);
      }
    }
  }

Próximos Passos

  • Autenticação: Configure a autenticação adequada
  • Endpoints: Explore todos os endpoints disponíveis
  • Suporte: Entre em contato com nosso suporte técnico para mais informações.
Dica: Para desenvolvimento, use o Postman Collection com exemplos prontos da Judit API.