> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vehicle Identification

> Decode a vehicle identification number into make, model, year and build details.

Decode a 17-character vehicle identification number (VIN) into the vehicle it names: make, model, model year, trim, body class, engine, fuel, transmission, manufacturer and assembly plant. Use it to confirm that a vehicle in a listing, title, claim or invoice is what it says it is. Covers vehicles sold in the United States. `decoded` is false when the number does not resolve to a vehicle; `notes` then says why.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

<ParamField body="vin" type="string" required>
  The 17-character vehicle identification number. A VIN is 17 characters: digits and capital letters, never I, O or Q.
</ParamField>

<ParamField body="model_year" type="integer">
  Model year, when known. Resolves the year for numbers where position 10 is ambiguous. From 1981 to 2100.
</ParamField>

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

<ResponseField name="data.request_id" type="string">
  Durable job ID for audit and lookup
</ResponseField>

<ResponseField name="data.status" type="string">
  Job status: `completed`
</ResponseField>

<ResponseField name="data.tool" type="string">
  Always `vehicle_identification`
</ResponseField>

<ResponseField name="data.result" type="object">
  The answer, described under Result below
</ResponseField>

<ResponseField name="data.evidence" type="object">
  Where the answer came from and when
</ResponseField>

<ResponseField name="data.evidence.source" type="string">
  The public body the data comes from. Always `US National Highway Traffic Safety Administration`.
</ResponseField>

<ResponseField name="data.evidence.source_kind" type="string">
  `public` when the data comes from a public body, `commercial` otherwise
</ResponseField>

<ResponseField name="data.evidence.retrieved_at" type="string">
  When the lookup was made, as an ISO 8601 UTC time
</ResponseField>

<ResponseField name="data.evidence.as_of" type="string">
  When the source says the fact was last updated, or `null` when the source gives no date
</ResponseField>

## Result

Nested under `data.result`.

<ResponseField name="data.result.vin" type="string">
  Vin.
</ResponseField>

<ResponseField name="data.result.decoded" type="boolean">
  True when the number resolved to a make and model year.
</ResponseField>

<ResponseField name="data.result.check_digit_valid" type="boolean">
  True when position 9 matches the checksum of the other characters.
</ResponseField>

<ResponseField name="data.result.make" type="string">
  Make. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.model" type="string">
  Model. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.model_year" type="number">
  Model year. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.trim" type="string">
  Trim. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.series" type="string">
  Series. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.body_class" type="string">
  Body class. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.vehicle_type" type="string">
  Vehicle type. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.doors" type="number">
  Doors. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.drive_type" type="string">
  Drive type. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.engine_cylinders" type="number">
  Engine cylinders. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.engine_displacement_l" type="number">
  Engine displacement l. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.engine_horsepower" type="number">
  Engine horsepower. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.fuel_type" type="string">
  Fuel type. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.transmission" type="string">
  Transmission. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.gross_vehicle_weight_rating" type="string">
  Gross vehicle weight rating. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.manufacturer" type="string">
  Manufacturer. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.plant_city" type="string">
  Plant city. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.plant_state" type="string">
  Plant state. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.plant_country" type="string">
  Plant country. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.suggested_vin" type="string">
  A corrected number, when the decoder could infer one. `null` when the source gives no value.
</ResponseField>

<ResponseField name="data.result.notes" type="string[]">
  Decoder messages: what was wrong with the number, if anything.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://win.oneshotagent.com/v1/tools/lookup/vehicle-identification \
    -H "Content-Type: application/json" \
    -H "payment-signature: <base64 x402 payment>" \
    -d '{
      "vin": "1HGCM82633A004352"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/vehicle-identification", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "payment-signature": paymentProof,
    },
    body: JSON.stringify({
      "vin": "1HGCM82633A004352"
    }),
  });
  ```

  ```typescript SDK theme={null}
  const result = await agent.tool('lookup/vehicle-identification', {
    vin: '1HGCM82633A004352'
  });
  console.log(result.data.result);
  console.log(result.data.evidence);
  ```
</RequestExample>

<ResponseExample>
  ```json Response (200) theme={null}
  {
    "success": true,
    "data": {
      "request_id": "uuid",
      "receipt_id": "rcpt_...",
      "status": "completed",
      "tool": "vehicle_identification",
      "result": {
        "vin": "1HGCM82633A004352",
        "decoded": true,
        "check_digit_valid": true,
        "make": "HONDA",
        "model": "Accord",
        "model_year": 2003,
        "trim": "EX-V6",
        "series": null,
        "body_class": "Coupe",
        "vehicle_type": "PASSENGER CAR",
        "doors": 2,
        "drive_type": null,
        "engine_cylinders": 6,
        "engine_displacement_l": 3,
        "engine_horsepower": 240,
        "fuel_type": "Gasoline",
        "transmission": "Automatic",
        "gross_vehicle_weight_rating": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)",
        "manufacturer": "AMERICAN HONDA MOTOR CO., INC.",
        "plant_city": "MARYSVILLE",
        "plant_state": "OHIO",
        "plant_country": "UNITED STATES (USA)",
        "suggested_vin": null,
        "notes": []
      },
      "evidence": {
        "source": "US National Highway Traffic Safety Administration",
        "source_kind": "public",
        "retrieved_at": "2026-01-15T12:00:00.000Z",
        "as_of": null
      }
    }
  }
  ```
</ResponseExample>

<Info>Price: \$0.005 per lookup. See [Pricing](/pricing) for every tool.</Info>

## Notes

* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.