Pular para o conteúdo principal

Busca por termos e publicações judiciais

Use GET /v1/busca/termo para descobrir menções em dados públicos quando você ainda não conhece o número CNJ. A rota é indicada para triagem por nome, empresa, tema jurídico, número de processo ou OAB e pode retornar publicações trabalhistas dos TRTs quando elas estiverem disponíveis nas fontes oficiais consultadas.

Casos de uso comuns:

  • localizar publicações que mencionem uma empresa e um tema, como banco de horas;
  • pesquisar sentenças, decisões ou acórdãos cujo conteúdo tenha sido reproduzido em uma publicação oficial;
  • descobrir o CNJ antes de consultar capa, movimentações ou documentos do processo;
  • filtrar comunicações judiciais por tribunal e período de publicação;
  • alimentar triagem, jurimetria exploratória e revisão humana.

Escopo da busca A rota pesquisa comunicações e publicações públicas disponíveis, e não um repositório integral de jurisprudência. Uma sentença ou um acórdão aparece quando a fonte oficial publica seu conteúdo, ementa ou dispositivo. A ausência de resultado não prova a inexistência do processo ou da decisão.

Endpoint​

GET https://api.buscaprocessos.app.br/v1/busca/termo

Envie a chave somente pelo backend:

x-api-key: bp_live_SUA_CHAVE
Accept: application/json

Também é aceito Authorization: Bearer bp_live_SUA_CHAVE.

Modos de consulta​

O comportamento depende da presença de um ano ou das duas datas de publicação.

ModoComo ativarCoberturaFiltro de tribunal
Índice localOmita as duas datasComunicações judiciais e diários já indexadosNão é aplicado neste modo
Período oficialEnvie ano_publicacao ou as datas inicial e finalComunicações judiciais oficiais no intervaloAceita uma sigla, como TRT1, TJSP ou TRF2
Orçamento de precatóriosUse q=precatório e envie ano_orcamentario ou o intervalo de exercíciosRegistros orçamentários oficiais, com correspondências indexadasAceita sigla, código ou parte do nome

No retorno, confira meta.search.mode:

  • LOCAL_INDEX: consulta ao conteúdo previamente indexado;
  • OFFICIAL_DATE_RANGE: consulta oficial pelo período solicitado.
  • PRECATORIO_BUDGET: consulta precatórios pelo exercício de inclusão orçamentária.

Para busca trabalhista por empresa, tema, TRT e período, prefira qo=d, envie as duas datas e informe o TRT em tribunal.

Parâmetros​

ParâmetroObrigatórioDescrição
qSimTexto, nome, empresa, tema, CNJ ou OAB pesquisado
qoSimEscopo do resultado; veja a tabela abaixo
data_publicacao_inicioCondicionalData inicial YYYY-MM-DD; deve ser enviada com a data final
data_publicacao_fimCondicionalData final YYYY-MM-DD; intervalo máximo de 366 dias
ano_publicacaoNãoAtalho para um ano completo, como 2026; não combine com as datas
ano_orcamentarioNãoExercício de inclusão orçamentária do precatório; use com q=precatório
ano_orcamentario_inicioCondicionalPrimeiro exercício de um intervalo; envie junto com o ano final
ano_orcamentario_fimCondicionalÚltimo exercício; intervalo máximo de 11 exercícios
tribunalNãoUma sigla de tribunal; aplicada na busca oficial por período
ente_devedorNãoCódigo ou parte do nome da Unidade Orçamentária executada
cnpj_ente_devedorNãoCNPJ do ente devedor, quando resolvido no cadastro oficial; 14 dígitos
uf_tribunal_expedidorNãoUF do TJ expedidor, quando informada; não é o estado do ente devedor federal
valor_minimo / valor_maximoNãoFaixa de valor em reais, usando ponto decimal
tributario / fundefNãoFiltros booleanos da classificação orçamentária disponível
incluir_correspondenciasNãoInclui vínculos auditáveis com publicações; padrão true
incluir_partesNãofalse desliga a identificação das partes na busca por precatório; padrão true
somente_processos_vinculadosNãotrue retorna somente registros orçamentários que já possuem um número CNJ confirmado
ordenarNãovalor_desc, valor_asc, ano_desc, ano_asc ou autuacao_desc
classe_processualNãoClasse exata, sem diferença de caixa ou acento; disponível com qo=t ou qo=d
deduplicar_por_processoNãotrue para retornar um item por CNJ e consolidar suas publicações
qsNãoOrdenação de diários: d para mais recentes ou a para mais antigos
pageNãoPágina, começando em 1; padrão 1
limitNãoItens por página; padrão 20 e máximo 100
utilizar_operadores_logicosNãoUse true para habilitar AND, OR, NOT e parênteses no índice local

