API de Pesquisas veiculares

As mesmas pesquisas do painel da CredPro, por placa, a preço de atacado: gravame, roubo e furto, leilão com score e fotos, sinistro, Renajud e multas, recall, base estadual e nacional, check list, histórico de proprietários e a Pesquisa Completa. Resultado em JSON e em PDF.

🔎
Pesquisas veicularesCobra a soma dos itens na criação. Item que volta com erro do fornecedor é estornado automaticamente. Placa fora do padrão e saldo insuficiente não cobram.
a partir de R$ 0,90por item — preço de atacado
GET/v1/pesquisas/itens POST/v1/pesquisas GET/v1/pesquisas/{id} GET/v1/pesquisas/{id}/pdf

🧾 Catálogo e preços — GET /v1/pesquisas/itens

Lista os itens disponíveis com o preço que será cobrado (atacado). Consulte antes de montar o pedido: o catálogo cresce e os preços podem mudar — este endpoint é a fonte da verdade. Cada item diz se exige placa ou um campo extra (renavam, documento).

GET /v1/pesquisas/itens
Authorization: Bearer SUA_CHAVE_AQUI

{
  "itens": [
    {"codigo": "gravame", "nome": "Gravame", "preco": 3.00, "campos_extras": [], "placa_obrigatoria": true, "inclui": null,
     "descricao": "Verifica se o veículo possui financiamento ativo ou alienação fiduciária"},
    {"codigo": "leilao_completo", "nome": "Leilão Completo + Score + Sinistro", "preco": 11.00, "campos_extras": [], "placa_obrigatoria": true, "inclui": null, "descricao": "..."},
    {"codigo": "veiculos_cpf", "nome": "Veículos por CPF/CNPJ", "preco": 5.80, "campos_extras": ["documento"], "placa_obrigatoria": false, "inclui": null, "descricao": "..."},
    {"codigo": "pesquisa_completa", "nome": "Pesquisa Completa", "preco": 40.00, "campos_extras": [], "placa_obrigatoria": true,
     "inclui": ["bin_estadual", "bin_nacional", "gravame", "roubo_furto", "leilao_completo", "foto_leilao", "sinistro", "renajud", "recall", "check_list", "historico_proprietarios"],
     "descricao": "Tudo numa consulta: ..."}
  ],
  "saldo_reais": 132.48,
  "sandbox": false
}
CódigoO que trazExigePreço (atacado)
placa_basicaMarca, modelo, ano, cor, combustível, chassi, motor, RENAVAMplacaR$ 2,50
gravameFinanciamento ativo / alienação fiduciária: financeira, contrato, datasplacaR$ 3,00
roubo_furtoHistórico de roubo e furto com ocorrênciasplacaR$ 5,00
bin_nacionalBase nacional: cadastro, situação, restrições, faturado, proprietárioplacaR$ 2,00
bin_estadualBase estadual: débitos de IPVA/multas/licenciamento/DPVAT, financiamento, restrições, proprietárioplacaR$ 2,00
leilaoPassagem por leilão com lote, data, leiloeiro, comitente e score de danoplacaR$ 5,50
leilao_completoLeilão completo + score + aceitação de seguro + indício de sinistroplacaR$ 11,00
foto_leilaoFotos do veículo registradas no leilão (base64)placaR$ 14,40
sinistroIndício de sinistro (perda parcial ou total) em base de seguradorasplacaR$ 3,30
renajudRestrições judiciais + base nacional + multas Renainf + CSV numa resposta sóplacaR$ 4,10
renainfTodas as infrações do RENAINF: auto, data, órgão, descrição, valorplacaR$ 4,15
recallCampanhas de recall pendentesplacaR$ 0,90
certificadoCertificado de segurança veicular: BIN + Renajud + proprietário + CSV + RenainfplacaR$ 5,50
check_list19 verificações: ex-táxi, locadora, frota, viatura, acidentes, salvados, indenização integral, chassi adulterado, uso em crimes…placaR$ 3,30
proprietario_atualNome e CPF/CNPJ do proprietário atual + dados do veículoplacaR$ 0,90
historico_proprietariosTodas as transferências: data, nome, documento (CPF mascarado pela fonte, CNPJ completo), município/UFplacaR$ 6,00
veiculos_cpfFrota vinculada a um CPF ou CNPJ: placa, marca, modelo, RENAVAMdocumento (a placa é opcional)R$ 5,80
atpv_e2ª via da ATPV-e em PDF (dentro de dados.aux, base64)placa + renavamR$ 2,65
pesquisa_completaBundle com 11 itens (veja inclui); as fotos do leilão só são consultadas quando o leilão apontou passagemplacaR$ 40,00
Preços. A tabela acima é a de 16/09/2026; o valor vigente é sempre o de GET /v1/pesquisas/itens. Pesquisas são cobradas do mesmo saldo em reais das outras APIs.

