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.
| Modo | Como ativar | Cobertura | Filtro de tribunal |
|---|---|---|---|
| Índice local | Omita as duas datas | Comunicações judiciais e diários já indexados | Não é aplicado neste modo |
| Período oficial | Envie ano_publicacao ou as datas inicial e final | Comunicações judiciais oficiais no intervalo | Aceita uma sigla, como TRT1, TJSP ou TRF2 |
| Orçamento de precatórios | Use q=precatório e envie ano_orcamentario ou o intervalo de exercícios | Registros orçamentários oficiais, com correspondências indexadas | Aceita 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âmetro | Obrigatório | Descrição |
|---|---|---|
q | Sim | Texto, nome, empresa, tema, CNJ ou OAB pesquisado |
qo | Sim | Escopo do resultado; veja a tabela abaixo |
data_publicacao_inicio | Condicional | Data inicial YYYY-MM-DD; deve ser enviada com a data final |
data_publicacao_fim | Condicional | Data final YYYY-MM-DD; intervalo máximo de 366 dias |
ano_publicacao | Não | Atalho para um ano completo, como 2026; não combine com as datas |
ano_orcamentario | Não | Exercício de inclusão orçamentária do precatório; use com q=precatório |
ano_orcamentario_inicio | Condicional | Primeiro exercício de um intervalo; envie junto com o ano final |
ano_orcamentario_fim | Condicional | Último exercício; intervalo máximo de 11 exercícios |
tribunal | Não | Uma sigla de tribunal; aplicada na busca oficial por período |
ente_devedor | Não | Código ou parte do nome da Unidade Orçamentária executada |
cnpj_ente_devedor | Não | CNPJ do ente devedor, quando resolvido no cadastro oficial; 14 dígitos |
uf_tribunal_expedidor | Não | UF do TJ expedidor, quando informada; não é o estado do ente devedor federal |
valor_minimo / valor_maximo | Não | Faixa de valor em reais, usando ponto decimal |
tributario / fundef | Não | Filtros booleanos da classificação orçamentária disponível |
incluir_correspondencias | Não | Inclui vínculos auditáveis com publicações; padrão true |
incluir_partes | Não | false desliga a identificação das partes na busca por precatório; padrão true |
somente_processos_vinculados | Não | true retorna somente registros orçamentários que já possuem um número CNJ confirmado |
ordenar | Não | valor_desc, valor_asc, ano_desc, ano_asc ou autuacao_desc |
classe_processual | Não | Classe exata, sem diferença de caixa ou acento; disponível com qo=t ou qo=d |
deduplicar_por_processo | Não | true para retornar um item por CNJ e consolidar suas publicações |
qs | Não | Ordenação de diários: d para mais recentes ou a para mais antigos |
page | Não | Página, começando em 1; padrão 1 |
limit | Não | Itens por página; padrão 20 e máximo 100 |
utilizar_operadores_logicos | Não | Use true para habilitar AND, OR, NOT e parênteses no índice local |
Valores de qo
| Valor | Escopo |
|---|---|
t | Todos: pessoas, instituições e publicações |
p | Pessoas |
c | Pessoas com identificadores estruturados disponíveis |
i | Instituições ou empresas |
d | Publicações e Diários Oficiais |
en | Pessoas 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_INDEXacompanha toda resposta enriquecida. - Tribunais publicam documentos mascarados. Quando a origem entrega
409.**********,cpf,cnpjedocumentovoltamnulle o nome é preservado; um fragmento nunca é devolvido como se fosse documento válido. Processos sigilosos não têm partes indexadas. VejaPARTY_DOCUMENT_MASKED_BY_COURT. - A cobertura cresce com o índice. Processos ainda não sincronizados aparecem sem
partese são contados emquality.processesOutsidePartyIndex, com o avisoPARTY_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:
| Campo | Significado |
|---|---|
id | Identificador numérico estável do item apresentado |
nome | Classe, documento ou título disponível para apresentação |
resumo | Trecho curto para listagem |
quantidade_publicacoes | Publicações consolidadas no item; pode ser maior que 1 com deduplicação por CNJ |
tipo_resultado | Por exemplo, Diário Oficial, Processo, Pessoa ou Instituição |
numero_processo | CNJ formatado, quando identificado |
tribunal | Sigla da origem, como TRT1 |
orgao | Vara, turma ou órgão julgador, quando informado |
classe | Classe processual disponível na publicação |
data_publicacao | Data oficial no formato YYYY-MM-DD |
tipo_comunicacao | Tipo informado pela origem, como Intimação |
texto | Conteúdo publicado disponível |
assuntos | Assuntos processuais, quando o resultado tiver sido enriquecido |
partes | Partes identificadas com CPF/CNPJ; presente somente na busca por precatório |
movimentacoes | Movimentações processuais, quando disponíveis |
link | Link público fornecido pela origem, quando disponível |
link_api | Endpoint 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
| Campo | Uso |
|---|---|
mode | Confirma se a resposta veio do índice local ou da consulta oficial por período |
period | Período realmente aplicado; null no índice local |
tribunal | Tribunal efetivamente aplicado; null no índice local |
partial | Quando true, o universo pode estar limitado; divida o período em janelas menores |
cacheHit | Informa se a consulta oficial foi atendida por cache |
totalExact | Indica se paginator.total representa todo o universo ou um limite inferior da janela processada |
filters | Confirma ano, tribunal solicitado, classe e deduplicação solicitados |
quality | Informa resultados examinados, removidos por classe, duplicados consolidados, itens sem CNJ e, na busca por precatório, o resultado da identificação das partes |
warnings | Limitaçõ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:
- ser tratada como inferência da sua aplicação;
- preservar o trecho que fundamentou a classificação;
- prever revisão jurídica humana;
- 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; respeiteRetry-After;502ou503: 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
- Pesquise empresa e tema com
qo=d, período e tribunal. - Armazene o resultado bruto e os identificadores de auditoria.
- Deduplique conforme o objetivo do produto.
- Use o CNJ encontrado nos endpoints de capa, movimentações ou documentos somente quando precisar aprofundar o caso.
- Classifique resultados jurídicos como inferência separada, mantendo o texto de evidência e revisão humana.
Consulte também: