VIN Decoder
GET /api/vin/{vin}
Section titled “GET /api/vin/{vin}”Decodes Vehicle Identification Numbers (VINs) for vehicles sold in the United States. The
response includes a specs property with decoded specifications and a trims property listing
all possible trims that match the VIN.
For non-paying users, VINs for 2015–2020 models are returned. Paying subscribers have full data access.
Optional Parameters
Section titled “Optional Parameters”| Parameter | Description |
|---|---|
verbose=yes | Include body, engine, and mileage data in the matching trims |
all_trims=yes | Return all trims for the VIN’s model, not just closely matching ones |
Sample Request
Section titled “Sample Request”curl "https://carapi.app/api/vin/1GTG6CEN0L1139305" \ -H "Authorization: Bearer YOUR_JWT_TOKEN_HERE"const vin = '1GTG6CEN0L1139305';
const response = await fetch(`https://carapi.app/api/vin/${vin}`, { headers: { 'Authorization': `Bearer ${jwt}` }});
const data = await response.json();console.log('VIN decode:', data);import requests
vin = '1GTG6CEN0L1139305'headers = { 'Authorization': f'Bearer {jwt}'}
response = requests.get( f'https://carapi.app/api/vin/{vin}', headers=headers)
data = response.json()print('VIN decode:', data);use GuzzleHttp\Client;
$vin = '1GTG6CEN0L1139305';$client = new Client();
$response = $client->get("https://carapi.app/api/vin/{$vin}", [ 'headers' => [ 'Authorization' => 'Bearer YOUR_JWT_TOKEN_HERE', ],]);
$data = json_decode($response->getBody(), true);print_r($data);$vin = '1GTG6CEN0L1139305';
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "https://carapi.app/api/vin/{$vin}");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_JWT_TOKEN_HERE',]);
$response = curl_exec($ch);curl_close($ch);
$data = json_decode($response, true);print_r($data);Sample Request (verbose)
Section titled “Sample Request (verbose)”curl "https://carapi.app/api/vin/1GTG6CEN0L1139305?verbose=yes" \ -H "Authorization: Bearer YOUR_JWT_TOKEN_HERE"const vin = '1GTG6CEN0L1139305';
const response = await fetch(`https://carapi.app/api/vin/${vin}?verbose=yes`, { headers: { 'Authorization': `Bearer ${jwt}` }});
const data = await response.json();console.log('VIN decode (verbose):', data);import requests
vin = '1GTG6CEN0L1139305'headers = { 'Authorization': f'Bearer {jwt}'}
response = requests.get( f'https://carapi.app/api/vin/{vin}', headers=headers, params={'verbose': 'yes'})
data = response.json()print('VIN decode (verbose):', data);use GuzzleHttp\Client;
$vin = '1GTG6CEN0L1139305';$client = new Client();
$response = $client->get("https://carapi.app/api/vin/{$vin}", [ 'headers' => [ 'Authorization' => 'Bearer YOUR_JWT_TOKEN_HERE', ], 'query' => [ 'verbose' => 'yes', ],]);
$data = json_decode($response->getBody(), true);print_r($data);$vin = '1GTG6CEN0L1139305';$url = "https://carapi.app/api/vin/{$vin}?" . http_build_query(['verbose' => 'yes']);
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer YOUR_JWT_TOKEN_HERE',]);
$response = curl_exec($ch);curl_close($ch);
$data = json_decode($response, true);print_r($data);Sample Response
Section titled “Sample Response”{ "vin": "1GTG6CEN0L1139305", "specs": [ "active_safety_system_note": null, "adaptive_cruise_control_acc": null, "adaptive_driving_beam_adb": null, "anti_lock_braking_system_abs": "Standard", "auto_reverse_system_for_windows_and_sunroofs": "Standard", "automatic_crash_notification_acn_advanced_automatic_crash_notification_aacn": "Standard", "automatic_pedestrian_alerting_sound_for_hybrid_and_ev_only": null, "axle_configuration": null, "axles": "2", "backup_camera": "Standard", "bus_floor_configuration_type": "Not Applicable", "bus_type": "Not Applicable", "cab_type": "Crew/Super Crew/Crew Max", "charger_level": null, "charger_power_kw": null, "combined_braking_system_cbs": null, "cooling_type": null, "crash_imminent_braking_cib": null, "curb_weight_pounds": null, "curtain_air_bag_locations": "All Rows", "custom_motorcycle_type": "Not Applicable", "daytime_running_light_drl": "Standard", "destination_market": null, "displacement_cc": "3600.0", "displacement_ci": "219.6854787410362222", "displacement_l": "3.6", "doors": "4", "drive_type": "4WD/4-Wheel Drive/4x4", "dynamic_brake_support_dbs": "Standard", "electrification_level": null, "electronic_stability_control_esc": "Standard", "engine_brake_hp_from": null, "engine_brake_hp_to": null, "engine_configuration": "V-Shaped", "engine_manufacturer": null, "engine_model": "LGZ - Direct Injection, Variable Valve Timing, ALUM, VAR2, GEN 2", "engine_number_of_cylinders": "6", "engine_power_kw": null, "engine_stroke_cycles": null, "entertainment_system": null, "ev_drive_unit": null, "event_data_recorder_edr": null, "forward_collision_warning_fcw": null, "front_air_bag_locations": "1st Row (Driver and Passenger)", "fuel_delivery_fuel_injection_type": null, "fuel_tank_material": null, "fuel_tank_type": null, "fuel_type_primary": "Gasoline", "fuel_type_secondary": null, "gross_combination_weight_rating_from": null, "gross_combination_weight_rating_to": null, "gross_vehicle_weight_rating_from": "Class 1D: 5,001 - 6,000 lb (2,268 - 2,722 kg)", "gross_vehicle_weight_rating_to": null, "headlamp_light_source": "Halogen", "keyless_ignition": null, "knee_air_bag_locations": null, "lane_centering_assistance": null, "lane_departure_warning_ldw": "Optional", "lane_keeping_assistance_lka": null, "manufacturer_name": "GENERAL MOTORS LLC", "motorcycle_chassis_type": "Not Applicable", "motorcycle_suspension_type": "Not Applicable", "non_land_use": null, "note": null, "number_of_battery_cells_per_module": null, "number_of_battery_modules_per_pack": null, "number_of_battery_packs_per_vehicle": null, "number_of_seat_rows": "2", "number_of_seats": "5", "number_of_wheels": "4", "other_battery_info": null, "other_bus_info": null, "other_engine_info": null, "other_motorcycle_info": null, "other_restraint_system_info": null, "other_trailer_info": null, "parking_assist": null, "pedestrian_automatic_emergency_braking_paeb": null, "plant_city": "WENTZVILLE", "plant_company_name": "GMNA", "plant_country": "UNITED STATES (USA)", "plant_state": "MISSOURI", "possible_values": "", "pretensioner": null, "rear_automatic_emergency_braking": null, "rear_cross_traffic_alert": null, "sae_automation_level_from": null, "sae_automation_level_to": null, "seat_belt_type": "Manual", "seat_cushion_air_bag_locations": null, "semiautomatic_headlamp_beam_switching": "Standard", "series": null, "series2": null, "side_air_bag_locations": "1st Row (Driver and Passenger)", "steering_location": "Left-Hand Drive (LHD)", "suggested_vin": "", "tire_pressure_monitoring_system_tpms_type": "Direct", "top_speed_mph": null, "track_width_inches": null, "traction_control": "Standard", "trailer_body_type": "Not Applicable", "trailer_length_feet": null, "trailer_type_connection": "Not Applicable", "transmission_speeds": "6", "transmission_style": "Automatic", "trim": "SLE", "trim2": null, "turbo": null, "valve_train_design": "Dual Overhead Cam (DOHC)", "vehicle_descriptor": "1GTG6CEN*L1", "vehicle_type": "TRUCK", "wheel_base_inches_from": null, "wheel_base_inches_to": null, "wheel_base_type": null, "wheel_size_front_inches": "17", "wheel_size_rear_inches": "17", "wheelie_mitigation": null, "windows": null ], "trims": [ { "id": 398201, "make_id": 16, "year": 2020, "make": "GMC", "model": "Canyon", "submodel": "Elevation", "trim": "Crew Cab 4D", "description": "2020 GMC Canyon Elevation Crew Cab 4D" } ]}Best Practices
Section titled “Best Practices”- Test VINs: Use
1GTG6CEN0L1139305(a 2020 GMC Canyon) to test your integration on the free tier. - Use
verbose=yes: Include body, engine, and mileage data in a single request to reduce API calls. - Handle multiple trims: A VIN may match multiple trims — iterate the
trimsarray and use the best match for your use case.