Pular para o conteúdo
Referência

Endpoints e recursos

Cinco endpoints; toda requisição autenticada e assinada. Respostas de erro em application/problem+json.

Endpoints

POST/v1/consultas

Cria uma consulta

Serviços síncronos (30, 40, 50, 70, 90): responde 200 (ou 206 quando alguma seção não pôde ser obtida) com dados no schema Lanet do serviço. Se o processamento passar de 25 s, responde 202 com Location — acompanhe em GET /v1/consultas/{id} (ou receba consulta.concluida no webhook). Consulta Veicular Completa (30) normalmente excede os 25 s: trate o 202 como caminho normal (conclusão típica entre 30 s e 4 min). Serviços assíncronos (10): sempre 202. Serviço 70: decodificação do veículo pela placa + valor de referência de tabela de preços (~10 s). Serviço 90 (pacote 70 + 50): duas consultas na origem de dados em uma só chamada, um preço; as duas partes são obrigatórias — se uma falhar, a consulta falha e não é cobrada. formato=pdf gera também o laudo em PDF (laudo.url pré-assinada, 5 min) quando a integração permite — no 90, um único laudo com as seções dos dois serviços. Serviço sem preço vigente no seu contrato → 422 LAN-422-PRICING-REQUIRED, antes de qualquer processamento. Integrações dedicadas ao Arquivo de Tabela de Preços (criadas com service_code: 60) não realizam consultas: respondem 403 LAN-403-SERVICE-DISABLED antes de qualquer processamento (sem idempotência, sem cobrança) — use uma integração de consultas (json/pdf).

Parâmetros

NomeOndeObrig.Descrição
Idempotency-KeyheaderSimObrigatório em POST. Até 128 caracteres imprimíveis; recomendado UUID v4 ou ULID.
X-Lanet-TimestampheaderSimUnix time (segundos). Tolerância ±300 s.
X-Lanet-SignatureheaderSim

Corpo da requisição (NovaConsulta)

exemplo: completa
{
  "query": 30,
  "parametros": {
    "placa": "ABC1D23"
  }
}
exemplo: debitos
{
  "query": 10,
  "parametros": {
    "placa": "ABC1D23",
    "renavam": "00123456789",
    "uf": "SC"
  },
  "callback": "https://hooks.empresa.com.br/lanet"
}
exemplo: ficha_pdf
{
  "query": 50,
  "parametros": {
    "placa": "ABC1D23"
  },
  "formato": "pdf"
}
exemplo: referencia
{
  "query": 70,
  "parametros": {
    "placa": "ABC1D23"
  }
}
exemplo: pacote
{
  "query": 90,
  "parametros": {
    "placa": "ABC1D23"
  }
}
exemplo: pacote_pdf
{
  "query": 90,
  "parametros": {
    "placa": "ABC1D23"
  },
  "formato": "pdf"
}

Respostas

HTTPDescrição
200Consulta concluída.
202Em processamento. `Location` aponta para `GET /v1/consultas/{id}`; consulte após `Retry-After` segundos.
206Consulta concluída **parcialmente** — `secoes_indisponiveis` lista o que faltou. Cobrada.
400Requisição malformada (`LAN-400`), JSON inválido, `Idempotency-Key` ausente (`LAN-400-IDEMPOTENCY-KEY-REQUIRED`).
401Autenticação: `LAN-401` (headers ausentes/malformados), `LAN-401-KEY` (chave desconhecida, revogada ou fora da graça), `LAN-401-TIMESTAMP` (fora de ±300 s), `LAN-401-SIGNATURE` (assinatura não confere).
402Teto diário de gasto (`LAN-402-LIMIT`) ou limite de crédito (`LAN-402-CREDIT-LIMIT`). Não cobrada; nenhum dado é consultado.
403`LAN-403-IP` (IP não aprovado), `LAN-403-SUSPENDED-IP`/`-CONTRACT`/`-MANUAL`/`-DELINQUENCY` (integração suspensa — `suspension_reasons` no corpo), `LAN-403-SERVICE-DISABLED` (serviço indisponível para clientes externos; rota de arquivos chamada por integração sem assinatura ativa do serviço 60; ou `POST /v1/consultas` chamado por uma integração **dedicada ao Arquivo de Tabela de Preços** — ela não realiza consultas: use `GET /v1/files`).
404Serviço inexistente no catálogo (`LAN-404-SERVICE`).
409Mesma `Idempotency-Key` ainda em processamento (`LAN-409-IDEMPOTENCY-IN-PROGRESS`) — repita após `Retry-After`.
413Corpo acima de 8 KB (`LAN-413`).
422`LAN-422-PARAMETERS` (parâmetros inválidos para o serviço; `errors[]`), `LAN-422-IDEMPOTENCY-REUSE`, `LAN-422-FORMAT` (formato não permitido para a integração), `LAN-422-PRICING-REQUIRED` (serviço sem preço vigente no seu contrato — `service_code` na extensão; nada é cobrado nem consultado).
429Limite de requisições do serviço (`LAN-429`). Não cobrada.
502Falha ao obter os dados na origem (`LAN-502-UPSTREAM`). **Não cobrada.** A consulta fica registrada como `falhou`.
503Capacidade temporariamente esgotada (`LAN-503-UPSTREAM-BUSY`) ou serviço indisponível (`LAN-503`). Não cobrada.
504Tempo limite na origem (`LAN-504-UPSTREAM-TIMEOUT`). **Não cobrada.**
GET/v1/consultas/{id}

Consulta o resultado (polling)

Parâmetros

NomeOndeObrig.Descrição
idpathSim
X-Lanet-TimestampheaderSimUnix time (segundos). Tolerância ±300 s.
X-Lanet-SignatureheaderSim

Respostas

HTTPDescrição
200Concluída (ou `falhou`, com `erro` preenchido).
202Ainda em processamento.
206Concluída parcialmente.
401Autenticação: `LAN-401` (headers ausentes/malformados), `LAN-401-KEY` (chave desconhecida, revogada ou fora da graça), `LAN-401-TIMESTAMP` (fora de ±300 s), `LAN-401-SIGNATURE` (assinatura não confere).
403`LAN-403-IP` (IP não aprovado), `LAN-403-SUSPENDED-IP`/`-CONTRACT`/`-MANUAL`/`-DELINQUENCY` (integração suspensa — `suspension_reasons` no corpo), `LAN-403-SERVICE-DISABLED` (serviço indisponível para clientes externos; rota de arquivos chamada por integração sem assinatura ativa do serviço 60; ou `POST /v1/consultas` chamado por uma integração **dedicada ao Arquivo de Tabela de Preços** — ela não realiza consultas: use `GET /v1/files`).
404Consulta não encontrada para esta integração (`LAN-404-CONSULTA`).
429Limite de requisições do serviço (`LAN-429`). Não cobrada.
GET/v1/eventos

Eventos emitidos para a integração (replay)

Ordem crescente por id (ULID — equivale à ordem de criação) por padrão; ordem=desc devolve os mais recentes primeiro (útil para "o que saiu por último" sem paginar tudo). Retenção de 90 dias; sem desde, devolve as últimas 24 h. Paginação por cursor (opaco; siga next_cursor com os mesmos filtros e a mesma ordem). Inclui os eventos arquivo_tabela_precos.* das integrações do serviço 60 (dados = EventoArquivoTabelaPrecos). entrega.status = aguardando_verificacao indica que o evento espera a verificação do endpoint de webhook (handshake) — nenhuma tentativa é consumida até lá.

Parâmetros

NomeOndeObrig.Descrição
X-Lanet-TimestampheaderSimUnix time (segundos). Tolerância ±300 s.
X-Lanet-SignatureheaderSim
desdequeryNãoInício (inclusive). Default = 24 h atrás.
atequeryNãoFim (exclusivo). Default = agora.
tipoqueryNão
cursorqueryNão
limitqueryNão
ordemqueryNão`asc` (padrão) = do mais antigo ao mais recente; `desc` = mais recentes primeiro.

Respostas

HTTPDescrição
200OK
400Requisição malformada (`LAN-400`), JSON inválido, `Idempotency-Key` ausente (`LAN-400-IDEMPOTENCY-KEY-REQUIRED`).
401Autenticação: `LAN-401` (headers ausentes/malformados), `LAN-401-KEY` (chave desconhecida, revogada ou fora da graça), `LAN-401-TIMESTAMP` (fora de ±300 s), `LAN-401-SIGNATURE` (assinatura não confere).
403`LAN-403-IP` (IP não aprovado), `LAN-403-SUSPENDED-IP`/`-CONTRACT`/`-MANUAL`/`-DELINQUENCY` (integração suspensa — `suspension_reasons` no corpo), `LAN-403-SERVICE-DISABLED` (serviço indisponível para clientes externos; rota de arquivos chamada por integração sem assinatura ativa do serviço 60; ou `POST /v1/consultas` chamado por uma integração **dedicada ao Arquivo de Tabela de Preços** — ela não realiza consultas: use `GET /v1/files`).
429Limite de requisições do serviço (`LAN-429`). Não cobrada.
GET/v1/files

Arquivos mensais publicados (Arquivo de Tabela de Preços — assinatura)

Lista os arquivos publicados visíveis à integração — exige assinatura ativa do serviço 60 (integração criada com service_code: 60; caso contrário 403 LAN-403-SERVICE-DISABLED). Ordem: mês de referência decrescente, versão decrescente. mes=YYYY-MM restringe a um mês (todas as versões dele). A versão mais recente de cada mês tem status=publicado; versões anteriores ficam substituido e continuam baixáveis. Paginação por cursor.

Parâmetros

NomeOndeObrig.Descrição
X-Lanet-TimestampheaderSimUnix time (segundos). Tolerância ±300 s.
X-Lanet-SignatureheaderSim
mesqueryNãoMês de referência (`YYYY-MM`). Ausente = todos os meses.
cursorqueryNão
limitqueryNão

Respostas

HTTPDescrição
200OK
400Requisição malformada (`LAN-400`), JSON inválido, `Idempotency-Key` ausente (`LAN-400-IDEMPOTENCY-KEY-REQUIRED`).
401Autenticação: `LAN-401` (headers ausentes/malformados), `LAN-401-KEY` (chave desconhecida, revogada ou fora da graça), `LAN-401-TIMESTAMP` (fora de ±300 s), `LAN-401-SIGNATURE` (assinatura não confere).
403`LAN-403-IP` (IP não aprovado), `LAN-403-SUSPENDED-IP`/`-CONTRACT`/`-MANUAL`/`-DELINQUENCY` (integração suspensa — `suspension_reasons` no corpo), `LAN-403-SERVICE-DISABLED` (serviço indisponível para clientes externos; rota de arquivos chamada por integração sem assinatura ativa do serviço 60; ou `POST /v1/consultas` chamado por uma integração **dedicada ao Arquivo de Tabela de Preços** — ela não realiza consultas: use `GET /v1/files`).
429Limite de requisições do serviço (`LAN-429`). Não cobrada.
GET/v1/files/{file_id}

Download do arquivo — redireciona para uma URL temporária (5 min)

Responde `302` com Location = URL temporária de download, válida por 5 minutos, sem corpo. Siga o redirecionamento com GET sem reenviar os headers de autenticação Lanet (a URL já está assinada; muitos clientes HTTP fazem isso automaticamente — desligue o reenvio de Authorization no redirecionamento) e confira o sha256 do arquivo recebido com o valor informado no evento ou em GET /v1/files.

Exige assinatura ativa do serviço 60 (403 LAN-403-SERVICE-DISABLED caso contrário — verificado antes de procurar o arquivo). Arquivo inexistente, não publicado ou rejeitado → 404 LAN-404-FILE. Versões substituido continuam baixáveis. Cada chamada gera um registro de download (rastreio/auditoria) e uma linha de uso com valor 0 — o Arquivo de Tabela de Preços é um item fixo mensal da assinatura, nunca cobrado por download.