Valores de qo​

ValorEscopo
tTodos: pessoas, instituições e publicações
pPessoas
cPessoas com identificadores estruturados disponíveis
iInstituições ou empresas
dPublicações e Diários Oficiais
enPessoas e instituições envolvidas em processos

O filtro por período aceita inicialmente qo=t ou qo=d. Para o caso de jurisprudência e publicações, use qo=d.

ano_publicacao refere-se exclusivamente ao ano da publicação oficial. Ele não representa ano orçamentário, vencimento ou previsão de pagamento.

Exemplo: precatórios publicados em 2026​

Para priorizar precisão e eliminar publicações de processos que apenas mencionam a palavra “precatório”, combine o ano, a classe exata e a deduplicação por CNJ:

curl --request GET \
--url 'https://api.buscaprocessos.app.br/v1/busca/termo' \
--get \
--data-urlencode 'q=precatório' \
--data-urlencode 'qo=d' \
--data-urlencode 'ano_publicacao=2026' \
--data-urlencode 'classe_processual=PRECATÓRIO' \
--data-urlencode 'deduplicar_por_processo=true' \
--data-urlencode 'page=1' \
--data-urlencode 'limit=20' \
--header 'x-api-key: bp_live_SUA_CHAVE' \
--header 'Accept: application/json'

Esse filtro confirma a classe informada na publicação. Para consultar o ano orçamentário e os valores estruturados, use o modo orçamentário abaixo.

Exemplo: precatórios por ano orçamentário​

curl --request GET \
--url 'https://api.buscaprocessos.app.br/v1/busca/termo' \
--get \
--data-urlencode 'q=precatório' \
--data-urlencode 'qo=t' \
--data-urlencode 'ano_orcamentario_inicio=2026' \
--data-urlencode 'ano_orcamentario_fim=2027' \
--data-urlencode 'tribunal=TRF4' \
--data-urlencode 'valor_minimo=100000' \
--data-urlencode 'valor_maximo=1000000' \
--data-urlencode 'incluir_correspondencias=true' \
--data-urlencode 'ordenar=valor_desc' \
--data-urlencode 'page=1' \
--data-urlencode 'limit=20' \
--header 'x-api-key: bp_live_SUA_CHAVE' \
--header 'Accept: application/json'

Cada item informa referencia_orcamentaria, ano_orcamentario, valores, tribunal e ente devedor. Quando a Unidade Orçamentária executada é identificada no cadastro oficial de entes devedores, o item também traz cnpj_ente_devedor e teto_superpreferencia; a base orçamentária não publica o CNPJ, então esses campos vêm null para as unidades ainda não cobertas por esse cadastro. Quando houver ligação com uma publicação, a resposta inclui numero_processo e confianca_correspondencia. status_pagamento=NAO_VERIFICADO é intencional: o exercício orçamentário e a execução agregada não comprovam pagamento individual.

Partes identificadas na busca por precatório​

