Pular para o conteúdo principal
Novo CNPJ (IN 2229/24)A Judit já aceita o novo formato de CNPJ alfanumérico em conformidade com a Instrução Normativa RFB nº 2229/2024.
  • Zero esforço: nenhuma alteração é necessária na sua integração.
  • Ambiente de teste: utilize o documento A1B2C3D4/E5F6-68 para validar o fluxo e receber um processo fictício de resposta.
A Consulta Agrupada (Synthetic) entrega, em uma única chamada síncrona, um resumo estatístico de todos os processos vinculados a um documento, agrupado por classe, assunto, área, tribunal, justiça, fase, estado, instância, lado da parte e tipo de pessoa. Use quando o cliente precisa de visão geral, não da lista completa.
🤖 Endpoint: POST https://lawsuits.production.judit.io/lawsuits/synthetic. Resposta síncrona com contagens agregadas. Para listar os processos individualmente, use POST /lawsuits (Hot Storage). Para apenas saber se existem processos (true/false) ou contar, use POST /lawsuits/count.

Quando usar

Dashboards executivos

Painéis de exposição judicial: contagens por tribunal, fase, instância, área — sem precisar listar cada processo.

Análise de risco rápida

Em onboarding ou crédito: descubra em ms o perfil judicial de uma contraparte (cível vs. trabalhista vs. tributário).

Pré-segmentação

Antes de decidir entre consulta detalhada ou amostral, veja o tamanho e a distribuição do conjunto.

Reports periódicos

Relatórios semanais/mensais agregados por carteira sem trafegar grandes volumes de processos.

Passo 1: Criar a Consulta Agrupada (POST)

POST https://lawsuits.production.judit.io/lawsuits/synthetic

Exemplos por tipo de documento

{
    "search": {
        "search_type": "cpf",
        "search_key": "999.999.999-99"
    }
}
{
    "search": {
        "search_type": "cnpj",
        "search_key": "99.999.999/9999-99"
    }
}
{
    "search": {
        "search_type": "oab",
        "search_key": "99999RJ"
    }
}
{
    "search": {
        "search_type": "name",
        "search_key": "João Silva"
    }
}

Parâmetros do Payload

ParâmetroTipoObrigatórioDescrição
search.search_typestringSim"cpf", "cnpj", "oab" ou "name".
search.search_keystringSimValor a ser buscado.
search.search_params.filterobjectNãoFiltros estruturais — mesma estrutura da consulta histórica.

Exemplos com filtros

{
    "search": {
        "search_type": "cnpj",
        "search_key": "00.000.000/0001-00",
        "search_params": {
            "filter": {
                "side": "Passive",
                "tribunals": { "keys": ["TJSP","TRT2"], "not_equal": false },
                "amount_gte": 50000
            }
        }
    }
}
{
    "search": {
        "search_type": "cpf",
        "search_key": "999.999.999-99",
        "search_params": {
            "filter": {
                "distribution_date_gte": "2024-01-01T00:00:00.000Z"
            }
        }
    }
}
{
    "search": {
        "search_type": "cnpj",
        "search_key": "00.000.000/0001-00",
        "search_params": {
            "filter": {
                "tribunals": { "keys": ["TJSP"], "not_equal": true }
            }
        }
    }
}

Exemplo de Requisição (POST)

curl --request POST \
  --url 'https://lawsuits.production.judit.io/lawsuits/synthetic' \
  --header 'api-key: '"$JUDIT_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "search": {
      "search_type": "cpf",
      "search_key": "999.999.999-99"
    }
  }'
import os, requests

resp = requests.post(
    "https://lawsuits.production.judit.io/lawsuits/synthetic",
    headers={
        "api-key": os.environ["JUDIT_API_KEY"],
        "Content-Type": "application/json",
    },
    json={"search": {"search_type": "cpf", "search_key": "999.999.999-99"}},
    timeout=15,
)
resp.raise_for_status()
print(resp.json())
const res = await fetch(
  "https://lawsuits.production.judit.io/lawsuits/synthetic",
  {
    method: "POST",
    headers: {
      "api-key": process.env.JUDIT_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      search: { search_type: "cpf", search_key: "999.999.999-99" },
    }),
  }
);
console.log(await res.json());
package main

import (
    "bytes"
    "encoding/json"
    "io"
    "net/http"
    "os"
)

func main() {
    body, _ := json.Marshal(map[string]any{
        "search": map[string]string{
            "search_type": "cpf",
            "search_key":  "999.999.999-99",
        },
    })
    req, _ := http.NewRequest("POST",
        "https://lawsuits.production.judit.io/lawsuits/synthetic",
        bytes.NewReader(body))
    req.Header.Set("api-key", os.Getenv("JUDIT_API_KEY"))
    req.Header.Set("Content-Type", "application/json")
    res, _ := http.DefaultClient.Do(req)
    defer res.Body.Close()
    out, _ := io.ReadAll(res.Body)
    println(string(out))
}

Passo 2: Ler a Resposta

A resposta é síncrona (HTTP 200) e agrega o universo encontrado em vários eixos. lawsuits_count é o total geral; cada eixo é um array { count, value }.
EixoO que agrupa
classificationsClasses processuais (ex.: PROCEDIMENTO COMUM CÍVEL).
subjectsAssuntos processuais (ex.: ACIDENTE DE TRÂNSITO).
areasÁreas do direito (ex.: DIREITO CIVIL).
tribunalsSiglas dos tribunais (ex.: TJSP, TRT1).
justicesJustiça (Estadual, Federal, etc.).
phasesFase processual atual.
statesUF onde tramita.
instancesInstância (1 ou 2).
sidesPolo da parte buscada (PASSIVE, ACTIVE, INTERESTED).
person_typesTipo da parte (REQUERENTE, AUTOR, RÉU, etc.).
lawsuits_countTotal geral de processos do universo.

Exemplo de resposta

{
    "classifications": [
        { "count": 1, "value": "PROCEDIMENTO COMUM CÍVEL" },
        { "count": 1, "value": "HOMOLOGAÇÃO DE TRANSAÇÃO EXTRAJUDICIAL" },
        { "count": 1, "value": "PROCEDIMENTO DO JUIZADO ESPECIAL CÍVEL" }
    ],
    "subjects": [
        { "count": 1, "value": "ÔNUS DA PROVA" },
        { "count": 1, "value": "ACIDENTE DE TRÂNSITO" },
        { "count": 1, "value": "COISAS" }
    ],
    "areas": [
        { "count": 4, "value": "DIREITO CIVIL" },
        { "count": 2, "value": "DIREITO ADMINISTRATIVO E OUTRAS MATÉRIAS DE DIREITO PÚBLICO" }
    ],
    "tribunals": [
        { "count": 1, "value": "TRF2" },
        { "count": 8, "value": "TRT1" },
        { "count": 1, "valu
e": "TRT1" }
    ],
    "phases": [
        { "count": 11, "value": "INICIAL" },
        { "count": 9, "value": "ARQUIVADO" }
    ],
    "lawsuits_count": 27
}

Próximos passos