Parâmetros

NomeOndeObrig.Descrição
file_idpathSim
X-Lanet-TimestampheaderSimUnix time (segundos). Tolerância ±300 s.
X-Lanet-SignatureheaderSim

Respostas

HTTPDescrição
302Redirecionamento para a URL temporária (5 min). Sem corpo.
401Autenticação: `LAN-401` (headers ausentes/malformados), `LAN-401-KEY` (chave desconhecida, revogada ou fora da graça), `LAN-401-TIMESTAMP` (fora de ±300 s), `LAN-401-SIGNATURE` (assinatura não confere).
403`LAN-403-IP` (IP não aprovado), `LAN-403-SUSPENDED-IP`/`-CONTRACT`/`-MANUAL`/`-DELINQUENCY` (integração suspensa — `suspension_reasons` no corpo), `LAN-403-SERVICE-DISABLED` (serviço indisponível para clientes externos; rota de arquivos chamada por integração sem assinatura ativa do serviço 60; ou `POST /v1/consultas` chamado por uma integração **dedicada ao Arquivo de Tabela de Preços** — ela não realiza consultas: use `GET /v1/files`).
404Arquivo não encontrado ou não publicado (`LAN-404-FILE`).
429Limite de requisições do serviço (`LAN-429`). Não cobrada.

Códigos de erro (tabela fechada)

Formato RFC 9457: type = https://api.lanet.com.br/errors/<código em minúsculas>, title/detail em português, code desta tabela e request_id (igual ao header X-Lanet-Request-Id).

CódigoHTTPSignificado
LAN-400400Requisição inválida
LAN-400-IDEMPOTENCY-KEY-REQUIRED400Idempotency-Key obrigatório em POST
LAN-401401Headers de autenticação ausentes ou malformados
LAN-401-KEY401Credencial desconhecida, revogada ou fora da graça
LAN-401-TIMESTAMP401Timestamp fora da janela de ±300 s
LAN-401-SIGNATURE401Assinatura HMAC não confere
LAN-402-LIMIT402Teto diário de gasto atingido
LAN-402-CREDIT-LIMIT402Limite de crédito atingido
LAN-403403Acesso negado
LAN-403-IP403IP de origem não aprovado
LAN-403-SUSPENDED-IP403Integração suspensa: nenhum IP aprovado ao fim do aprendizado
LAN-403-SUSPENDED-CONTRACT403Integração suspensa: contrato pendente
LAN-403-SUSPENDED-MANUAL403Integração suspensa manualmente
LAN-403-SUSPENDED-DELINQUENCY403Integração suspensa: pendência financeira
LAN-403-SERVICE-DISABLED403Serviço indisponível para clientes externos
LAN-404404Recurso não encontrado
LAN-404-SERVICE404Código de serviço inexistente
LAN-404-CONSULTA404Consulta não encontrada para esta integração
LAN-404-FILE404Arquivo não encontrado ou não publicado (Arquivo de Tabela de Preços)
LAN-405405Método não permitido
LAN-409409Conflito
LAN-409-IDEMPOTENCY-IN-PROGRESS409Mesma Idempotency-Key ainda em processamento
LAN-413413Corpo acima de 8 KB
LAN-415415Use application/json
LAN-422422Conteúdo não processável
LAN-422-PARAMETERS422Parâmetros inválidos para o serviço (errors[])
LAN-422-FORMAT422Formato não permitido para a integração
LAN-422-IDEMPOTENCY-REUSE422Idempotency-Key reutilizada com corpo diferente
LAN-422-PRICING-REQUIRED422Serviço sem preço vigente no seu contrato — nada é processado nem cobrado
LAN-429429Limite de requisições excedido (Retry-After)
LAN-500500Erro interno (informe o request_id)
LAN-502-UPSTREAM502Falha ao obter os dados — não cobrada
LAN-503503Serviço indisponível
LAN-503-UPSTREAM-BUSY503Capacidade temporariamente esgotada — não cobrada
LAN-504-UPSTREAM-TIMEOUT504Tempo limite na origem — não cobrada