Toda busca por precatório — q=precatório, q=RPV, classe_processual=PRECATÓRIO ou o modo orçamentário — devolve partes com nome, polo e CPF ou CNPJ. Os dados vêm de um índice processual mantido em segundo plano a partir da fonte oficial, então a resposta é uma leitura indexada: o tamanho da página não afeta a latência e nenhuma consulta externa acontece durante a requisição. Essa consulta tem preço fixo próprio de R$ 0,45. Envie incluir_partes=false para manter o comportamento e o preço da busca simples.

No modo orçamentário, a identificação depende primeiro de um vínculo confirmado entre a referência orçamentária e o processo. Use somente_processos_vinculados=true para ocultar registros ainda sem CNJ. meta.search.capabilities.processIndexStatus e processIndexItems informam o avanço do índice; a cobertura cresce progressivamente durante o backfill.

"partes": [
{
"nome": "NOME DA PARTE",
"polo": "ATIVO",
"tipo": "Autor",
"cpf": "00000000000",
"cnpj": null,
"documento": "00000000000",
"tipo_pessoa": "FISICA",
"advogados": [{ "nome": "NOME DO ADVOGADO", "oab": ["123456/SP"] }]
}
]

Três limites que a resposta declara em meta.search:

  • Parte do processo não é beneficiário do precatório. A identificação vem do processo vinculado, não da base orçamentária, que não registra beneficiário. O aviso PARTY_IDENTITY_FROM_PROCESS_INDEX acompanha toda resposta enriquecida.
  • Tribunais publicam documentos mascarados. Quando a origem entrega 409.**********, cpf, cnpj e documento voltam null e o nome é preservado; um fragmento nunca é devolvido como se fosse documento válido. Processos sigilosos não têm partes indexadas. Veja PARTY_DOCUMENT_MASKED_BY_COURT.
  • A cobertura cresce com o índice. Processos ainda não sincronizados aparecem sem partes e são contados em quality.processesOutsidePartyIndex, com o aviso PARTY_INDEX_COVERAGE_PARTIAL. Repetir a consulta mais tarde tende a devolver mais, sem custo adicional de latência.

Quando a fonte oficial de ordem de pagamento responde, cada item também traz ordem_cronologica, ordem_superpreferencia, situacao_requisicao, saldo_total, natureza_credito e preferencia_legal, e status_pagamento passa a refletir a situação individual em vez de NAO_VERIFICADO. Essa fonte é consultada em toda busca orçamentária; quando ela não responde, os campos simplesmente não aparecem e a resposta traz o aviso PAYMENT_ORDER_SOURCE_UNAVAILABLE. Não é necessário mudar nada na integração para passar a receber esses campos.

meta.search.capabilities informa se o catálogo oficial de situações estava disponível e quais estados de negócio são reconhecidos. Isso não significa que o estado individual do item tenha sido obtido: enquanto esse acesso não estiver disponível, individualStatusAvailable, paymentConfirmationAvailable e beneficiaryAvailable permanecem false.

Quando o item tiver numero_processo, crie o acompanhamento em POST /v1/monitoramentos/processos. O campo opcional customer_email define um destinatário adicional; o e-mail da conta responsável e os consultores ativos vinculados também recebem o resumo das novas movimentações. O monitoramento observa o processo, mas só deve ser interpretado como confirmação de pagamento quando a nova evidência individual disser isso expressamente.

Como escrever a consulta​

Sem operadores lógicos, palavras separadas são tratadas em conjunto no índice local. Por exemplo:

Empresa Exemplo banco de horas

procura registros que contenham os termos normalizados empresa, exemplo, banco, de e horas. Maiúsculas, minúsculas e acentos são normalizados; pontuação, como vírgulas, não cria um filtro separado.

No índice local, coloque uma expressão entre aspas para procurar uma frase exata:

"banco de horas"

Para combinações mais elaboradas no índice local, habilite operadores:

q=("banco de horas" OR "horas extras") AND petrobras NOT estágio
utilizar_operadores_logicos=true

