> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jusfy.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Consulta o protocolo de uma busca de processos

> Devolve o estado da consulta e, quando concluída, o **resumo** do que foi encontrado. Os processos em si vêm por `GET /api/consultas/buscador-processual/{id}/processos`.

Responde `200` nos quatro estados — inclusive quando a consulta falhou. Estados: `pending`, `done` (com `data`), `error` e `expired` (não concluiu dentro do prazo de `expiresAt`).

⚠️ Como o provedor **não reporta falha**, uma consulta que trava do lado dele permanece `pending` até `expiresAt` e só então vira `expired` — é indistinguível de "ainda processando".

Consultar o protocolo é **gratuito**. O resultado fica disponível por 30 dias; depois disso a consulta segue `done`, mas `data` vem `null`.



## OpenAPI

````yaml /openapi/legado.json get /api/consultas/buscador-processual/{id}
openapi: 3.0.0
info:
  title: Calculadoras Jusfy API
  description: >-
    Rotas sem versão (`/api/...`). Continuam funcionando, mas a versão atual

    da API é a v1 (`/api/v1`): para integrações novas, use a v1 e siga o [guia
    de
    migração](https://api.jusfy.dev/calculators/api/reference/fundamentos/migracao-do-legado).


    A política de versionamento e depreciação está na [política de
    versionamento](https://api.jusfy.dev/calculators/api/reference/fundamentos/migracao-do-legado#pol%C3%ADtica-de-versionamento).
  version: legacy
  contact: {}
servers:
  - url: https://api.jusfy.dev/calculators
security: []
tags:
  - name: Calculadoras
    description: >-
      Execução das calculadoras jurídicas e consulta dos índices de correção.
      Cada cálculo recebe um payload, retorna o resultado processado e exige API
      key no header `x-api-key`.
  - name: Consultas
    description: >-
      Consultas de dados (veículos, condutores e documentos). Cada consulta
      recebe o documento, retorna os dados encontrados e exige API key no header
      `x-api-key`. A maioria responde na mesma requisição; o **rastreamento
      veicular** e o **buscador processual** são assíncronos — devolvem `202`
      com um protocolo e entregam o resultado por webhook e/ou pelo `GET` do
      protocolo.
  - name: JusScore
    description: >-
      Consulta de processos judiciais por CPF/CNPJ, com score de risco
      consolidado e a lista detalhada dos processos. É assíncrona: o POST inicia
      a consulta e o GET devolve o resultado quando pronto. Exige API key no
      header `x-api-key`.
  - name: Consumo
    description: >-
      Consumo da própria API key: quantas chamadas cada produto recebeu num
      período, separando as cobradas das não cobradas. Não exige escopo; exige
      API key no header `x-api-key`.
  - name: Health
    description: >-
      Verificações de disponibilidade do serviço (liveness e readiness). Rotas
      abertas, sem autenticação.
paths:
  /api/consultas/buscador-processual/{id}:
    get:
      tags:
        - Consultas
      summary: Consulta o protocolo de uma busca de processos
      description: >-
        Devolve o estado da consulta e, quando concluída, o **resumo** do que
        foi encontrado. Os processos em si vêm por `GET
        /api/consultas/buscador-processual/{id}/processos`.


        Responde `200` nos quatro estados — inclusive quando a consulta falhou.
        Estados: `pending`, `done` (com `data`), `error` e `expired` (não
        concluiu dentro do prazo de `expiresAt`).


        ⚠️ Como o provedor **não reporta falha**, uma consulta que trava do lado
        dele permanece `pending` até `expiresAt` e só então vira `expired` — é
        indistinguível de "ainda processando".


        Consultar o protocolo é **gratuito**. O resultado fica disponível por 30
        dias; depois disso a consulta segue `done`, mas `data` vem `null`.
      operationId: AsyncQueriesController_buscadorProcessualStatus[0]
      parameters:
        - name: id
          required: true
          in: path
          description: O `id` devolvido no `202` do disparo.
          schema:
            example: aqry_7c2e1a90-3b4d-5e6f-8a91-b2c3d4e5f607
            type: string
      responses:
        '200':
          description: >-
            Estado atual da consulta. Em `done`, `data` traz o resumo:
            `totalFound` (identificados pela fonte — **limite inferior**, ela
            satura em 10.000), `returned` (guardados e pagináveis) e
            `truncated`.
          content:
            application/json:
              schema:
                type: object
                example:
                  statusCode: 200
                  message: Consulta localizada
                  timestamp: '2026-09-08T18:12:00.000Z'
                  path: >-
                    /api/consultas/buscador-processual/aqry_7c2e1a90-3b4d-5e6f-8a91-b2c3d4e5f607
                  result:
                    id: aqry_7c2e1a90-3b4d-5e6f-8a91-b2c3d4e5f607
                    consulta: buscador-processual
                    status: done
                    createdAt: '2026-09-08T18:00:00.000Z'
                    updatedAt: '2026-09-08T18:11:42.000Z'
                    expiresAt: '2026-09-08T18:30:00.000Z'
                    completedAt: '2026-09-08T18:11:42.000Z'
                    data:
                      totalFound: 10000
                      returned: 1000
                      truncated: true
        '401':
          description: >-
            API key ausente ou que não pertence a nenhum cliente (`code:
            invalid_api_key`). A `message` diz qual dos dois.
          content:
            application/json:
              examples:
                missing:
                  summary: Key ausente
                  value:
                    statusCode: 401
                    message: Missing API key
                    code: invalid_api_key
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
                invalid:
                  summary: Key inválida
                  value:
                    statusCode: 401
                    message: Invalid API key
                    code: invalid_api_key
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
        '403':
          description: >-
            Acesso negado. Dois motivos, distinguidos pelo `code`: o cliente não
            está ativo (`inactive_client`), ou a API key não tem o escopo deste
            produto (`insufficient_scope`, com o escopo na `message`). A
            liberação de produtos é feita pela equipe Jusfy.
          content:
            application/json:
              examples:
                inactive_client:
                  summary: Cliente não ativo
                  value:
                    statusCode: 403
                    message: Client is not active
                    code: inactive_client
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
                insufficient_scope:
                  summary: Sem o escopo do produto
                  value:
                    statusCode: 403
                    message: 'Missing scope: <escopo>'
                    code: insufficient_scope
                    requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                    timestamp: '2026-10-14T18:00:00.000Z'
                    path: /api/consultas/{consulta}
        '404':
          description: >-
            Protocolo inexistente — ou pertencente a outro cliente. Os dois
            casos respondem igual de propósito.
          content:
            application/json:
              schema:
                example:
                  statusCode: 404
                  code: resource_not_found
                  message: Query aqry_7c2e1a90-3b4d-5e6f-8a91-b2c3d4e5f607 not found
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-09-02T18:00:00.000Z'
                  path: /api/consultas/buscador-processual/{id}
        '429':
          description: >-
            Limite de requisições por minuto do cliente neste produto excedido.
            `Retry-After` diz em quantos segundos a janela vira. Toda resposta
            traz `X-RateLimit-Limit`, `X-RateLimit-Remaining` e
            `X-RateLimit-Reset`.
          content:
            application/json:
              schema:
                example:
                  statusCode: 429
                  code: rate_limit_exceeded
                  message: >-
                    Rate limit exceeded for
                    consultas.rastreamento-veicular:execute: 60 requests per
                    minute. Retry in 42s.
                  requestId: 9f1c2b7e-4d3a-4f8b-a6e2-1c0d9e8f7a65
                  timestamp: '2026-06-22T18:00:00.000Z'
                  path: /api/consultas/rastreamento-veicular
      security:
        - api-key: []
components:
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.