Recursos

NovaConsulta

CampoTipoObrig.Descrição e regras
queryintegerSimCódigo do serviço (20 e 60 não são solicitados por este endpoint). 70 = dados do veículo + valor de referência de tabela de preços; 90 = pacote 70 + 50. 10 | 30 | 40 | 50 | 70 | 90
parametrosParametrosDebitos|ParametrosPlacaSimDepende de query (ver schemas por serviço).
formatostringNãopdf só em integrações com formato PDF habilitado. json | pdf · padrão: "json"
callbackstring (uri)NãoURL https: pública para receber consulta.concluida|falhou desta consulta (além do webhook da integração, se houver).

Consulta

CampoTipoObrig.Descrição e regras
idUlidSim
queryintegerSim10 | 30 | 40 | 50 | 70 | 90
servicostringSimex.: "Consulta Veicular Completa"
statusStatusConsultaSim
modostringSimlive | test
formatostringSimjson | pdf
parametrosobjectSim
encontradoboolean | nullSimfalse quando a origem não tem registro para os parâmetros (cobrada mesmo assim); null enquanto processa ou se falhou.
dadosDadosDebitos|DadosVeiculoCompleto|DadosProprietario|DadosFichaTecnica|DadosVeiculoReferencia|DadosPacoteVeiculo|nullSim
secoes_indisponiveisarray<string>SimSeções não obtidas (status parcial).
laudoobject | nullSimLaudo em PDF (formato=pdf, integrações com formato PDF): URL pré-assinada válida por 5 minutos — peça o recurso de novo (GET /v1/consultas/{id}) para obter uma URL nova. null em json, enquanto processa ou se falhou.
url
string (uri)
expira_em
string (date-time)
erroobject | nullSim
code
string
title
string
detail
string
cobradabooleanSim
criada_emstring (date-time)Sim
concluida_emstring | null (date-time)Sim
request_idUlidSim

Evento

Sem redirecionamentos: respostas 3xx são tratadas como falha

A Lanet não segue redirecionamentos ao entregar eventos ao seu endpoint: qualquer resposta 3xx conta como falha de entrega (entra na escada de retentativas — 1 min, 5 min, 30 min, 2 h e 12 h — e, após 24 h de falhas, o endpoint é marcado como failing). Responda 2xx diretamente na URL cadastrada, com https, host público e sem redirecionar para outra URL.

O mesmo vale para o evento integracao.verificacao: o desafio precisa ser respondido em 2xx na própria URL, em até 10 s.

CampoTipoObrig.Descrição e regras
idUlidSim
tipoTipoEventoSim
criado_emstring (date-time)Sim
dadosobjectSimPara consulta.*, o recurso Consulta; para integracao.ip_detectado, {ip, estado, detectado_em}; para arquivo_tabela_precos.*, EventoArquivoTabelaPrecos.
entregaobject | nullSimnull para integrações sem webhook.
status
string · `aguardando_verificacao` = o endpoint de webhook ainda não respondeu ao desafio de verificação (nenhuma tentativa é consumida; a entrega sai assim que o endpoint for verificado). · aguardando_verificacao | pendente | entregue | falhou | descartado
tentativas
integer · Tentativas da escada atual; um reprocessamento pela Lanet reinicia a contagem.
ultima_tentativa_em
string | null (date-time)
proxima_tentativa_em
string | null (date-time)

ArquivoTabelaPrecos

Arquivo mensal publicado (formato Lanet .xlsx).