🚀 Criar pesquisa — POST /v1/pesquisas

Uma placa, um ou mais itens. A soma dos itens é debitada na hora e a pesquisa entra em processamento (202): os fornecedores respondem em segundos, alguns em até ~2 minutos. Acompanhe em GET /v1/pesquisas/{id}.

POST /v1/pesquisas
Authorization: Bearer SUA_CHAVE_AQUI
Content-Type: application/json

{
  "placa": "ABC1D23",
  "itens": ["gravame", "roubo_furto", "leilao_completo"]
}

HTTP 202
{
  "pesquisa_id": 1842,
  "status": "processando",
  "placa": "ABC1D23",
  "itens": ["gravame", "roubo_furto", "leilao_completo"],
  "valor_cobrado": 19.00,
  "saldo_reais": 113.48,
  "consulte_em": "/v1/pesquisas/1842",
  "sandbox": false
}
CampoTipoObrigatórioObservação
placastringsim*ABC1234 ou ABC1D23. *Dispensada só quando todos os itens são por documento (veiculos_cpf).
itenslista de códigossimCódigos de GET /v1/pesquisas/itens. Repetidos são ignorados.
renavamstringse o item exigir9 a 11 dígitos (atpv_e).
documentostringse o item exigirCPF (11) ou CNPJ (14), com ou sem pontuação (veiculos_cpf).
SituaçãoHTTPCobra?
Pesquisa criada e em processamento202✅ soma dos itens
Item respondeu com erro do fornecedor (fora do ar, placa sem base)— (aparece em resultados[].erro)↩️ estornado no fim do processamento
Item desconhecido / campo extra faltando / placa fora do padrão422 item_invalido, renavam_obrigatorio, documento_obrigatorio, placa_obrigatoria, placa_invalida❌ Não
Saldo insuficiente402 saldo_insuficiente (traz necessario)❌ Não
Limite por minuto atingido429 limite_taxa❌ Não

📬 Consultar resultado — GET /v1/pesquisas/{id}

Faça polling a cada 3–5 s até status virar concluido. Cada entrada de resultados traz o item e o JSON bruto do fornecedor — exatamente o que o painel da CredPro renderiza — para você mostrar o que quiser. Quando um item não responde, erro vem preenchido e o valor dele já foi estornado.

GET /v1/pesquisas/1842
Authorization: Bearer SUA_CHAVE_AQUI

{
  "pesquisa_id": 1842,
  "status": "concluido",
  "placa": "ABC1D23",
  "itens": ["gravame", "roubo_furto", "leilao_completo"],
  "valor_cobrado": 19.00,
  "criado_em": "2026-09-16 18:40:12",
  "resultados": [
    {"item": "placa_basica", "erro": null, "dados": {"status": "sucesso", "dados": {"identificacao": {"placa": "ABC1D23", "chassi": "9BW..."}, "marca": {...}, "modelo": {...}}}},
    {"item": "gravame", "erro": null, "dados": {"status": "sucesso", "dados": {"VEICULAR": {"GRAVAME": {"OCORRENCIAS": []}}}}},
    {"item": "roubo_furto", "erro": null, "dados": {"status": "sucesso", "dados": {"VEICULAR": {"HISTORICO_ROUBO_FURTO": {"INDICADOR": {"HOUVE_DECLARACAO_DE_ROUBO_FURTO": "0"}, "OCORRENCIAS": []}}}}},
    {"item": "leilao_completo", "erro": null, "dados": {"VEICULAR": {"LEILAO_CONJUGADO": {"QUANTIDADE_OCORRENCIAS": "1", "OCORRENCIAS": [{"SCORE": {"PONTUACAO": "D", "ACEITACAO": "55"}, "OCORRENCIAS": [{"DATA_LEILAO": "28/11/2014", "LOTE": "168"}]}]}, "INDICIO_SINISTRO": {"EXISTE_OCORRENCIA": "1"}}}}
  ],
  "pdf": "/v1/pesquisas/1842/pdf",
  "sandbox": false
}
Onde olhar em cada item. Gravame: dados.dados.VEICULAR.GRAVAME.OCORRENCIAS (vazio = sem gravame). Roubo/furto: …HISTORICO_ROUBO_FURTO.INDICADOR.HOUVE_DECLARACAO_DE_ROUBO_FURTO ("1" = ocorrência). Leilão / leilão completo: dados.VEICULAR.LEILAO_CONJUGADO.QUANTIDADE_OCORRENCIAS e OCORRENCIAS[0].SCORE; sinistro no leilão completo em VEICULAR.INDICIO_SINISTRO.EXISTE_OCORRENCIA. Sinistro: VEICULAR.INDICIO_SINISTRO_CONJUGADO.OCORRENCIAS[].EXISTE_OCORRENCIA. Renajud: dados.dados.VEICULAR.RENAJUD.QUANTIDADE_OCORRENCIAS (+ RENAINF e BIN_NACIONAL na mesma resposta). Base estadual: VEICULAR.BIN_ESTADUAL.RESTRICOES.{IPVA,MULTAS,LICENCIAMENTO}.EXISTE_PENDENCIA. Check list: VEICULAR.CHECK_LIST_VEICULAR.<CATEGORIA>.QUANTIDADE_OCORRENCIAS. Recall: dados.msg quando não há campanha; lista quando há. Histórico de proprietários: dados.registros[]. Um item do bundle que aparece com placa_basica é o complemento gratuito usado pelo gravame.

