Vin Decoding and Vehicle Recalls

Our VinDecode endpoint allows you to decode a VIN and retrieve any available recall information with a single API call.


The python scripts below are written with Python 3.7, but many of them will work with other versions of python. If you don't have python installed you can get it here.

Our API is also available for general use from the following third parties:

Connect on RapidAPI

Breaking down a VIN

A Vehicle Identification Number (VIN) is a 17 digit serial number that uniquely identifies a specific vehicle and generally identifies specific features on it. The North American format VIN has 6 sections that identify the manufacturer, country of origin, vehicle attributes, the model year, the production plant, a serial number, and a check digit.

Diagram showing the VIN breakdown of 1G1JD6SH9J4126861

As we'll see when we make a vin lookup API request, the above VIN corresponds to a 2018 Chevrolet Sonic LT that was built in Orion Michigan. We'll also see that GM issued a recall notice for some 2018 Sonics on May 27, 2018 to fix a weld affecting the safety of the driver's seat.

We can still do a little decoding by just looking at the vin however. The first character "1" tells us the country of origin is the US and the next two ("G1") tell us it is a Chevrolet passenger car. To determine the year we can look up the value in a table to see that "J" corresponds to 2018, or we could also just say the alphabet from "A" (2010) until we get to "J". The letters "I", "O", and "Q" are not used in VINs, so we skip those when we say the alphabet. "U", "Z", and the number "0" can appear in a VIN, but they are not used for the model year field, so we would skip those too if we got to them.

We can also go further and use the vehicle history endpoint to see that it first sold in mid August 2018 with an MSRP of $20,885 and ask price of $13,885, that it was later put up for sale again in mid January 2020 as a Certified Pre Owned (CPO) vehicle with an original ask price of $14,750 and sold in mid Febuary with about 36k miles at an ask price of $11,500.

Using the vin decoder

This example assumes you have already set up your environment as discussed on the API Quick Start Page and have retrieved your access token.

Our VIN Decoder endpoint takes a single vin as an argument. It will decode the vin and search for any recall data submitted to NHTSA.


Example Code

#Here we submit a vin for decoding to retrieve the 
#vehicle data and any available recall information

import json
from cisapi import CisApi

#make get request to "/vinDecode" endpoint



print(json.dumps(resp.json(),indent=4, separators=(',', ': ')))

When we print the output we see:

    "brandName": "CHEVROLET",
    "modelName": "Sonic",
    "regionName": null,
    "condition": null,
    "msg": null,
    "cacheTimeLimit": 120,
    "data": {
        "ABS": "Standard",
        "ActiveSafetySysNote": "Rear Park Assist (with only Rear Sonar Sensors): Optional; Hill Start Assist",
        "AdditionalErrorText": "Unused position(s): 7;",
        "AutoReverseSystem": "Standard",
        "Axles": "2",
        "BasePrice": "17820",
        "BodyClass": "Hatchback/Liftback/Notchback",
        "CAN_AACN": "Standard",
        "DaytimeRunningLight": "Standard",
        "DisplacementCC": "1800.0",
        "DisplacementCI": "109.84273937051",
        "DisplacementL": "1.8",
        "Doors": "4",
        "DriveType": "FWD/Front Wheel Drive",
        "DynamicBrakeSupport": "Standard",
        "ESC": "Standard",
        "EngineCylinders": "4",
        "EngineHP": "138.125251",
        "EngineKW": "103",
        "EngineModel": "LUW - MFI, E85 MAX",
        "ForwardCollisionWarning": "Optional",
        "FuelInjectionType": "Multipoint Fuel Injection (MPFI)",
        "FuelTypePrimary": "Gasoline",
        "KeylessIgnition": "Optional",
        "LaneDepartureWarning": "Optional",
        "Make": "CHEVROLET",
        "Manufacturer": "GENERAL MOTORS LLC",
        "ManufacturerId": "984",
        "Model": "Sonic",
        "ModelYear": "2018",
        "PlantCity": "ORION",
        "PlantCompanyName": "GMNA",
        "PlantCountry": "UNITED STATES (USA)",
        "PlantState": "MICHIGAN",
        "RearVisibilitySystem": "Standard",
        "SeatRows": "2",
        "Seats": "5",
        "SemiautomaticHeadlampBeamSwitching": "Standard",
        "Series": "LT",
        "SteeringLocation": "Left Hand Drive (LHD)",
        "SuggestedVIN": "1G1JD6SH9J41  ",
        "TPMS": "Direct",
        "TopSpeedMPH": "108",
        "TractionControl": "Standard",
        "TransmissionStyle": "Automatic",
        "VIN": "1G1JD6SH9J4126861",
        "ValveTrainDesign": "Dual Overhead Cam (DOHC)",
        "VehicleType": "PASSENGER CAR",
        "WheelBaseShort": "99.4",
        "WheelSizeFront": "16",
        "WheelSizeRear": "16",
        "Wheels": "4",
        "Windows": "4",
        "RecallInfo": [
                "Manufacturer": "General Motors LLC",
                "NHTSACampaignNumber": "18V342000",
                "ReportReceivedDate": "2018-05-27",
                "Component": "SEATS",
                "Summary": "General Motors LLC (GM) is recalling certain 2018 Chevrolet Sonic vehicles.  A joint in the driver's seat-back frame may not be properly welded, reducing the strength of the seat-back frame.",
                "Conequence": "In the event of a rear-impact crash, the seat-back may fail, increasing the risk of injury.",
                "Remedy": "GM will notify owners, and dealers will replace the driver's seat-back, free of charge.  The recall began June 28, 2018.  Owners may contact Chevrolet customer service at 1-800-222-1020.  GM's number for this recall is 18178.",
                "Notes": "Owners may also contact the National Highway Traffic Safety Administration Vehicle Safety Hotline at 1-888-327-4236 (TTY 1-800-424-9153), or go to",
                "ModelYear": "2018",
                "Make": "CHEVROLET",
                "Model": "SONIC"