Sobre esta API
Confere se o arquivo é um CRLV (Certificado de Registro e Licenciamento de Veículo), no formato digital ou impresso, e devolve RENAVAM, placa, chassi, exercício, anos de fabricação e modelo, marca, modelo, cor, combustível e o nome e CPF/CNPJ do proprietário.
Envie a imagem ou o PDF em file. conferencias diz se placa, RENAVAM, chassi e CPF/CNPJ fecham no formato e nos dígitos verificadores: false indica leitura ruim ou documento adulterado, e null, campo que não veio.
É leitura do documento enviado: não consulta a base do Detran nem a situação do veículo.
OCR com visão computacional · Atualização: tempo real
Requisição
POST /api/v1/oracle/document/crlvAutenticação HTTP Basic: public_key:secret_key em Base64. Guarde a chave secreta no servidor.
| Cabeçalho | Descrição |
|---|---|
AuthorizationObrigatório | Chave de API em Basic: public_key:secret_key em Base64. |
X-Project-IdOpcional | Projeto que recebe a chamada. Sem ele, vale o projeto padrão da conta. |
Idempotency-KeyOpcional | Repetir a mesma chave em até 24 horas devolve a resposta anterior, sem executar nem cobrar de novo. |
Parâmetros
| Campo | Tipo e local | Descrição |
|---|---|---|
fileObrigatório | filefile | Imagem, HEIC ou PDF do CRLV. |
curl --request POST 'https://api.apifordevs.com/api/v1/oracle/document/crlv' \
--user "afd_live_pk_...:$AFD_SECRET_KEY" \
--header "X-Project-Id: $AFD_PROJECT_ID" \
--form 'file=@./file.jpg'
import os
import requests
file = open("./file.jpg", "rb")
response = requests.request(
"POST",
"https://api.apifordevs.com/api/v1/oracle/document/crlv",
auth=("afd_live_pk_...", os.environ["AFD_SECRET_KEY"]),
headers={"X-Project-Id": os.environ["AFD_PROJECT_ID"]},
files={"file": file},
timeout=30,
)
response.raise_for_status()
print(response.json())
file.close()
import { readFile } from "node:fs/promises";
const form = new FormData();
form.append("file", new Blob([await readFile("./file.jpg")]), "file.jpg");
const response = await fetch("https://api.apifordevs.com/api/v1/oracle/document/crlv", {
method: "POST",
headers: {
Authorization: "Basic " + Buffer.from(
"afd_live_pk_...:" + process.env.AFD_SECRET_KEY
).toString("base64"),
"X-Project-Id": process.env.AFD_PROJECT_ID,
},
body: form,
signal: AbortSignal.timeout(30000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());
Campos de resposta
Campos e tipos publicados no catálogo desta API.
- Tipo de documento
document_typestring - Arquivo enviado
filenamestring - Parecer e dados do CRLV
validation_resultobject - Parecer da validação. Em faturamento, os meses vêm consolidados.
- Documento reconhecido
validation_result.is_validboolean - Tipo de documento
validation_result.tipo_documentostring - RENAVAM
validation_result.renavamstring - Placa
validation_result.placastring - Placa anterior / UF
validation_result.placa_anterior_ufstring - Exercício
validation_result.exerciciostring - Ano de fabricação
validation_result.ano_fabricacaostring - Ano-modelo
validation_result.ano_modelostring - Nº do CRV
validation_result.numero_crvstring
- Código de segurança do CLA
validation_result.codigo_seguranca_clastring - Marca / modelo / versão
validation_result.marca_modelo_versaostring - Espécie / tipo
validation_result.especie_tipostring - Chassi
validation_result.chassistring - Cor predominante
validation_result.cor_predominantestring - Combustível
validation_result.combustivelstring - Categoria
validation_result.categoriastring - Capacidade
validation_result.capacidadestring - Potência / cilindrada
validation_result.potencia_cilindradastring - Peso bruto total
validation_result.peso_bruto_totalstring - Motor
validation_result.motorstring - CMT
validation_result.cmtstring - Eixos
validation_result.eixosstring - Lotação
validation_result.lotacaostring - Carroceria
validation_result.carroceriastring - Proprietário
validation_result.nome_proprietariostring - CPF/CNPJ do proprietário
validation_result.cpf_cnpj_proprietariostring - Local de emissão
validation_result.local_emissaostring - Data de emissão
validation_result.data_emissaostring - Observações
validation_result.observacoesstring - Parecer
validation_result.descricaostring - Conferências de formato e dígito
validation_result.conferenciasobject
Exemplo de resposta
{
"success": true,
"code": 200,
"code_message": "A requisição foi processada com sucesso.",
"errors": [],
"header": null,
"data_count": 1,
"data": [
{
"document_type": "CRLV",
"filename": "crlv-e.pdf",
"validation_result": {
"is_valid": true,
"tipo_documento": "CRLV-e",
"renavam": "01234567897",
"placa": "ABC1D23",
"placa_anterior_uf": "ABC1234/SP",
"exercicio": "2026",
"ano_fabricacao": "2019",
"ano_modelo": "2020",
"numero_crv": "012345678901",
"codigo_seguranca_cla": "01234567890",
"marca_modelo_versao": "FIAT/ARGO DRIVE 1.0",
"especie_tipo": "PASSAGEIRO AUTOMOVEL",
"chassi": "9BD358A1NLY123456",
"cor_predominante": "PRATA",
"combustivel": "ALCOOL/GASOLINA",
"categoria": "PARTICULAR",
"capacidade": "",
"potencia_cilindrada": "77CV/999",
"peso_bruto_total": "1.5",
"motor": "",
"cmt": "1.6",
"eixos": "",
"lotacao": "05P",
"carroceria": "NAO APLICAVEL",
"nome_proprietario": "FULANO DE TAL DA SILVA",
"cpf_cnpj_proprietario": "529.982.247-25",
"local_emissao": "SAO PAULO SP",
"data_emissao": "05/01/2026",
"observacoes": "SEM OBSERVACOES",
"descricao": "CRLV-e do exercício 2026, legível",
"conferencias": {
"placa": true,
"renavam": true,
"chassi": true,
"cpf_cnpj": true
}
}
}
]
}
Respostas e cobrança
| HTTP | Descrição | Cobrança |
|---|---|---|
200 | Sucesso. | Sujeita à cobrança |
400
| Arquivo ou parâmetro que a rota não consegue processar, projeto inválido, ou dev_mode=true com chave de produção. | Sem cobrança |
401
| Credencial ausente, inválida ou revogada. | Sem cobrança |
402
| Saldo insuficiente ou limite de gasto diário atingido. | Sem cobrança |
403
| E-mail da conta não verificado, chave sem escopo para o serviço, IP fora da allowlist do projeto ou chave de teste sem dev_mode=true. | Sem cobrança |
409
| Requisição com a mesma Idempotency-Key ainda em andamento. | Sem cobrança |
413
| Arquivo acima de 20 MB. | Sem cobrança |
422
| Parâmetro obrigatório ausente ou fora do formato, ou Idempotency-Key repetida com outro conteúdo. | Sem cobrança |
429
| Limite de requisições por minuto da chave atingido. | Sem cobrança |
500
| Falha interna. | Sem cobrança |
503
| Serviço desativado ou temporariamente indisponível. | Sem cobrança |
Casos de uso
Cotação e contratação de seguro
Preencher placa, chassi e ano do veículo a partir do CRLV enviado pelo cliente.
Garantia de veículo em crédito
Conferir que o proprietário do CRLV é quem está pedindo o crédito, e que RENAVAM e chassi fecham nos dígitos.
Locação e frotas
Cadastrar o veículo a partir do documento, sem digitação.