Skip to main content
GET
/
api
/
vin
VIN Lookup
curl --request GET \
  --url https://www.osintcat.net/api/vin \
  --header 'X-API-KEY: <x-api-key>'
Decode Vehicle Identification Numbers (VINs) and query vehicle data from the NHTSA vPIC API. Supports single/batch VIN decode, WMI decode, makes & models, manufacturers, vehicle variables, and Canadian vehicle specifications.

Headers

X-API-KEY
string
required
Your API key

Parameters

All requests require a type parameter. Other parameters depend on the operation. Use the fields below in the Try it panel; the tables describe which apply to each type.
type
string
required
Operation type
query
string
VIN (decode/batch), WMI code (wmi), or search term (makes, manufacturers, variables). Not used for canadian.
model_year
number
Model year 1981+. For type=decode only. Recommended for partial VINs.
extended
boolean
default:"false"
If true, include extended NHTSA variables. For type=decode only.
search_type
string
Sub-operation. Required for type=makes, manufacturers, variables.
year
number
Model year. For type=makes (manufacturer, models) and type=canadian (required).
vehicle_type
string
e.g. Passenger Car, Truck. For type=makes (models) and type=manufacturers (wmis).
mfr_type
string
Manufacturer type filter. For type=manufacturers, search_type=all.
from_date
string
Start date. Required for type=manufacturers, search_type=parts.
to_date
string
End date. Required for type=manufacturers, search_type=parts.
parts_type
string
default:"565"
Parts doc type. For type=manufacturers, search_type=parts. Default: 565.
page
number
default:"1"
Page number. For type=manufacturers. Default: 1.
make
string
Make. Required for type=canadian.
model
string
Model name. For type=canadian.
units
string
default:"Metric"
Units for type=canadian. Metric or Imperial (Imperial is sent as US to the API). Default: Metric.

type: decode

Decode a 17-digit VIN or partial VIN (use * for missing characters).
ParameterTypeRequiredDescription
querystringYesVIN (6–17 chars) or partial VIN
model_yearintNoModel year (1981+). Recommended for pre-1980.
extendedboolNotrue for extended NHTSA variables. Default: false.

type: batch

Decode up to 50 VINs at once. One per line; optional format: VIN, model_year.
ParameterTypeRequiredDescription
querystringYesVINs, one per line. Max 50.

type: wmi

Decode a World Manufacturer Identifier (3 or 6 characters).
ParameterTypeRequiredDescription
querystringYesWMI code (e.g. 1FT, JHM)

type: makes

Search makes, models, and vehicle types.
ParameterTypeRequiredDescription
search_typestringYesall, manufacturer, vehicletype, models, vehicletypes
querystringNo*Manufacturer/make/vehicle type (see search_type). *Required except for all.
yearintNoModel year (for manufacturer, models)
vehicle_typestringNoe.g. Passenger Car, Truck (for models)

type: manufacturers

Search manufacturers, WMIs, and parts documentation.
ParameterTypeRequiredDescription
search_typestringYesall, details, wmis, parts
querystringNo*Manufacturer name or ID. *Required for details, wmis.
mfr_typestringNoe.g. Completed Vehicle Manufacturer (for all)
from_datestringNo*YYYY-MM-DD. *Required for parts.
to_datestringNo*YYYY-MM-DD. *Required for parts.
parts_typestringNo565 or 566. Default: 565. (for parts)
vehicle_typestringNo(for wmis)
pageintNoPage number. Default: 1.

type: variables

Get the list of vehicle variables or values for a specific variable.
ParameterTypeRequiredDescription
search_typestringYeslist (all variables) or values (values for one variable)
querystringNo*Variable name (e.g. Vehicle Type, Make). *Required for values.

type: canadian

Get Canadian Vehicle Specifications (1971+). Uses year and make; query is not used.
ParameterTypeRequiredDescription
yearintYesModel year (1971+)
makestringYesMake (e.g. Honda, Toyota)
modelstringNoModel name
unitsstringNoMetric or Imperial (Imperial is sent as US to the API). Default: Metric.

Response

Returns JSON. Structure depends on type (object for decode/wmi, array for makes/manufacturers/variables/list, etc.).

Example: Decode VIN

curl "https://www.osintcat.net/api/vin?type=decode&query=1HGBH41JXMN109186&model_year=2021" \
     -H "X-API-KEY: YOUR_API_KEY"

Example: WMI Decode

curl "https://www.osintcat.net/api/vin?type=wmi&query=1FT" \
     -H "X-API-KEY: YOUR_API_KEY"

Example: Get All Makes

curl "https://www.osintcat.net/api/vin?type=makes&search_type=all&query=" \
     -H "X-API-KEY: YOUR_API_KEY"
Or with a dummy query (some clients omit empty query):
curl "https://www.osintcat.net/api/vin?type=makes&search_type=all" \
     -H "X-API-KEY: YOUR_API_KEY"

Example: Models by Make

curl "https://www.osintcat.net/api/vin?type=makes&search_type=models&query=Tesla&year=2023" \
     -H "X-API-KEY: YOUR_API_KEY"

Example: Variable List

curl "https://www.osintcat.net/api/vin?type=variables&search_type=list" \
     -H "X-API-KEY: YOUR_API_KEY"

Example: Variable Values

curl "https://www.osintcat.net/api/vin?type=variables&search_type=values&query=Vehicle%20Type" \
     -H "X-API-KEY: YOUR_API_KEY"

Example: Canadian Vehicle Specifications

curl "https://www.osintcat.net/api/vin?type=canadian&year=2022&make=Honda&model=Civic&units=Metric" \
     -H "X-API-KEY: YOUR_API_KEY"

Example: Batch Decode

# Send VINs as newline-separated in query (URL-encode newlines as %0A)
curl "https://www.osintcat.net/api/vin?type=batch&query=1HGBH41JXMN109186%0A5YJ3E1EA1KF123456" \
     -H "X-API-KEY: YOUR_API_KEY"
For batch, query can also be sent in the request body as form data or in a POST with a JSON body if your client supports it; the backend reads query from request.args.

Error Responses

CodeDescription
400Bad request: missing/invalid query (when required), invalid type or search_type, or validation error (e.g. from_date/to_date required for parts).
403Invalid or missing X-API-KEY.
429Rate limit exceeded.
500vPIC or internal error.
Errors return JSON, e.g. {"error": "query parameter is required"}.