CampoTipoObrig.Descrição e regras
idUlidSim
mes_referenciaMesReferenciaSim
versaointegerSimVersão dentro do mês (republicações incrementam). intervalo 1–∞
statusstringSimpublicado = versão vigente do mês; substituido = há versão mais nova (o arquivo continua disponível). publicado | substituido
nomestringSimex.: "lanet-tabela-precos-2026-08-v1.xlsx"
tamanho_bytesinteger (int64)Sim
sha256stringSimSHA-256 (hex) do arquivo .xlsx — confira após o download. padrão ^[0-9a-f]{64}$
sha256_tabelaSha256TabelaNão
codigo_verificacaoCodigoVerificacaoNão
linhasintegerSimLinhas de dados na aba Tabela.
publicado_emstring (date-time)Sim
downloadArquivoTabelaPrecosDownloadSim

Problem

CampoTipoObrig.Descrição e regras
typestring (uri)Sim
titlestringSim
statusintegerSim
detailstringSim
codestringSimLAN-400 | LAN-400-IDEMPOTENCY-KEY-REQUIRED | LAN-401 | LAN-401-KEY | LAN-401-TIMESTAMP | LAN-401-SIGNATURE | LAN-402-LIMIT | LAN-402-CREDIT-LIMIT | LAN-403 | LAN-403-IP | LAN-403-SUSPENDED-IP | LAN-403-SUSPENDED-CONTRACT | LAN-403-SUSPENDED-MANUAL | LAN-403-SUSPENDED-DELINQUENCY | LAN-403-SERVICE-DISABLED | LAN-404 | LAN-404-SERVICE | LAN-404-CONSULTA | LAN-404-FILE | LAN-405 | LAN-409 | LAN-409-IDEMPOTENCY-IN-PROGRESS | LAN-413 | LAN-415 | LAN-422 | LAN-422-PARAMETERS | LAN-422-FORMAT | LAN-422-IDEMPOTENCY-REUSE | LAN-422-PRICING-REQUIRED | LAN-429 | LAN-500 | LAN-502-UPSTREAM | LAN-503 | LAN-503-UPSTREAM-BUSY | LAN-504-UPSTREAM-TIMEOUT
request_idUlidSim
consulta_idUlidNãoPresente quando a consulta chegou a ser registrada (ex.: 502/504).
errorsarray<object>Não
path
string
message
string
suspension_reasonsarray<string>Não
service_codeintegerNãoServiço da requisição recusada (ex.: LAN-422-PRICING-REQUIRED).

Exemplo: consulta concluída

200 OK
{
  "id": "01J9Z4A0V5K0Y9Q0Z6X7K8M2R0",
  "query": 30,
  "servico": "Consulta Veicular Completa",
  "status": "concluida",
  "modo": "live",
  "formato": "json",
  "parametros": {
    "placa": "ABC1D23"
  },
  "encontrado": true,
  "dados": {
    "veiculo": {
      "placa": "ABC1D23",
      "renavam": "00123456789",
      "chassi": "9BD00000000000000",
      "marca": "FIAT",
      "modelo": "ARGO DRIVE 1.0",
      "versao": null,
      "ano_fabricacao": 2020,
      "ano_modelo": 2021,
      "cor": "BRANCA",
      "combustivel": "FLEX",
      "municipio": "FLORIANOPOLIS",
      "uf": "SC",
      "categoria": "PARTICULAR",
      "tipo": "AUTOMOVEL",
      "especie": "PASSAGEIRO",
      "procedencia": "NACIONAL",
      "situacao": "regular"
    },
    "restricoes": [],
    "gravame": null,
    "roubo_furto": {
      "indicio": false,
      "ocorrencias": []
    },
    "leilao": {
      "indicio": false,
      "registros": []
    },
    "sinistro": {
      "indicio": false,
      "registros": []
    },
    "historico": {
      "proprietarios": 2,
      "ultimo_licenciamento": 2026
    },
    "referencia_mercado": {
      "codigo": "001523-4",
      "valor_cents": 6890000,
      "mes_referencia": "2026-09"
    }
  },
  "secoes_indisponiveis": [],
  "laudo": null,
  "erro": null,
  "cobrada": true,
  "criada_em": "2026-09-07T20:59:10.512Z",
  "concluida_em": "2026-09-07T20:59:12.345Z",
  "request_id": "01J9Z4A0V5K0Y9Q0Z6X7K8M2R0"
}

