---
title: "Specifications"
description: "Decode any 17-character VIN and retrieve full vehicle specifications — make, model, year, engine, equipment, and more."
canonical_url: "https://docs.carsxe.com/docs/products/specifications"
markdown_url: "https://docs.carsxe.com/docs/products/specifications.md"
last_updated: "1980-01-01"
---

# Specifications
URL: /docs/products/specifications
LLM index: /llms.txt
Description: Decode any 17-character VIN and retrieve full vehicle specifications — make, model, year, engine, equipment, and more.

Decode any 17-character VIN into structured vehicle data: identity, engine, transmission, dimensions, standard equipment, colors, and warranty information. For most use cases the default response is sufficient. Add `deepdata=1` when you need extended vehicle data — it's slower but pulls additional fields not available from the primary source.

## Parameters

| Parameter | Required | Description |
|---|---|---|
| `vin` | Yes | The 17-character vehicle identification number |
| `key` | Yes | Your CarsXE API key |
| `deepdata` | No | Pass `1` to include extended vehicle data under the `deepdata` key (adds latency) |
| `disableIntVINDecoding` | No | Pass `1` to return a `404` instead of falling back to the international decoder for non-US VINs |
| `format` | No | `json` (default) or `xml` |

## Example

<CodeGroup title="Decode a VIN" tag="GET" label="/specs">

```bash
curl -G https://api.carsxe.com/specs \
  -d key=YOUR_API_KEY \
  -d vin=WBAFR7C57CC811956
```

```js
import { CarsXE } from "carsxe-api";

const carsxe = new CarsXE("YOUR_API_KEY");
const vin = "WBAFR7C57CC811956";

try {
  const vehicle = await carsxe.specs({ vin });
  console.log(vehicle);
} catch (error) {
  console.error(error);
}
```

```python
import asyncio
from carsxe_api import CarsXE

carsxe = CarsXE("YOUR_API_KEY")
vin = "WBAFR7C57CC811956"

try:
    vehicle = asyncio.run(carsxe.specs({"vin": vin}))
    print(vehicle)
except Exception as e:
    print(f"Error: {e}")
```

```php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use CarsxeDeveloper\Carsxe\Carsxe;

$carsxe = new Carsxe("YOUR_API_KEY");
$vin = "WBAFR7C57CC811956";

try {
    $vehicle = $carsxe->specs(["vin" => $vin]);
    print_r($vehicle);
} catch (Exception $error) {
    echo "Error: " . $error->getMessage();
}
```

```ruby
require "carsxe"

carsxe = Carsxe::CarsXE.new(api_key: "YOUR_API_KEY")
vin = "WBAFR7C57CC811956"

begin
  vehicle = carsxe.specs("vin" => vin)
  puts vehicle
rescue StandardError => error
  puts "Error: #{error.message}"
end
```

```go
package main

import (
	"fmt"
	"github.com/carsxe/carsxe-go-package"
)

func main() {
	client := carsxe.New("YOUR_API_KEY")
	vin := "WBAFR7C57CC811956"
	vehicle := client.Specs(map[string]string{"vin": vin})
	fmt.Println(vehicle)
}
```

```java
import io.github.carsxe.CarsXE;
import java.util.Map;
import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        CarsXE carsxe = new CarsXE("YOUR_API_KEY");
        Map<String, String> params = new HashMap<>();
        params.put("vin", "WBAFR7C57CC811956");

        try {
            Map<String, Object> vehicle = carsxe.specs(params);
            System.out.println(vehicle);
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
    }
}
```

```swift
import carsxe

let carsxe = CarsXE(apiKey: "YOUR_API_KEY")
let vin = "WBAFR7C57CC811956"

do {
    let vehicle = try carsxe.specs(["vin": vin])
    print(vehicle)
} catch {
    print("Error: \(error)")
}
```

```csharp
using carsxe;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        CarsXE carsxe = new CarsXE("YOUR_API_KEY");
        string vin = "WBAFR7C57CC811956";

        try
        {
            var vehicle = await carsxe.Specs(new Dictionary<string, string> { { "vin", vin } });
            Console.WriteLine(vehicle);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}
```

```bash {{ title: "Response" }}
{
  "success": true,
  "input": { "vin": "WBAFR7C57CC811956", "key": "..." },
  "timestamp": "2026-06-18T00:00:00.000Z",
  "attributes": {
    "year": "2012",
    "make": "BMW",
    "model": "5 Series",
    "trim": "535i",
    "engine": "3.0L L6 DOHC 24V",
    "drivetrain": "RWD",
    "transmission": "8-Speed Automatic",
    "fuel_type": "Gasoline",
    ...
  },
  "equipment": {
    "abs_brakes": "Std.",
    "leather_seat": "Std.",
    "navigation_aid": "Std.",
    "power_sunroof": "Std.",
    ...
  },
  "colors": [
    { "category": "Exterior", "name": "Alpine White" },
    { "category": "Interior", "name": "Black Dakota Leather" }
  ],
  "warranties": [
    { "type": "Basic", "miles": "50,000 mile", "months": "48 month" },
    { "type": "Powertrain", "miles": "100,000 mile", "months": "120 month" },
    { "type": "Rust", "miles": "Unlimited", "months": "144 month" }
  ]
}
```