Os operadores lógicos ainda não estão disponíveis no modo de período oficial. Nesse modo, envie uma expressão textual simples em q.

Exemplo: empresa + tema + TRT + período​

O exemplo abaixo descobre publicações sem exigir CNJ prévio:

curl --request GET \
--url 'https://api.buscaprocessos.app.br/v1/busca/termo' \
--get \
--data-urlencode 'q=Empresa Exemplo banco de horas' \
--data-urlencode 'qo=d' \
--data-urlencode 'tribunal=TRT1' \
--data-urlencode 'data_publicacao_inicio=2026-01-01' \
--data-urlencode 'data_publicacao_fim=2026-09-02' \
--data-urlencode 'page=1' \
--data-urlencode 'limit=20' \
--header 'x-api-key: bp_live_SUA_CHAVE' \
--header 'Accept: application/json'

Não há parâmetro uf nessa rota. Use a sigla do tribunal, como TRT1, TRT2 ou TRT15. Para pesquisar vários TRTs, faça uma consulta controlada por tribunal e consolide os resultados no seu sistema; cada requisição concluída pode gerar cobrança.

Resposta​

Uma publicação pode retornar os seguintes campos:

CampoSignificado
idIdentificador numérico estável do item apresentado
nomeClasse, documento ou título disponível para apresentação
resumoTrecho curto para listagem
quantidade_publicacoesPublicações consolidadas no item; pode ser maior que 1 com deduplicação por CNJ
tipo_resultadoPor exemplo, Diário Oficial, Processo, Pessoa ou Instituição
numero_processoCNJ formatado, quando identificado
tribunalSigla da origem, como TRT1
orgaoVara, turma ou órgão julgador, quando informado
classeClasse processual disponível na publicação
data_publicacaoData oficial no formato YYYY-MM-DD
tipo_comunicacaoTipo informado pela origem, como Intimação
textoConteúdo publicado disponível
assuntosAssuntos processuais, quando o resultado tiver sido enriquecido
partesPartes identificadas com CPF/CNPJ; presente somente na busca por precatório
movimentacoesMovimentações processuais, quando disponíveis
linkLink público fornecido pela origem, quando disponível
link_apiEndpoint da BuscaProcessos para consultar a publicação

Campos dependem da informação publicada pela fonte e podem ser null ou não aparecer.

Exemplo fictício de resposta:

{
"data": {
"paginator": {
"total": 1,
"total_pages": 1,
"current_page": 1,
"per_page": 20
},
"links": {
"prev": null,
"next": null
},
"items": [
{
"id": 123456789,
"nome": "RECURSO ORDINÁRIO - RITO SUMARÍSSIMO",
"resumo": "EMPRESA EXEMPLO. BANCO DE HORAS. HORAS EXTRAS NÃO COMPENSADAS...",
"quantidade_processos": 1,
"quantidade_publicacoes": 2,
"tipo_resultado": "Diário Oficial",
"link": "https://pje.tribunal.example/validacao/documento-exemplo",
"link_api": "https://api.buscaprocessos.app.br/v1/intimacoes/publicacoes/12345",
"data_publicacao": "2026-08-17",
"tribunal": "TRT1",
"orgao": "3ª Turma",
"classe": "RECURSO ORDINÁRIO - RITO SUMARÍSSIMO",
"numero_processo": "0000000-00.2026.5.01.0000",
"tipo_comunicacao": "Intimação",
"texto": "Intimação para ciência do acórdão. Banco de horas... Recurso não provido."
}
]
},
"meta": {
"creditsCharged": 0.1,
"creditsRemaining": 99.9,
"requestId": "req_exemplo",
"searchLogId": "log_exemplo",
"servedAt": "14:32:10",
"search": {
"mode": "OFFICIAL_DATE_RANGE",
"period": {
"field": "data_publicacao",
"start": "2026-01-01",
"end": "2026-09-02"
},
"tribunal": "TRT1",
"partial": false,
"cacheHit": false,
"totalExact": true,
"filters": {
"publicationYear": 2026,
"requestedTribunal": "TRT1",
"className": "PRECATÓRIO",
"deduplicateByProcess": true
},
"quality": {
"rawResults": 2,
"classFilteredOut": 0,
"duplicatesRemoved": 1,
"returnedResults": 1,
"uniqueProcesses": 1,
"itemsWithoutProcessNumber": 0
},
"warnings": []
}
}
}

