Endpoint: consulta vehicular por VIN
Devuelve la misma ficha del RUNT que la consulta por placa —datos generales y técnicos, histórico de SOAT y tecnomecánica, pólizas, garantías, limitaciones y solicitudes— pero entrando por el VIN y sin el documento del propietario. Es la vía cuando tienes el VIN o el número de chasis pero no la cédula del dueño, y de paso resuelve la placa del vehículo.
La MISMA ficha del RUNT que `/api/consulta` —informacionGeneral, datosTecnicos, histórico completo de SOAT y tecnomecánica, pólizas, solicitudes, garantías, limitaciones y normalización— pero entrando por VIN en vez de placa, y **sin documento del propietario**. Úsalo cuando tengas el VIN (o el número de chasis) pero no la cédula del dueño: la consulta por placa exige que el documento sea el del propietario ACTIVO y falla si no coincide. La respuesta trae la placa en `data.plate`, así que también sirve de puente VIN → placa. Único campo que cambia frente a `/api/consulta`: `data.documentNumber` viene vacío, porque no se pidió.
Cuerpo de la solicitud
{
"vin": "9GAJC6915FB040270"
}| Campo | Tipo | Qué es |
|---|---|---|
| vinobligatorio | string | VIN del vehículo (11–17 caracteres, sin I, O ni Q). Alias aceptado: `chasis` — en la mayoría de vehículos el RUNT registra el mismo valor en VIN y número de chasis. |
| refresh | boolean | Ignora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no). |
Ejemplos por lenguaje
curl -X POST 'https://placapi.com/api/consulta-por-vin' \
-H 'x-api-key: pk_live_TU_CLAVE' \
-H 'content-type: application/json' \
-d '{"vin":"9GAJC6915FB040270"}'const res = await fetch("https://placapi.com/api/consulta-por-vin", {
method: "POST",
headers: {
"x-api-key": "pk_live_TU_CLAVE",
"content-type": "application/json",
},
body: JSON.stringify({"vin":"9GAJC6915FB040270"}),
});
const data = await res.json();import requests
res = requests.post(
"https://placapi.com/api/consulta-por-vin",
headers={"x-api-key": "pk_live_TU_CLAVE"},
json={"vin":"9GAJC6915FB040270"},
)
data = res.json()Respuesta exitosa
{
"data": {
"documentNumber": "",
"plate": "ABC123",
"vin": "9GAJC6915FB040270",
"informacionGeneral": {
"capacidadCarga": null,
"cilindraje": "2000",
"claseVehiculo": "CAMIONETA",
"clasificacion": "VEHICULO PARTICULAR",
"color": "ROJO",
"diasMatriculado": "1227",
"esRegrabadoChasis": "NO",
"esRegrabadoMotor": "NO",
"esRegrabadoSerie": "NO",
"esRegrabadoVin": "NO",
"estadoDelVehiculo": "ACTIVO",
"fechaExpedLTImportacion": "",
"fechaMatricula": "15/03/2023",
"fechaVenciLTImportacion": "",
"idTipoServicio": "1",
"linea": "CX-30",
"marca": "MAZDA",
"modelo": "2023",
"mostrarSolicitudes": "NO",
"noChasis": "9GAJC6915FB040270",
"noEjes": "2",
"noIdentificacion": null,
"noLicenciaTransito": "12345678",
"noMotor": "MTR0000001",
"noPlaca": "ABC123",
"noSerie": "9GAJC6915FB040270",
"noVin": "9GAJC6915FB040270",
"nombrePais": null,
"organismoTransito": "SECRETARIA DISTRITAL DE MOVILIDAD DE BOGOTA",
"pasajerosSentados": "5",
"pasajerosTotal": null,
"pesoBruto": "1650",
"prendas": "NO",
"puertas": "5",
"repotenciado": "NO",
"seguridadEstado": "NO",
"subpartida": null,
"tarjetaServicio": "NO",
"tieneGravamenes": "NO",
"tieneLTImportacion": false,
"tipoCarroceria": "WAGON",
"tipoCombustible": "GASOLINA",
"tipoMaquinaria": null,
"tipoServicio": "Particular",
"validacionDIAN": "Exitoso",
"vehiculoEnsenanza": "NO",
"verValidaDIAN": true
},
"datosTecnicos": {
"capacidadCarga": null,
"pesoBrutoVehicular": null,
"noEjes": null,
"noLlantas": null,
"alto": null,
"ancho": null,
"largo": null,
"pasajerosTotal": null,
"pasajerosSentados": null,
"rodaje": null,
"peso": null
},
"soat": [
{
"entidadExpideSoat": "SBS SEGUROS",
"estado": "VIGENTE",
"estadoSoat": "VIGENTE",
"fechaExpediSoat": "20/09/2025",
"fechaExpedicion": "20/09/2025",
"fechaVencimiento": "19/09/2026",
"fechaVigencia": "20/09/2025",
"noPoliza": "1508006948335000",
"nombrePais": null,
"origen": "EXPEDICION",
"placa": "ABC123",
"tipoTarifa": "TARIFA PLENA"
}
],
"tecnoMecanica": [
{
"cdaExpide": "CDA FONTIBON S.A.S",
"estado": "APROBADA",
"fechaExpedicion": "22/09/2025",
"fechaVencimiento": "22/09/2026",
"informacionConsistente": "SI",
"nroCertificado": "189733821",
"numeroPlaca": "ABC123",
"tipoRevision": "REVISION PERIODICA",
"url": "d4ef5ac5-6c14-4185-b382-98a204ac6fa7",
"vigente": "SI"
}
],
"polizasResponsabilidadCivil": [],
"tarjetaOperacion": null,
"informacionBlindaje": {
"autorizacion": null,
"blindado": null,
"fechaBlindaje": null,
"fechaDesblindaje": null,
"fechaExpedicionCertificado": null,
"fechaExpedicionCertificadoFormatoWS": null,
"idDocumentoCertificadoBlindaje": null,
"nivelBlindaje": null,
"nivelBlindajeNumero": null,
"numeroResolucion": null,
"tipoBlindajeNombre": null
},
"solicitudes": [],
"garantiasMobiliarias": [],
"garantiasFavorDe": [],
"limitacionPropiedad": [],
"normalizacionSaneamiento": []
},
"mode": "live",
"fetchedAt": "2026-07-24T15:04:05.000Z"
}Errores y cobro
Cuesta 1 crédito cuando devuelve datos. Códigos posibles: 400 401 402 404 429 500 502 — qué significa cada uno, cuál reintentar y cuál cobra, en errores y rate limits. Autenticación por x-api-key: cómo generar la clave.
Última revisión: 31 de julio de 2026 · PlacApi opera desde Colombia. PlacApi no es una entidad oficial del Gobierno.