</CodeGroup>

## Response

### Top-level shape

<VinTopLevelShape />

Click any object or array to expand it and see sample data. For the full interactive reference, try it live in the [API Reference](/api-reference).

All response fields are optional. A field missing from `attributes` means that data isn't available for this VIN from the decoding source.

### attributes

<details>
<summary>**Identity** — Who built it, what it is, and where it was made</summary>

<Properties>
  <Property name="year" type="string">
    The 4-digit model year as assigned by the manufacturer — encoded in the 10th character of the VIN. This is the vehicle's official model year, which may differ from the calendar year it was produced or sold. Example: `"2012"`.
  </Property>
  <Property name="make" type="string">
    The manufacturer or brand name. This is the top-level brand, not the parent company — so a vehicle sold under `"BMW"` won't show `"BMW Group"`. Example: `"BMW"`, `"Toyota"`, `"Ford"`.
  </Property>
  <Property name="model" type="string">
    The product line or model family. For vehicles with sub-variants, this is the family name. Example: `"5 Series"`, `"Camry"`, `"F-150"`.
  </Property>
  <Property name="trim" type="string">
    The specific trim level or variant within the model. Trims define the feature set and often the price tier. Example: `"535i"`, `"XLT"`, `"Limited"`.
  </Property>
  <Property name="style" type="string">
    The body style as recorded by the manufacturer — typically in uppercase with door count. Example: `"SEDAN 4-DR"`, `"PICKUP"`, `"SPORT UTILITY 4-DR"`.
  </Property>
  <Property name="type" type="string">
    Normalized vehicle category. This is a standardized classification regardless of how the manufacturer labels it. Example: `"Sedan/Saloon"`, `"SUV"`, `"Truck"`.
  </Property>
  <Property name="made_in" type="string">
    Country where the vehicle was assembled — derived from the VIN's World Manufacturer Identifier (WMI). Example: `"Germany"`, `"United States"`, `"Japan"`.
  </Property>
  <Property name="made_in_city" type="string">
    City or region of the assembly plant. Example: `"Dingolfing"`, `"Georgetown"`, `"Smyrna"`.
  </Property>
</Properties>

</details>

<details>
<summary>**Engine & Fuel** — Powertrain specs, fuel type, and EPA fuel economy</summary>

<Properties>
  <Property name="engine" type="string">
    The full engine descriptor combining displacement, cylinder layout, valve configuration, and cam type. This is the most human-readable summary of the engine. Example: `"3.0L L6 DOHC 24V"`.
  </Property>
  <Property name="engine_size" type="string">
    Engine displacement in liters, as a decimal string. Example: `"3.0"`, `"2.5"`, `"5.0"`.
  </Property>
  <Property name="engine_cylinders" type="string">
    Number of cylinders. Example: `"4"`, `"6"`, `"8"`. Electric vehicles may return `"0"` or omit this field.
  </Property>
  <Property name="fuel_type" type="string">
    Primary fuel the engine runs on. Example: `"Gasoline"`, `"Diesel"`, `"Electric"`, `"Flex Fuel (FFV)"`.
  </Property>
  <Property name="fuel_capacity" type="string">
    Fuel tank capacity in gallons. Example: `"18.50 gallon"`. Not applicable to electric vehicles.
  </Property>
  <Property name="city_mileage" type="string">
    EPA-estimated fuel economy in city driving conditions. Example: `"20 MPG"`. Based on the EPA's standard city drive cycle at time of manufacture.
  </Property>
  <Property name="highway_mileage" type="string">
    EPA-estimated fuel economy on the highway. Example: `"30 MPG"`. Higher than city due to reduced stop-and-go.
  </Property>
</Properties>

</details>

<details>
<summary>**Transmission & Drivetrain** — Gearbox type, speed count, and wheel drive configuration</summary>

<Properties>
  <Property name="transmission" type="string">
    Full transmission description combining speed count and type. Example: `"8-Speed Automatic"`, `"6-Speed Manual"`.
  </Property>
  <Property name="transmission_short" type="string">
    Abbreviated transmission code used in window stickers and build sheets. Example: `"8A"` (8-speed automatic), `"6M"` (6-speed manual).
  </Property>
  <Property name="transmission_type" type="string">
    Transmission category. Example: `"Automatic"`, `"Manual"`, `"CVT"` (continuously variable), `"DCT"` (dual-clutch).
  </Property>
  <Property name="transmission_speeds" type="string">
    Number of forward gears. Example: `"6"`, `"8"`, `"10"`. CVTs may return `"1"`.
  </Property>
  <Property name="drivetrain" type="string">
    Wheel drive configuration. Example: `"RWD"` (rear-wheel drive), `"FWD"` (front-wheel drive), `"AWD"` (all-wheel drive), `"4WD"` (four-wheel drive with low range).
  </Property>
</Properties>

</details>

<details>
<summary>**Dimensions & Weight** — Physical measurements and weight ratings</summary>

<Properties>
  <Property name="overall_height" type="string">
    Vehicle height from ground to roof in inches, measured without roof rack or antenna. Example: `"58.00"`.
  </Property>
  <Property name="overall_length" type="string">
    Total vehicle length bumper-to-bumper in inches. Example: `"193.90"`.
  </Property>
  <Property name="overall_width" type="string">
    Vehicle width in inches, excluding mirrors. Example: `"73.90"`.
  </Property>
  <Property name="wheelbase_length" type="string">
    Distance between the center of the front and rear axles in inches. Longer wheelbases generally mean more interior space and better ride stability. Example: `"116.90"`.
  </Property>
  <Property name="curb_weight" type="string">
    Weight of the vehicle in pounds with all standard equipment and fluids, but no passengers or cargo. Example: `"3,869"`.
  </Property>
  <Property name="gross_vehicle_weight_rating" type="string">
    The GVWR — the maximum total weight the vehicle is rated to handle, including the vehicle itself plus passengers and cargo. Example: `"Class 1: 6000 lbs or less"`.
  </Property>
</Properties>

</details>

<details>
<summary>**Seating & Pricing** — Passenger capacity and original factory pricing</summary>

<Properties>
  <Property name="doors" type="string">
    Number of doors, including a tailgate or hatchback if applicable. Example: `"4"`, `"2"`, `"5"` (hatchback).
  </Property>
  <Property name="standard_seating" type="string">
    Standard passenger capacity as configured at the factory for this trim. Does not reflect aftermarket or optional seating changes. Example: `"5"`, `"7"`.
  </Property>
  <Property name="invoice_price" type="string">
    The dealer invoice price at the time of manufacture — what the dealer paid before any markup or incentives. This is a historical figure and does not reflect current market value. Example: `"$48,275 USD"`.
  </Property>
  <Property name="manufacturer_suggested_retail_price" type="string">
    The original sticker price set by the manufacturer at launch. Like invoice price, this is a historical figure from when the vehicle was built. Example: `"$52,100 USD"`.
  </Property>
</Properties>

</details>

### equipment

Each key in the `equipment` object is a snake_case feature name. The value is `"Std."` if the feature was standard on this trim, or an empty string if not.

```json
{
  "abs_brakes": "Std.",
  "leather_seat": "Std.",
  "navigation_aid": "",
  "power_sunroof": "Std."
}
```

Common flags: `abs_brakes`, `driver_airbag`, `passenger_airbag`, `side_airbag`, `traction_control`, `stability_control`, `leather_seat`, `navigation_aid`, `power_sunroof`, `backup_camera`, `bluetooth`, `alloy_wheels`, `keyless_entry`, `remote_start`.

See the [API Reference](/api-reference) for the full list of 70+ flags.

### colors

<Properties>
  <Property name="category" type="string">
    `"Exterior"` or `"Interior"`.
  </Property>
  <Property name="name" type="string">
    The manufacturer's color name for this option. Example: `"Alpine White"`, `"Black Dakota Leather"`.
  </Property>
</Properties>

### warranties

<Properties>
  <Property name="type" type="string">
    Coverage type: `"Basic"` (bumper-to-bumper), `"Powertrain"`, or `"Rust"` (corrosion perforation).
  </Property>
  <Property name="miles" type="string">
    Mileage limit for this warranty. Example: `"50,000 mile"` or `"Unlimited"`.
  </Property>
  <Property name="months" type="string">
    Time limit for this warranty from the original purchase date. Example: `"48 month"`.
  </Property>
</Properties>

## Regional behavior

<Note>
  **US VINs** are decoded via ClearVin and return the full attribute set described above.

  **Non-US VINs** automatically fall back to the international decoder, which returns a smaller set of fields (`make`, `model`, `year`, and a handful of others). If you need to suppress this fallback and receive a `404` instead of a partial response, pass `disableIntVINDecoding=1`.
</Note>

## Extended data (deepdata)

Pass `deepdata=1` to include additional extended fields. This makes a second upstream call and adds latency — only use it when you need fields that aren't in the standard response.

The extended data appears under the `deepdata` key as a flat `string → string` map:

```json
{
  "deepdata": {
    "Body Class": "Sedan/Saloon",
    "Fuel Type - Primary": "Gasoline",
    "Plant City": "DINGOLFING",
    "Gross Vehicle Weight Rating From": "Class 1: 6,000 lb or less (2,722 kg or less)",
    "Engine Number of Cylinders": "6"
  }
}
```

Key names are the raw extended-data variable names, not normalized. Availability varies by VIN.

## Errors

See the [Errors guide](/docs/guides/errors) for the full list. The most common case specific to this endpoint:

- **404** — `"No data found for this VIN. Try a deep search by setting deepdata=1 in your request"` — the VIN is valid but not in the primary database. Retry with `deepdata=1` to run a deeper fallback decode.
- **400** — `"Missing vin (vehicle identification number)"` or `"Wrong VIN length, must be 17 characters"` — fix the input, don't retry.

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
Docs-scoped sitemap: [/docs/sitemap.md](/docs/sitemap.md).
Well-known sitemap: [/.well-known/sitemap.md](/.well-known/sitemap.md).