Como interpretar meta.search​

CampoUso
modeConfirma se a resposta veio do índice local ou da consulta oficial por período
periodPeríodo realmente aplicado; null no índice local
tribunalTribunal efetivamente aplicado; null no índice local
partialQuando true, o universo pode estar limitado; divida o período em janelas menores
cacheHitInforma se a consulta oficial foi atendida por cache
totalExactIndica se paginator.total representa todo o universo ou um limite inferior da janela processada
filtersConfirma ano, tribunal solicitado, classe e deduplicação solicitados
qualityInforma resultados examinados, removidos por classe, duplicados consolidados, itens sem CNJ e, na busca por precatório, o resultado da identificação das partes
warningsLimitações aplicáveis à consulta, em formato legível por máquina e por pessoa

Sempre persista requestId e searchLogId para suporte e auditoria de consumo.

Sentenças, acórdãos e resultado do julgamento​

tipo_comunicacao descreve a comunicação publicada e pode continuar como Intimação, mesmo quando texto contém uma sentença, uma decisão ou um acórdão. Portanto, não use esse campo isoladamente para classificar o documento judicial.

A rota não retorna atualmente um campo estruturado de procedencia, improcedencia ou resultado_recurso. Expressões como “julgo procedentes em parte”, “recurso provido” ou “recurso não provido” podem aparecer em texto, mas qualquer classificação deve:

  1. ser tratada como inferência da sua aplicação;
  2. preservar o trecho que fundamentou a classificação;
  3. prever revisão jurídica humana;
  4. nunca substituir a consulta à decisão oficial.

Paginação e deduplicação​

Siga data.links.next até que seja null. Cada página é uma nova requisição e pode consumir créditos.

Uma mesma decisão pode gerar comunicações diferentes para vários destinatários. Se o objetivo for contar processos únicos, deduplique por numero_processo. Se o objetivo for preservar publicações distintas, use id ou link_api. Para eliminar apenas cópias equivalentes, combine CNJ, data e um hash do texto normalizado.

Quando meta.search.partial for true, não trate paginator.total como universo completo. Reduza o intervalo de datas e repita a coleta em janelas não sobrepostas.

Custos e tratamento de erros​

A busca por termos custa normalmente R$ 0,10 por requisição concluída, inclusive páginas adicionais. Confira sempre meta.creditsCharged e meta.creditsRemaining, pois os valores retornados pela API são a fonte vigente.

Trate pelo menos:

  • 400 INVALID_QUERY_PARAMS: parâmetro ausente, combinação incompatível ou expressão inválida;
  • 401: API Key ausente, inválida ou revogada;
  • 403 INSUFFICIENT_CREDITS: saldo insuficiente;
  • 429: limite de requisições; respeite Retry-After;
  • 502 ou 503: fonte oficial temporariamente indisponível; aplique backoff.

Se a API responder 202 Accepted, siga Location ou data.statusUrl com a mesma API Key e respeite Retry-After. Não recrie a pesquisa paga enquanto a solicitação original estiver processando.

Fluxo recomendado de integração​

  1. Pesquise empresa e tema com qo=d, período e tribunal.
  2. Armazene o resultado bruto e os identificadores de auditoria.
  3. Deduplique conforme o objetivo do produto.
  4. Use o CNJ encontrado nos endpoints de capa, movimentações ou documentos somente quando precisar aprofundar o caso.
  5. Classifique resultados jurídicos como inferência separada, mantendo o texto de evidência e revisão humana.

Consulte também: