Comprehensive documentation for integrating our vehicle data API with your applications
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.
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_hereTodas las solicitudes de API deben realizarse a la siguiente URL base:
https://api.autoref.euTodas 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"
}]
}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"
}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.
Our API offers several endpoints to query vehicle information using different identifiers.
Recuperar información del vehículo por VIN (Número de Identificación del Vehículo).
| 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ámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
curl -X GET "https://api.autoref.eu/vehicles/WBA11AL0101234567" \
-H "X-API-Key: your_api_key_here"[
{
"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"
}
]| 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) |
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ámetro | Tipo | Descripción |
|---|---|---|
| vin | string | El VIN antiguo o número de chasis del vehículo. |
| 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) |
curl -X GET "https://api.autoref.eu/legacy-vehicles/9119311194?brand=PORSCHE&lang=en" \
-H "X-API-Key: your_api_key_here"[
{
"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"
}
]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 |
Los vehículos anteriores a 1981 no tenían VIN estandarizados. Para resultados precisos:
Recuperar vehículos por su número de homologación de tipo UE.
| Parámetro | Tipo | Descripción |
|---|---|---|
| approval | string | Número de homologación de tipo UE (por ejemplo, e1*2007/46*2064*07) |
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
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"[
{
"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"
}
]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ónMismos campos que la respuesta de búsqueda de VIN.
Recuperar datos completos del vehículo mediante el código de homologación suiza (código TG).
| Parámetro | Tipo | Descripción |
|---|---|---|
| tgcode | string | Código de homologación suiza (por ejemplo, 1BC170) |
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
curl -X GET "https://api.autoref.eu/vehicle/tgcode/1BC170?lang=en" \
-H "X-API-Key: your_api_key_here"{
"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
}
],
}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 |
Recuperar datos completos del vehículo por tipo de registro e ID.
| 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ámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
curl -X GET "https://api.autoref.eu/vehicle/TG/55424?lang=en" \
-H "X-API-Key: your_api_key_here"El formato de respuesta es similar al endpoint de código TG, con información detallada del vehículo organizada en secciones.
Recuperar una lista de todas las marcas de vehículos disponibles en la base de datos.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
| lang | string | en | Código de idioma para respuestas localizadas (en, fr, de, es, it) |
curl -X GET "https://api.autoref.eu/vehicle-brands" \
-H "X-API-Key: your_api_key_here"[
...
{
"id": 490,
"brand": "ALFA ROMEO"
},
{
"id": 551,
"brand": "AUDI"
},
{
"id": 23,
"brand": "BMW"
},
{
"id": 279,
"brand": "CHEVROLET"
},
...
]| 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 |
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 |
{
"success": false,
"error": "not_found",
"message": "Vehicle not found for VIN: WBA11AL010XXXXXX"
}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"
}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
29 €/mes
99 €/mes
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 ventasActualmente, 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.
Nuestra API ofrece varios métodos para buscar información de vehículos:
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.
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.
La API admite múltiples idiomas para respuestas localizadas. Idiomas actualmente soportados:
en - Inglés (predeterminado)fr - Francésde - Alemánes - Españolit - ItalianoEspecifique su idioma preferido utilizando el lang parámetro de consulta con cualquier solicitud de 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: Siempre false para respuestas de errorerror: Un código de error legible por máquinamessage: Una descripción legible por humanos de lo que salió malRecomendamos 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.
Si no puede encontrar la respuesta a su pregunta aquí, nuestro equipo de soporte está listo para ayudarle.
Aquí hay algunos ejemplos de código para ayudarle a integrar nuestra API con su aplicación en diferentes lenguajes de programación.
// 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));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
/**
* 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";
}
?>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();
}
}Integre nuestra potente API de datos de vehículos con sus aplicaciones hoy y desbloquee especificaciones técnicas completas para millones de vehículos.