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

Exemplo Completo

1. Configurar Variáveis de Ambiente

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",
      "cache_ttl_in_days": 7
    }
  }'

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

Configure cache_ttl_in_days para evitar consultas desnecessárias: Esse campo define por quantos dias um resultado armazenado em cache será considerado válido antes de uma nova consulta ser feita.
{
  "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.