VIN Lookup API Documentation
Comprehensive documentation for integrating our vehicle data API with your applications
Introducción
La API de búsqueda de VIN de Autoref proporciona acceso a información completa del vehículo mediante la consulta de diferentes identificadores como VIN (Número de Identificación del Vehículo), números de homologación de tipo UE y códigos de homologación suizos.
Nuestra API está diseñada para integrarse perfectamente con sus aplicaciones, ofreciendo especificaciones técnicas detalladas, datos ambientales y documentación oficial del vehículo.
Características de la API
- ✓Búsquedas de vehículos basadas en VIN
- ✓Soporte para VIN antiguos (anteriores a 1981)
- ✓Búsquedas de homologación de tipo UE
- ✓Búsquedas de homologación suiza (código TG)
- ✓Especificaciones detalladas de vehículos
- ✓Soporte multilingüe
Primeros pasos
Autenticación
Para usar la API de Autoref, necesitará una clave API. Todas las solicitudes deben incluir su clave API como parámetro de encabezado.
¿No tiene una clave API? PregúntenosX-API-Key: your_api_key_here
URL base
Todas las solicitudes de API deben realizarse a la siguiente URL base:
https://api.autoref.eu
Formato de respuesta
Todas las respuestas se devuelven en formato JSON. Las respuestas exitosas incluyen un código de estado 200 OK.
{
"success": true,
"data": [{
"id": 55411,
"VIN": "WBA11AL010",
"BRAND": "BMW",
"BRAND_MODEL": "BMW M235I XDRIVE",
"MODEL": "M235i",
"MODEL2": "xDrive",
"MODEL3": null,
"POWER_KW": 225.0,
"POWER_DIN": 306.0,
"FUEL": "Gasoline",
"DATE_FIRST_CIRCULATION": 2020,
"RECORD_TYPE": "TG"
}]
}
Manejo de errores
Cuando ocurren errores, la API devolverá un código de estado HTTP apropiado y un mensaje de error.
{
"success": false,
"error": "not_found",
"message": "Vehicle not found"
}
Nota importante:
Los límites de velocidad de la API se aplican según su plan de suscripción. Consulte la sección de Precios para obtener detalles sobre los límites de solicitudes para su nivel.
API Endpoints
Our API offers several endpoints to query vehicle information using different identifiers.
Búsqueda de VIN
Recuperar información del vehículo por VIN (Número de Identificación del Vehículo).
Parámetros de ruta
Parámetro | Tipo | Descripción |
---|---|---|
vin | string | El VIN (Número de Identificación del Vehículo) del vehículo. Mínimo 10 caracteres. |
Parámetros de consulta
Parámetro | Tipo | Predeterminado | Descripción |
---|---|---|---|
lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
Ejemplo de solicitud
curl -X GET "https://api.autoref.eu/vehicles/WBA11AL0101234567" \
-H "X-API-Key: your_api_key_here"
Ejemplo de respuesta
[
{
"id": 55411,
"VIN": "WBA11AL010",
"BRAND": "BMW",
"BRAND_MODEL": "BMW M235I XDRIVE",
"MODEL_COC": null,
"VARIANT": null,
"VERSION": null,
"MODEL": "M235i",
"MODEL2": "xDrive",
"MODEL3": null,
"POWER_KW": 225.0,
"POWER_DIN": 306.0,
"FUEL": "Essence",
"DATE_FIRST_CIRCULATION": 2020,
"RECORD_TYPE": "TG"
}
]
Campos de respuesta
Campo | Tipo | Descripción |
---|---|---|
id | integer | Identificador único para el registro del vehículo |
VIN | string | Número de Identificación del Vehículo |
BRAND | string | Fabricante del vehículo |
BRAND_MODEL | string | Nombre completo del modelo incluyendo la marca |
MODEL | string | Nombre del modelo principal |
MODEL2 | string | Identificador de modelo secundario |
MODEL3 | string | Identificador de modelo terciario |
POWER_KW | number | Potencia del motor en kilovatios |
POWER_DIN | number | Potencia del motor en caballos de fuerza (CV) |
FUEL | string | Tipo de combustible (Gasolina, Diésel, Eléctrico, etc.) |
DATE_FIRST_CIRCULATION | integer | Año de primera matriculación |
RECORD_TYPE | string | Tipo de base de datos de origen (TG, OC, OLD, X) |
Notas:
- Las búsquedas de VIN no distinguen entre mayúsculas y minúsculas. "WBA11AL010" y "wba11al010" devolverán los mismos resultados.
- Se admiten coincidencias parciales de VIN. La API devolverá todos los vehículos coincidentes para el prefijo VIN proporcionado.
- Para la mayoría de los vehículos modernos, se requiere un mínimo de 10 caracteres para una coincidencia confiable.
Búsqueda de VIN antiguo
Recuperar información para vehículos anteriores a 1981 utilizando un formato de VIN/número de chasis más corto junto con el nombre de la marca.
Parámetros de ruta
Parámetro | Tipo | Descripción |
---|---|---|
vin | string | El VIN antiguo o número de chasis del vehículo. |
Parámetros de consulta
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
brand | string | Yes | El fabricante del vehículo (por ejemplo, PORSCHE, BMW, MERCEDES-BENZ) |
lang | string | No | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
Ejemplo de solicitud
curl -X GET "https://api.autoref.eu/legacy-vehicles/9119311194?brand=PORSCHE&lang=en" \
-H "X-API-Key: your_api_key_here"
Ejemplo de respuesta
[
{
"id": 11580,
"VIN": "9119311",
"BRAND": "PORSCHE",
"BRAND_MODEL": "PORSCHE 911 SC 3,0 TARGA",
"MODEL_COC": null,
"VARIANT": null,
"VERSION": null,
"MODEL": "911",
"MODEL2": "SC",
"MODEL3": "3,0 Targa",
"POWER_KW": 132.4,
"POWER_DIN": 180.0,
"FUEL": "Gasoline",
"DATE_FIRST_CIRCULATION": 1979,
"RECORD_TYPE": "OLD"
},
{
"id": 11581,
"VIN": "9119311",
"BRAND": "PORSCHE",
"BRAND_MODEL": "PORSCHE 911 SC 3.0",
"MODEL_COC": null,
"VARIANT": null,
"VERSION": null,
"MODEL": "911",
"MODEL2": "SC",
"MODEL3": "3.0",
"POWER_KW": 132.0,
"POWER_DIN": 179.0,
"FUEL": "Gasoline",
"DATE_FIRST_CIRCULATION": 1979,
"RECORD_TYPE": "OLD"
}
]
Campos de respuesta
Mismos campos que la respuesta de búsqueda de VIN, con las siguientes diferencias:
Campo | Descripción |
---|---|
RECORD_TYPE | Será "OLD" para vehículos antiguos |
Nota importante:
Los vehículos anteriores a 1981 no tenían VIN estandarizados. Para resultados precisos:
- El parámetro de marca es obligatorio
- El VIN puede ser más corto que los estándares modernos (a menudo 3-10 caracteres)
- Se pueden devolver múltiples resultados para la misma combinación de VIN/marca
Búsqueda de homologación de tipo
Recuperar vehículos por su número de homologación de tipo UE.
Parámetros de ruta
Parámetro | Tipo | Descripción |
---|---|---|
approval | string | Número de homologación de tipo UE (por ejemplo, e1*2007/46*2064*07) |
Parámetros de consulta
Parámetro | Tipo | Predeterminado | Descripción |
---|---|---|---|
lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
Ejemplo de solicitud
curl -X GET "https://api.autoref.eu/vehicles-by-approval/e1*2007/46*2064*07?lang=en" \
-H "X-API-Key: your_api_key_here"
Ejemplo de respuesta
[
{
"id": 55424,
"VIN": "WBA11AL010",
"BRAND": "BMW",
"BRAND_MODEL": "BMW M235I XDRIVE",
"MODEL_COC": null,
"VARIANT": null,
"VERSION": null,
"MODEL": "M235i",
"MODEL2": "xDrive",
"MODEL3": null,
"POWER_KW": 225.0,
"POWER_DIN": 306.0,
"FUEL": "Gasoline",
"DATE_FIRST_CIRCULATION": 2023,
"RECORD_TYPE": "TG"
}
]
Formato del número de homologación de tipo
Los números de homologación de tipo UE siguen este formato: e1*2007/46*2064*07
e1
: Código del país donde se emitió la aprobación (e1 = Alemania)2007/46
: Número de directiva marco2064
: Número de aprobación base07
: Número de extensión
Campos de respuesta
Mismos campos que la respuesta de búsqueda de VIN.
Notas:
- Los números de homologación de tipo contienen caracteres especiales como *, /, etc. Asegúrese de codificar correctamente estos caracteres en URL en sus solicitudes.
- Este endpoint puede devolver múltiples vehículos si varios modelos comparten la misma homologación de tipo.
- El RECORD_TYPE normalmente será "TG" para coincidencias de homologación de tipo.
Búsqueda de homologación suiza (código TG)
Recuperar datos completos del vehículo mediante el código de homologación suiza (código TG).
Parámetros de ruta
Parámetro | Tipo | Descripción |
---|---|---|
tgcode | string | Código de homologación suiza (por ejemplo, 1BC170) |
Parámetros de consulta
Parámetro | Tipo | Predeterminado | Descripción |
---|---|---|---|
lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
Ejemplo de solicitud
curl -X GET "https://api.autoref.eu/vehicle/tgcode/1BC170?lang=en" \
-H "X-API-Key: your_api_key_here"
Ejemplo de respuesta
{
"VIN_INFO": {
"id": 55424,
"VIN": "WBA11AL010",
"BRAND": "BMW",
"BRAND_MODEL": "BMW M235I XDRIVE",
"POWER_KW": 225.0,
"POWER_DIN": 306.0,
"GEARBOX": ["Manual"],
"CATEGORY": "M1",
"TYPE_VEHICLE": "Passenger car",
"MODEL_FULL": "M235i xDrive",
"MODEL": "M235i",
"MODEL2": "xDrive",
"BODY": "Coupe",
"COLOR": "Black",
"FUEL": "Gasoline",
"DRIVETRAIN": "All-wheel drive",
"DATE_FIRST_CIRCULATION": "2020-05-12"
},
"SPECS": {
"TGCODE": "1BC170",
"DATE_REGISTRAR_START": "2019-03-15",
"DATE_REGISTRAR_END": "2025-12-31",
"CATEGORY": "M1",
"TVV": ["WBA11AL010"],
"MANUFACTURER": "BMW AG, Munich",
"VIN_LOCATION": "lower right windshield, driver's door pillar",
"AXLES_WHEELS": "2/4",
"SUSPENSION_TYPE": "coil springs, shock absorbers",
"STEERING_TYPE": "rack and pinion, electric assistance",
"BRAKE_TYPE": "discs/discs",
"WEIGHT_EMPTY_MIN_MAX": "1655 - 1740",
"LENGTH_MIN_MAX": "4454 - 4454",
"WIDTH_MIN_MAX": "1774 - 1774",
"HEIGHT_MIN_MAX": "1408 - 1408"
},
"CONSUMPTION": [
{
"COMBINED_CONSUMPTION": 7.8,
"COMBINED_CONSUMPTION_WLTP": 8.2,
"URBAN_CONSUMPTION": 10.4,
"COMBINED_CO2_EMISSIONS": 192,
"COMBINED_CO2_EMISSIONS_WLTP": 188,
"ENERGY_EFFICIENCY_CATEGORY": "G"
}
],
"EMISSION": [
{
"COMBINED_CO2_EMISSIONS": 192,
"COMBINED_CO2_EMISSIONS_WLTP": 188,
"NOISE_DRIVING": 72,
"CODE_SWISS_EMISSION": "A7M",
"CATALIZER": true,
"PARTICLE_FILTER": false
}
],
}
Estructura de respuesta
A diferencia de otros endpoints, este devuelve un registro de vehículo mucho más detallado con varias secciones:
Sección | Descripción |
---|---|
VIN_INFO | Información básica de identificación del vehículo |
SPECS | Especificaciones técnicas detalladas de la homologación de tipo |
CONSUMPTION | Datos de consumo de combustible en varios ciclos de prueba |
EMISSION | Datos de emisiones para varios contaminantes |
URL opcional a documentación PDF si está disponible |
Notas:
- Los códigos TG suizos tienen tres generaciones de formato: numérico (antes de 1985), alfanumérico de una letra (1985-1995) y alfanumérico de dos letras (después de 1995).
- Este endpoint devuelve los datos de vehículo más completos, incluidos detalles de consumo y emisiones.
- La estructura de respuesta es diferente de otros endpoints, conteniendo múltiples secciones anidadas.
Búsqueda detallada de vehículo
Recuperar datos completos del vehículo por tipo de registro e ID.
Parámetros de ruta
Parámetro | Tipo | Descripción |
---|---|---|
record_type | string | Tipo de base de datos de origen (TG, OC, OLD, X) |
id | integer | El identificador único del registro del vehículo |
Parámetros de consulta
Parámetro | Tipo | Predeterminado | Descripción |
---|---|---|---|
lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
Ejemplo de solicitud
curl -X GET "https://api.autoref.eu/vehicle/TG/55424?lang=en" \
-H "X-API-Key: your_api_key_here"
Ejemplo de respuesta
El formato de respuesta es similar al endpoint de código TG, con información detallada del vehículo organizada en secciones.
Notas:
- Este endpoint se utiliza típicamente después de encontrar un vehículo con uno de los endpoints de búsqueda, utilizando el ID y RECORD_TYPE de los resultados de búsqueda iniciales.
- Diferentes tipos de registro pueden devolver diferentes estructuras de datos, con registros TG (homologación de tipo) que contienen la información más completa.
- Valores válidos para record_type: TG (homologación de tipo), OC (certificado de conformidad), OLD (antiguo), X (importado)
Búsqueda de marcas de vehículos
Recuperar una lista de todas las marcas de vehículos disponibles en la base de datos.
Parámetros de consulta
Parámetro | Tipo | Predeterminado | Descripción |
---|---|---|---|
lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
Ejemplo de solicitud
curl -X GET "https://api.autoref.eu/vehicle-brands" \
-H "X-API-Key: your_api_key_here"
Ejemplo de respuesta
[
...
{
"id": 490,
"brand": "ALFA ROMEO"
},
{
"id": 551,
"brand": "AUDI"
},
{
"id": 23,
"brand": "BMW"
},
{
"id": 279,
"brand": "CHEVROLET"
},
...
]
Campos de respuesta
Campo | Tipo | Descripción |
---|---|---|
name | string | Nombre completo de la marca |
code | string | Código de marca (típicamente 3 letras) |
country | string | Código de país ISO de origen del fabricante |
Notas:
- Este endpoint es útil para poblar menús desplegables en aplicaciones, especialmente cuando se trabaja con búsquedas de VIN antiguos que requieren un parámetro de marca.
- La lista es completa e incluye todos los fabricantes presentes en la base de datos.
- Los nombres de marca deben usarse exactamente como aparecen en esta lista al realizar llamadas a la API.
Respuestas de error
La API utiliza códigos de estado HTTP estándar para indicar el éxito o fracaso de las solicitudes. Aquí están las respuestas de error comunes que puede encontrar:
Código de estado | Tipo de error | Descripción |
---|---|---|
400 | Solicitud incorrecta | La solicitud no era válida o faltaban parámetros requeridos |
401 | No autorizado | Falta la clave API o no es válida |
403 | Prohibido | La clave API es válida pero carece de permiso para el recurso solicitado |
404 | No encontrado | No se encontró el vehículo o recurso especificado |
429 | Demasiadas solicitudes | Límite de velocidad excedido para su plan |
500 | Error interno del servidor | Ocurrió un error inesperado en el servidor |
Ejemplo de respuesta de error
{
"success": false,
"error": "not_found",
"message": "Vehicle not found for VIN: WBA11AL010XXXXXX"
}
Limitación de velocidad
Las solicitudes de API están sujetas a limitación de velocidad según su plan de suscripción. Cuando exceda su límite de velocidad, recibirá una respuesta 429 Demasiadas solicitudes.
{
"success": false,
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please upgrade your plan or try again later.",
"reset_at": "2025-04-11T12:30:15Z"
}
Límites de velocidad y planes
Nuestra API ofrece varios niveles de suscripción para satisfacer diferentes necesidades de uso. Cada plan tiene límites de velocidad y características específicas.
0 €/mes
- ✓50 solicitudes / mes
- ✓Datos básicos del vehículo
- ✓Búsqueda de VIN
- ✗Búsqueda de homologación de tipo
- ✗Especificaciones detalladas del vehículo
29 €/mes
- ✓5.000 solicitudes / mes
- ✓Datos completos del vehículo
- ✓Todos los métodos de búsqueda
- ✓Especificaciones detalladas del vehículo
- ✓Soporte por correo electrónico
99 €/mes
- ✓25.000 solicitudes / mes
- ✓Datos completos del vehículo
- ✓Todos los métodos de búsqueda
- ✓Especificaciones detalladas del vehículo
- ✓Soporte prioritario
¿Necesita límites más altos?
Si requiere límites de velocidad más altos o características personalizadas, por favor contacte a nuestro equipo de ventas para un plan Enterprise adaptado a sus necesidades.
Contactar a ventasSoporte y preguntas frecuentes
¿Cómo obtengo una clave API?
Actualmente, las claves API se proporcionan bajo solicitud a través de nuestro formulario de contacto. Simplemente complete el formulario de contacto con los detalles de su caso de uso, y nuestro equipo responderá por correo electrónico con su clave API única e instrucciones de configuración. Este proceso manual nos permite proporcionar asistencia de incorporación personalizada para cada integración.
¿Cuál es la diferencia entre los diversos métodos de búsqueda de VIN?
Nuestra API ofrece varios métodos para buscar información de vehículos:
- Búsqueda de VIN: Utiliza un VIN estándar de 17 caracteres (o mínimo 10 caracteres) para vehículos modernos (posteriores a 1981)
- Búsqueda de VIN antiguo: Para vehículos más antiguos (anteriores a 1981) utilizando números de chasis más cortos junto con el nombre de la marca
- Búsqueda de homologación de tipo: Busca por número de homologación de tipo UE
- Búsqueda de código TG: Busca por código de homologación suiza
Cada método proporciona acceso a diferentes niveles de detalle. Las búsquedas de código TG y homologación de tipo generalmente proporcionan los datos técnicos más completos.
¿Qué tan precisos son los datos del vehículo?
Nuestros datos de vehículos provienen directamente de bases de datos de homologación gubernamentales oficiales y homologaciones de tipo de fabricantes, proporcionando una precisión significativamente mayor que los decodificadores de VIN típicos que a menudo utilizan algoritmos para interpretar patrones de VIN.
Para vehículos europeos y suizos, proporcionamos especificaciones precisas tal como fueron presentadas por los fabricantes a las autoridades reguladoras. Para vehículos antiguos, la integridad de los datos puede variar según los registros históricos disponibles.
¿Qué idiomas admite la API?
La API admite múltiples idiomas para respuestas localizadas. Idiomas actualmente soportados:
en
- Inglés (predeterminado)fr
- Francésde
- Alemánes
- Españolit
- Italiano
Especifique su idioma preferido utilizando el lang
parámetro de consulta con cualquier solicitud de API.
¿Cómo manejo los errores de la API?
Todas las respuestas de la API incluyen códigos de estado HTTP que indican el éxito o fracaso de la solicitud. Para errores, también proporcionamos una respuesta JSON estructurada con:
success
: Siemprefalse
para respuestas de errorerror
: Un código de error legible por máquinamessage
: Una descripción legible por humanos de lo que salió mal
Recomendamos implementar un manejo de errores adecuado en su código para manejar elegantemente diferentes tipos de errores, especialmente errores "not_found" para búsquedas de VIN y respuestas de limitación de velocidad.
¿Necesita más ayuda?
Si no puede encontrar la respuesta a su pregunta aquí, nuestro equipo de soporte está listo para ayudarle.
Ejemplos de código
Aquí hay algunos ejemplos de código para ayudarle a integrar nuestra API con su aplicación en diferentes lenguajes de programación.
JavaScript / Node.js
// Example using fetch in Node.js (with node-fetch package)
const fetch = require('node-fetch');
async function getVehicleByVin(vin) {
try {
const response = await fetch(`https://api.autoref.eu/vehicles/${vin}`, {
headers: {
'X-API-Key': 'your_api_key_here'
}
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.message || 'Failed to fetch vehicle data');
}
const data = await response.json();
return data;
} catch (error) {
console.error('Error fetching vehicle data:', error);
throw error;
}
}
// Usage
getVehicleByVin('WBA11AL010')
.then(data => console.log(data))
.catch(error => console.error(error));
Python
import requests
def get_vehicle_by_vin(vin, api_key, lang='en'):
"""
Fetch vehicle data by VIN
Args:
vin: Vehicle Identification Number
api_key: Your API key
lang: Language code for response (en, fr, de, es, it)
Returns:
Dictionary with vehicle data
"""
url = f"https://api.autoref.eu/vehicles/{vin}"
headers = {
"X-API-Key": api_key
}
params = {
"lang": lang
}
response = requests.get(url, headers=headers, params=params)
# Check for errors
if response.status_code != 200:
try:
error_data = response.json()
error_message = error_data.get('message', 'Unknown error')
except:
error_message = f"HTTP Error: {response.status_code}"
raise Exception(f"API Error: {error_message}")
return response.json()
# Usage
try:
api_key = "your_api_key_here"
vehicle_data = get_vehicle_by_vin("WBA11AL010", api_key)
print(vehicle_data)
except Exception as e:
print(f"Error: {e}")
PHP
<?php
/**
* Function to fetch vehicle data by VIN
*
* @param string $vin Vehicle Identification Number
* @param string $apiKey Your API key
* @param string $lang Language code for response
*
* @return array|null Vehicle data or null on error
*/
function getVehicleByVin($vin, $apiKey, $lang = 'en') {
$url = "https://api.autoref.eu/vehicles/" . urlencode($vin) . "?lang=" . urlencode($lang);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: ' . $apiKey
]);
$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($statusCode !== 200) {
$errorData = json_decode($response, true);
$errorMessage = isset($errorData['message']) ? $errorData['message'] : 'Unknown error';
error_log("API Error ($statusCode): $errorMessage");
return null;
}
return json_decode($response, true);
}
// Usage
$apiKey = 'your_api_key_here';
$vehicleData = getVehicleByVin('WBA11AL010', $apiKey);
if ($vehicleData) {
print_r($vehicleData);
} else {
echo "Failed to retrieve vehicle data";
}
?>
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
public class VinLookupExample {
private static final String API_BASE_URL = "https://api.autoref.eu";
private static final String API_KEY = "your_api_key_here";
public static void main(String[] args) {
try {
String vin = "WBA11AL010";
String vehicleData = getVehicleByVin(vin);
System.out.println(vehicleData);
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
public static String getVehicleByVin(String vin) throws Exception {
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(API_BASE_URL + "/vehicles/" + vin))
.header("X-API-Key", API_KEY)
.GET()
.build();
HttpResponse<String> response = client.send(request, BodyHandlers.ofString());
if (response.statusCode() != 200) {
throw new Exception("API Error: HTTP " + response.statusCode() + " - " + response.body());
}
return response.body();
}
}
¿Listo para comenzar?
Integre nuestra potente API de datos de vehículos con sus aplicaciones hoy y desbloquee especificaciones técnicas completas para millones de vehículos.