Exemplo: consulta do serviço 70 (dados do veículo + valor de referência) concluída

Uma consulta síncrona por placa; o dados traz veiculo e referencia (valor de referência de tabela de preços, com competência, código e histórico). Ver o schema do serviço 70.

200 OK
{
  "id": "01J9Z4A0V5K0Y9Q0Z6X7K8M2R3",
  "query": 70,
  "servico": "Dados do Veículo + valor de referência de tabela de preços (leitura de placa)",
  "status": "concluida",
  "modo": "live",
  "formato": "json",
  "parametros": {
    "placa": "ABC1D23"
  },
  "encontrado": true,
  "dados": {
    "veiculo": {
      "placa": "ABC1D23",
      "renavam": null,
      "chassi": "9BD00000000000000",
      "marca": "MARCA EXEMPLO",
      "modelo": "MODELO EXEMPLO 1.0",
      "versao": "DRIVE 1.0 6V FLEX",
      "ano_fabricacao": 2020,
      "ano_modelo": 2021,
      "cor": "BRANCA",
      "combustivel": "FLEX",
      "municipio": null,
      "uf": null,
      "tipo": "AUTOMOVEL",
      "especie": "PASSAGEIRO",
      "carroceria": "HATCH",
      "portas": 4,
      "eixos": 2,
      "motor": {
        "potencia_cv": 77,
        "cilindradas_cm3": 999,
        "tipo": "3 cilindros em linha",
        "numero": "MTR0004321"
      },
      "cambio": "manual",
      "tracao": "dianteira",
      "pbt": 1450,
      "capacidade_maxima_tracao": 1450,
      "capacidade_passageiros": 5,
      "capacidade_carga": null,
      "procedencia": "NACIONAL",
      "pais": "BRASIL",
      "local_fabricacao": "Betim / MG",
      "categoria": "PARTICULAR"
    },
    "referencia": {
      "codigo_referencia": "001523-4",
      "competencia": "2026-08",
      "valor_referencia_cents": 6890000,
      "observacao": null,
      "versoes": [
        {
          "codigo_referencia": "001523-4",
          "marca": "Marca Exemplo",
          "modelo": "Modelo Exemplo",
          "versao": "DRIVE 1.0 6V FLEX",
          "combustivel": "FLEX",
          "ano_modelo": 2021,
          "valor_cents": 6890000,
          "historico": [
            {
              "competencia": "2026-06",
              "valor_cents": 6931000,
              "previsto": false
            },
            {
              "competencia": "2026-07",
              "valor_cents": 6904000,
              "previsto": false
            },
            {
              "competencia": "2026-08",
              "valor_cents": 6890000,
              "previsto": false
            },
            {
              "competencia": "2026-09",
              "valor_cents": 6875000,
              "previsto": true
            }
          ]
        }
      ],
      "candidatos": [
        {
          "codigo_referencia": "001523-4",
          "marca": "Marca Exemplo",
          "modelo": "Modelo Exemplo 4P (2020 => 2023)",
          "versao": "Drive 1.0 6v Flex"
        }
      ]
    }
  },
  "secoes_indisponiveis": [],
  "laudo": null,
  "erro": null,
  "cobrada": true,
  "criada_em": "2026-09-11T12:10:00.100Z",
  "concluida_em": "2026-09-11T12:10:09.900Z",
  "request_id": "01J9Z4A0V5K0Y9Q0Z6X7K8M2R3"
}

Exemplo: consulta do pacote (query 90) concluída

Duas consultas na origem de dados em uma só chamada e uma cobrança; o dados traz as seções dos serviços 70 e 50 unidas — inclusive referencia (valor de referência de tabela de preços). Ver o schema do pacote.