📄 PDF — GET /v1/pesquisas/{id}/pdf

Depois de concluido, devolve o mesmo relatório em PDF que o lojista baixa no painel: cabeçalho, quadro de avisos (uma linha por item, verde/vermelho) e uma seção por item — com velocímetro de score no leilão e as fotos embutidas. Sem cobrança extra. Resposta é o arquivo (application/pdf).

🧪 Sandbox

Com a chave de teste (cpk_test_…) os mesmos endpoints devolvem resultados fictícios no mesmo formato, sem cobrar e sem chegar nos fornecedores. Regra: placa terminada em 9 devolve um veículo "com histórico" (gravame ativo, passagem por leilão com score D, indício de sinistro, IPVA em aberto, 1 multa, recall pendente); qualquer outra placa devolve tudo "nada consta". Regras gerais do sandbox →

💻 Exemplos de código

cURL
Python
Node.js
curl -X POST https://cred-pro.com/v1/pesquisas \
  -H "Authorization: Bearer SUA_CHAVE_AQUI" \
  -H "Content-Type: application/json" \
  -d '{"placa": "ABC1D23", "itens": ["gravame", "leilao_completo"]}'

# depois, até status = concluido:
curl https://cred-pro.com/v1/pesquisas/1842 -H "Authorization: Bearer SUA_CHAVE_AQUI"

# PDF:
curl -o pesquisa.pdf https://cred-pro.com/v1/pesquisas/1842/pdf -H "Authorization: Bearer SUA_CHAVE_AQUI"
import requests, time

CHAVE = "SUA_CHAVE_AQUI"
H = {"Authorization": f"Bearer {CHAVE}"}

r = requests.post("https://cred-pro.com/v1/pesquisas", headers=H, timeout=30,
                  json={"placa": "ABC1D23", "itens": ["gravame", "leilao_completo"]})
if r.status_code != 202:
    raise SystemExit(f"erro {r.status_code}: {r.json()['detail']['erro']}")
pid = r.json()["pesquisa_id"]
print("cobrado:", r.json()["valor_cobrado"])

while True:
    p = requests.get(f"https://cred-pro.com/v1/pesquisas/{pid}", headers=H, timeout=30).json()
    if p["status"] in ("concluido", "erro"):
        break
    time.sleep(4)

for res in p["resultados"]:
    print(res["item"], "erro:" if res["erro"] else "ok", res["erro"] or "")
gravame = next(x for x in p["resultados"] if x["item"] == "gravame")["dados"]
print("gravame ativo?", bool(gravame["dados"]["VEICULAR"]["GRAVAME"]["OCORRENCIAS"]))

pdf = requests.get(f"https://cred-pro.com/v1/pesquisas/{pid}/pdf", headers=H, timeout=60)
open(f"pesquisa_{pid}.pdf", "wb").write(pdf.content)
const CHAVE = "SUA_CHAVE_AQUI";
const H = { Authorization: `Bearer ${CHAVE}`, "Content-Type": "application/json" };

const r = await fetch("https://cred-pro.com/v1/pesquisas", {
  method: "POST", headers: H,
  body: JSON.stringify({ placa: "ABC1D23", itens: ["gravame", "leilao_completo"] }),
});
const criado = await r.json();
if (r.status !== 202) throw new Error(JSON.stringify(criado.detail.erro));

let p;
do {
  await new Promise(s => setTimeout(s, 4000));
  p = await (await fetch(`https://cred-pro.com/v1/pesquisas/${criado.pesquisa_id}`, { headers: H })).json();
} while (!["concluido", "erro"].includes(p.status));

for (const res of p.resultados) console.log(res.item, res.erro ? `erro: ${res.erro}` : "ok");
const gravame = p.resultados.find(x => x.item === "gravame").dados;
console.log("gravame ativo?", gravame.dados.VEICULAR.GRAVAME.OCORRENCIAS.length > 0);
Combinando. Use a consulta de placa + FIPE (R$ 0,12) para validar o carro antes, e a simulação bancária depois de conferir gravame e leilão — o fluxo completo de um lojista, na sua plataforma.