Primeira carga da Tabela FIPE em andamento. A consulta por catálogo entra no ar quando o mês for validado e publicado. A API já responde — veja a documentação.

Documentação

API REST, respostas em JSON, autenticação por chave. Base: https://api.valordeveiculo.com

Autenticação

Envie a chave no header X-API-Key. O formato Authorization: Bearer <chave> também funciona.

curl -H "X-API-Key: lx_live_..." \
  'https://api.valordeveiculo.com/v1/prices/001124-0?model_year=1987'

Endpoints

Gerado a partir do OpenAPI da versão em produção.

GET /v1/account/access IPs e domínios autorizados
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
PUT /v1/account/access Definir IPs e domínios autorizados
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
GET /v1/account/activity Consumo e erros por dia

Trinta dias por dia e por classe de status. A classe importa tanto quanto o total: 4xx concentrado num dia é integração quebrada, e o cliente descobria isso pela fatura em vez de pela tela.

ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
POST /v1/account/credits Comprar créditos avulsos
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
GET /v1/account/invoices Minhas faturas

Faturas do cliente autenticado, com o Pix copia e cola quando em aberto.

ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
POST /v1/account/invoices/{invoice_id}/pix Estado do Pix desta fatura

Devolve o Pix se ele já existe; senão, diz em quantos segundos tentar. A API **não** fala com o PSP: o container dela não está na rede com saída para a internet, de propósito -- é o que garante que uma falha aqui não vira uma chamada externa com a credencial de cobrança. Quem emite é o `billing-loop`, que tem egresso. O que fazia a espera doer não era a arquitetura, era o intervalo: 5 minutos entre passagens numa tela de pagamento. O loop passou a varrer as faturas em `draft` a cada 20 segundos (a consulta é um no-op quando não há nenhuma), então este endpoint só precisa dizer "volte a perguntar".

ParâmetroOndeObrigatórioDescrição
invoice_id path sim
X-API-Key header não
authorization header não
GET /v1/account/keys Chaves desta conta

Prefixo, não a chave: o segredo existiu uma vez, na emissão.

ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
POST /v1/account/keys Emitir outra chave

Emitir a nova ANTES de revogar a velha é o que torna a rotação segura: o cliente troca a chave no servidor dele com as duas valendo e só então revoga, sem janela de indisponibilidade.

ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
POST /v1/account/keys/{key_id}/revoke Revogar uma chave
ParâmetroOndeObrigatórioDescrição
key_id path sim
X-API-Key header não
authorization header não
GET /v1/account/options Pacotes e planos disponíveis para esta conta

O que esta conta pode contratar, com o preço por mil de cada opção. Devolve os dois caminhos lado a lado de propósito: sem o preço por mil, o cliente não tem como ver que comprar avulso todo mês custa mais que subir de plano, e a decisão vira palpite.

ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
GET /v1/account/profile Dados da conta
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
PATCH /v1/account/profile Alterar nome ou e-mail
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
POST /v1/account/upgrade Trocar de plano
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
GET /v1/account/usage Consumo do mês
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
GET /v1/models/{model_id}/years Anos-modelo disponíveis
ParâmetroOndeObrigatórioDescrição
model_id path sim Identificador interno
table query não Tabela de referência: código ('337') ou mês ('2026-09'). Padrão: a mais recente.
X-API-Key header não
authorization header não
GET /v1/prices/{fipe_code} Preço por código FIPE

Um código FIPE cobre vários anos-modelo do mesmo veículo; sem filtro, devolve todos os da tabela.

ParâmetroOndeObrigatórioDescrição
fipe_code path sim Código FIPE do veículo, ex. '001124-0'
model_year query não Filtra por ano do modelo; 32000 para zero km
fuel query não Filtra por combustível: gasoline, alcohol ou diesel
table query não Tabela de referência: código ('337') ou mês ('2026-09'). Padrão: a mais recente.
X-API-Key header não
authorization header não
GET /v1/prices/{fipe_code}/history Série histórica de preço

Variação mês a mês dentro da janela de histórico do plano.

ParâmetroOndeObrigatórioDescrição
fipe_code path sim Código FIPE do veículo, ex. '001124-0'
model_year query sim Ano do modelo (obrigatório)
fuel query não gasoline, alcohol ou diesel
X-API-Key header não
authorization header não
POST /v1/signup Criar conta e emitir a primeira chave

Sem parâmetros.

GET /v1/tables Tabelas disponíveis
ParâmetroOndeObrigatórioDescrição
X-API-Key header não
authorization header não
GET /v1/{vehicle_type}/brands Marcas
ParâmetroOndeObrigatórioDescrição
vehicle_type path sim Tipo de veículo
table query não Tabela de referência: código ('337') ou mês ('2026-09'). Padrão: a mais recente.
X-API-Key header não
authorization header não
GET /v1/{vehicle_type}/brands/{brand_id}/models Modelos de uma marca
ParâmetroOndeObrigatórioDescrição
brand_id path sim Identificador interno
vehicle_type path sim Tipo de veículo
table query não Tabela de referência: código ('337') ou mês ('2026-09'). Padrão: a mais recente.
X-API-Key header não
authorization header não

Headers de cota

Toda resposta autenticada traz onde você está.

HeaderSignificado
X-Quota-LimitCota mensal do plano, ou unlimited
X-Quota-UsedRequisições consumidas no mês
X-Quota-RemainingQuanto resta
X-Quota-ResetSegundos até a virada do mês
X-RateLimit-LimitRequisições por segundo do plano

Erros

Sempre um envelope error com code estável — trate pelo code, não pela mensagem.

{
  "error": {
    "code": "plan_history_limit",
    "message": "a tabela 2024-01 está fora da janela de histórico do seu plano",
    "docs": "https://valordeveiculo.com/docs/erros#plan_history_limit",
    "requested_table": "2024-01",
    "oldest_available": "2026-07"
  }
}
StatuscodeQuando acontece
401 missing_key Nenhuma chave enviada
401 invalid_key Chave inexistente, malformada ou revogada
403 client_inactive Conta ou plano desativado
402 quota_exceeded Cota mensal esgotada
402 plan_history_limit Mês pedido fora da janela do plano
429 rate_limited Acima do limite de requisições por segundo
404 not_found Veículo ou tabela inexistente
422 invalid_parameter Valor inválido em um parâmetro
503 no_published_data Nenhuma tabela publicada ainda

402 em vez de 404 quando o mês pedido existe mas está fora da janela do seu plano: o dado está lá, o plano não alcança.