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ção | HTTP | Cobra? |
|---|---|---|
| Veículo encontrado com valor FIPE | 200 | ✅ 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 encontrada | 404 veiculo_nao_encontrado | ❌ Não |
| Placa fora do padrão | 422 placa_invalida | ❌ Não |
| Serviço de placas fora do ar | 503 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).