200 OK
{
  "id": "01J9Z4A0V5K0Y9Q0Z6X7K8M2R2",
  "query": 90,
  "servico": "Dados do Veículo + Ficha Técnica + Valor de Referência de Tabela de Preços",
  "status": "concluida",
  "modo": "live",
  "formato": "json",
  "parametros": {
    "placa": "ABC1D23"
  },
  "encontrado": true,
  "dados": {
    "veiculo": {
      "placa": "ABC1D23",
      "renavam": null,
      "chassi": "9BD00000000000000",
      "marca": "MARCA EXEMPLO",
      "modelo": "MODELO EXEMPLO 1.0",
      "versao": "DRIVE 1.0 6V FLEX",
      "ano_fabricacao": 2020,
      "ano_modelo": 2021,
      "cor": "BRANCA",
      "combustivel": "FLEX",
      "municipio": null,
      "uf": null,
      "tipo": "AUTOMOVEL",
      "especie": "PASSAGEIRO",
      "carroceria": "HATCH",
      "portas": 4,
      "eixos": 2,
      "motor": {
        "potencia_cv": 77,
        "cilindradas_cm3": 999,
        "tipo": "3 cilindros em linha",
        "numero": "MTR0004321"
      },
      "cambio": "manual",
      "tracao": "dianteira",
      "pbt": 1450,
      "capacidade_maxima_tracao": 1450,
      "capacidade_passageiros": 5,
      "capacidade_carga": null,
      "procedencia": "NACIONAL",
      "pais": "BRASIL",
      "local_fabricacao": "Betim / MG",
      "categoria": "PARTICULAR"
    },
    "referencia": {
      "codigo_referencia": "001523-4",
      "competencia": "2026-08",
      "valor_referencia_cents": 6890000,
      "observacao": null,
      "versoes": [
        {
          "codigo_referencia": "001523-4",
          "marca": "Marca Exemplo",
          "modelo": "Modelo Exemplo",
          "versao": "DRIVE 1.0 6V FLEX",
          "combustivel": "FLEX",
          "ano_modelo": 2021,
          "valor_cents": 6890000,
          "historico": [
            {
              "competencia": "2026-07",
              "valor_cents": 6904000,
              "previsto": false
            },
            {
              "competencia": "2026-08",
              "valor_cents": 6890000,
              "previsto": false
            }
          ]
        }
      ],
      "candidatos": [
        {
          "codigo_referencia": "001523-4",
          "marca": "Marca Exemplo",
          "modelo": "Modelo Exemplo 4P (2020 => 2023)",
          "versao": "Drive 1.0 6v Flex"
        }
      ]
    },
    "ficha_tecnica": {
      "motor": {
        "cilindradas_cm3": 999,
        "potencia_cv": 77,
        "torque_kgfm": 10.9,
        "cilindros": 3,
        "valvulas": 12,
        "alimentacao": "injeção eletrônica",
        "combustivel": "FLEX"
      },
      "cambio": {
        "tipo": "Manual",
        "marchas": 5
      },
      "tracao": "Dianteira",
      "carroceria": {
        "tipo": "Hatch",
        "portas": 4,
        "lugares": 5
      },
      "dimensoes_mm": {
        "comprimento": 3998,
        "largura": 1724,
        "altura": 1507,
        "entre_eixos": 2521
      },
      "peso_kg": 1035,
      "tanque_litros": 48,
      "porta_malas_litros": 300,
      "desempenho": {
        "velocidade_maxima_kmh": 168,
        "aceleracao_0_100_s": 13.1
      },
      "consumo_kml": {
        "urbano": 9.4,
        "rodoviario": 10.6
      }
    },
    "equipamentos": [
      "ar-condicionado",
      "direção elétrica",
      "airbag duplo",
      "freios ABS"
    ]
  },
  "secoes_indisponiveis": [],
  "laudo": null,
  "erro": null,
  "cobrada": true,
  "criada_em": "2026-09-10T12:10:00.100Z",
  "concluida_em": "2026-09-10T12:10:09.900Z",
  "request_id": "01J9Z4A0V5K0Y9Q0Z6X7K8M2R2"
}