API de Veículo por placa + FIPE

Marca, modelo, ano, combustível, categoria, UF e valor FIPE a partir da placa. Resposta na hora.

🚘
Veículo por placa + FIPECobra só quando a resposta traz valor FIPE. Placa não encontrada, fora do padrão ou serviço fora do ar não cobram.
R$ 0,12por consulta com FIPE
GET/v1/veiculos/{placa}

🚘 Veículo por placa + FIPE — GET /v1/veiculos/{placa}

Retorna marca, modelo, ano, combustível, categoria e o valor FIPE do veículo a partir da placa. Serve para preencher formulários, validar o carro antes de simular ou precificar. Resposta na hora, sem polling.

🧪 Testando? Com a chave de teste (cpk_test_…) a placa devolve um veículo de exemplo (sempre o mesmo pra mesma placa) e placas começando com ZZZ devolvem 404 — sem cobrar. Regras do sandbox →
GET /v1/veiculos/ABC1D23
Authorization: Bearer SUA_CHAVE_AQUI

{
  "placa": "ABC1D23",
  "encontrado": true,
  "veiculo": {
    "marca": "GM - Chevrolet",
    "modelo": "ONIX HATCH LT 1.0 8V FlexPower 5p Mec.",
    "ano_modelo": 2015,
    "ano_fabricacao": 2014,
    "combustivel": "flex",
    "categoria": "carro",
    "uf": "SP",
    "fipe_value": 43230.0,
    "codigo_fipe": "004424-5",
    "fipe_origem": "placa"
  },
  "fonte": "api",
  "valor_cobrado": 0.12,
  "saldo_reais": 132.48
}
SituaçãoHTTPCobra?
Veículo encontrado com valor FIPE200✅ R$ 0,12
Veículo encontrado, mas sem FIPE disponível (raro: modelos fora da tabela)200 com fipe_value: null❌ Não
Placa não encontrada404 veiculo_nao_encontrado❌ Não
Placa fora do padrão422 placa_invalida❌ Não
Serviço de placas fora do ar503 consulta_indisponivel❌ Não
Dicas. fipe_origem diz de onde veio o valor: placa (base do emplacamento) ou tabela_fipe (quando a base não trouxe o valor e resolvemos pela tabela FIPE com marca, modelo e ano). fonte: "cache" indica placa consultada recentemente (mesmo mês) — a resposta é a mesma e custa o mesmo. Vale o mesmo limite por minuto da sua conta. O resultado pode ir direto nos campos veiculo_* e fipe_value de uma simulação.

💻 Exemplos de código

cURL
Python
Node.js
curl https://cred-pro.com/v1/veiculos/ABC1D23 \
  -H "Authorization: Bearer SUA_CHAVE_AQUI"
import requests

CHAVE = "SUA_CHAVE_AQUI"
r = requests.get("https://cred-pro.com/v1/veiculos/ABC1D23",
                 headers={"Authorization": f"Bearer {CHAVE}"}, timeout=30)

if r.status_code == 200:
    v = r.json()["veiculo"]
    print(v["marca"], v["modelo"], v["ano_modelo"], "FIPE:", v["fipe_value"])
    print("cobrado:", r.json()["valor_cobrado"], "saldo:", r.json()["saldo_reais"])
elif r.status_code == 404:
    print("placa não encontrada (não cobra)")
else:
    print("erro", r.status_code, r.json()["detail"]["erro"]["codigo"])
const CHAVE = "SUA_CHAVE_AQUI";

const r = await fetch("https://cred-pro.com/v1/veiculos/ABC1D23", {
  headers: { Authorization: `Bearer ${CHAVE}` },
});
const body = await r.json();

if (r.ok) {
  const v = body.veiculo;
  console.log(v.marca, v.modelo, v.ano_modelo, "FIPE:", v.fipe_value);
  console.log("cobrado:", body.valor_cobrado, "saldo:", body.saldo_reais);
} else if (r.status === 404) {
  console.log("placa não encontrada (não cobra)");
} else {
  console.log("erro", r.status, body.detail.erro.codigo);
}
Combinando com a simulação. O retorno cabe direto no POST /v1/simulacoes: envie veiculo_marca, veiculo_modelo, veiculo_ano e fipe_value a partir de veiculo. Mas se você já tem a placa, é mais simples mandar só a placa na simulação — o servidor faz essa consulta por conta própria, sem cobrar a consulta de placa separadamente. Use este endpoint quando precisar do veículo antes de simular (formulário, precificação, validação).