Confira o preço antes de iniciar a pesquisa. Envie POST /v1/orcamento/processos-tjsp-segundo-grau com os dados que deseja pesquisar. O orçamento informa o valor e a disponibilidade, sem cobrar.
Tribunal de Justiça do Estado de São Paulo (TJSP)
Processos judiciais — TJSP 2º grau
Relação de processos de um CPF/CNPJ no 2º grau do TJSP, com partes, andamento e teor dos atos.
Site oficial da fonte ↗/v1/consultas/processos-tjsp-segundo-grau
v1
Tempo típico
não medido
Preço a definir
—
Visão geral
Responde "o que existe contra ou a favor deste documento no TJSP": a relação de processos em que ele figura como parte no 2º grau, com classe, assunto, foro, vara, valor da causa, partes e a linha do tempo do feito.
Aceita os dois endereçamentos: o CPF/CNPJ da parte (devolve a relação, paginada) ou o número CNJ de um processo (devolve a ficha daquele feito, sem paginar).
Leitura direta do portal público do tribunal — não é certidão, não tem validade nem fé pública. A origem é gratuita; o preço cobre a automação, o parsing e o arquivamento.
Antes de começar
Cobrança, idempotência e leitura do resultado. Leia antes da primeira chamada.
Custa dinheiro se você ignorar 2
Não é certidão
É PESQUISA processual: leitura do portal público, sem número de validade, sem assinatura e sem fé pública. Não substitui a certidão de distribuição do tribunal, e apresentá-la como tal em processo ou due diligence é erro do integrador.
A relação por parte não existe aqui
Mande o número do processo. Um CPF/CNPJ enviado a esta API não devolve relação vazia por acaso: o acervo do 2º grau não é indexado por documento de parte. Para varrer uma parte, use a API do 1º grau e suba pelos números que ela devolver.
Vale saber antes de integrar 1
A relação é da PARTE, e o portal casa o documento como texto
O portal indexa por documento de QUALQUER parte do processo — inclusive terceiros, peritos e interessados. Um processo devolvido não significa que o alvo é autor ou réu: confira partes[].rotulo antes de atribuir posição.
A relação vem paginada de 25 em 25. Documento de parte grande passa de mil processos: pagine até total_processos, não pare na primeira página.
Requisição
Autentique com token no cabeçalho. Parâmetro obrigatório ausente é recusado com
422, antes de qualquer cobrança.
processo
string
obrigatório
Número CNJ do recurso/incidente no 2º grau. Este acervo NÃO indexa por documento da parte — a busca por CPF/CNPJ existe apenas no 1º grau.
curl -X POST https://api.oficialdata.com.br/v1/consultas/processos-tjsp-segundo-grau \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"processo": "2210819-07.2025.8.26.0000"
}'
O HTTP é sempre 200 quando a requisição chegou.
O resultado real está em code, no corpo — trate
code, nunca o status.
Resposta
Dentro de data[]:
12 campos em 2 blocos.
Campo que a origem não informou volta null —
nunca 0 nem string vazia. Trate
null como dado ausente, não como zero.
data[]
object
SUCESSO, NAO_ENCONTRADO ou INDISPONIVEL. Parte sem processo é resposta, não falha.
Quantos processos o portal contou para o documento — o total da relação, não o da página.
Quando lemos o portal, em ISO-8601.
processos[]
object
Número CNJ do processo.
Classe processual, como o tribunal a nomeia.
Assunto do feito.
Foro/comarca onde o processo tramita.
Vara e, quando o portal a publica, o juiz.
Situação do cabeçalho ("Extinto", "Cancelado", "Tramitação prioritária"). Não existe na fonte paga do mesmo acervo.
Partes com o RÓTULO que o tribunal usou (reqda, exectda, perito…), não uma lista fechada de polos.
Linha do tempo do feito, com o teor do ato embutido quando o portal o publica.
Atenção: Declaração de JANELA da origem. Presente quando a captura veio por uma porta que mostra só os últimos eventos — sem este campo, uma trilha decepada é indistinguível de uma completa.
Códigos de erro
O mesmo mapa que o motor usa em produção. Leia as colunas Estorna e Retenta antes de integrar: nem toda falha devolve o dinheiro.
| Classe | Códigos | Significa | Estorna | Retenta |
|---|---|---|---|---|
sucesso |
200 | A origem respondeu e entregou. | — | — |
nao_encontrado |
612 | A origem respondeu: nada consta para este alvo. | Não | Não |
indeterminado |
611 | A origem não conseguiu emitir pela internet. Não é irregularidade. | Não | Não |
erro_participante |
608 619 620 | A origem recusou os DADOS do pedido. | Não | Sim |
retry |
600 605 609 610 613 614 615 618 | Instabilidade momentânea da origem ou do transporte. | Sim | Sim |
fatal |
601 602 603 604 606 607 617 621 622 | Defeito de integração — nosso, não seu. | Sim | Não |
Estorno:
erro_participante é a única
classe que não devolve o dinheiro — nela a origem
respondeu recusando os dados do pedido. Corrija o alvo antes de repetir.
fatal é falha nossa e sempre estorna.
Permanentes: não retente 602 e 603. A fonte sai do ar na hora e a nossa equipe é avisada.
Limites e desempenho
Números medidos em produção. "Não medido" é falta de amostra — nenhum valor aqui é estimativa.
Tempo típico
não medido
p95
não medido
Teto por hora
—
Timeout máximo
—
De onde vem o tempo: cerca de 85% dos ~s típicos é a origem varrendo os cartórios. Dimensione o seu timeout por esse número e não conte com redução.
Sobre o teto: a origem exige sessão única por conta, então os pedidos são serializados. É limite técnico, não cota comercial: acima dele a fila cresce e paralelizar do seu lado não acelera. Para volume maior, combine antes.
Versionamento
O contrato de resposta é v1,
e a versão viaja em header.api_version
em toda resposta.
- Campo novo opcional pode entrar a qualquer momento e não muda a versão. Seu parser precisa ignorar campo que não conhece.
- Remover campo, renomear campo ou mudar tipo é versão nova, publicada em paralelo, com prazo de desligamento anunciado da anterior.
- Nunca alteramos o significado de um campo existente mantendo o nome. Se o significado muda, o nome muda junto.
Vai integrar?
Diga o volume que você espera e em quais UFs. A ordem de liberação segue a demanda.