naftiko: 1.0.0-alpha2 info: label: NHTSA vPIC Vehicle API description: The NHTSA Product Information Catalog Vehicle Listing (vPIC) API provides endpoints to gather information on vehicles and their specifications, including decoding Vehicle Identification Numbers (VINs), accessing manufacturer details, and retrieving make, model, and equipment data. The vPIC dataset is populated using information submitted by motor vehicle manufacturers through the Part 565 submittals. tags: - National - Highway - Traffic - Safety - Administration - API created: '2026-05-06' modified: '2026-05-06' capability: consumes: - type: http namespace: national-highway-traffic-safety-administration baseUri: https://vpic.nhtsa.dot.gov/api/vehicles description: NHTSA vPIC Vehicle API HTTP API. resources: - name: decodevin-vin path: /DecodeVin/{vin} operations: - name: get-decodevin-vin method: GET description: Decode a VIN outputRawFormat: json outputParameters: - name: result type: object value: $. - name: decodevinvalues-vin path: /DecodeVinValues/{vin} operations: - name: get-decodevinvalues-vin method: GET description: Decode a VIN (flat values) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: decodevinextended-vin path: /DecodeVinExtended/{vin} operations: - name: get-decodevinextended-vin method: GET description: Decode a VIN with extended details outputRawFormat: json outputParameters: - name: result type: object value: $. - name: decodevinvaluesextended-vin path: /DecodeVinValuesExtended/{vin} operations: - name: get-decodevinvaluesextended-vin method: GET description: Decode a VIN with extended details (flat values) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: decodevinvaluesbatch path: /DecodeVINValuesBatch/ operations: - name: post-decodevinvaluesbatch method: POST description: Batch decode multiple VINs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: decodewmi-wmi path: /DecodeWMI/{wmi} operations: - name: get-decodewmi-wmi method: GET description: Decode a World Manufacturer Identifier inputParameters: - name: wmi in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getwmisformanufacturer-manufacturer path: /GetWMIsForManufacturer/{manufacturer} operations: - name: get-getwmisformanufacturer-manufacturer method: GET description: Get WMIs for a manufacturer inputParameters: - name: manufacturer in: path type: string required: true - name: vehicleType in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getallmanufacturers path: /GetAllManufacturers operations: - name: get-getallmanufacturers method: GET description: Get all manufacturers inputParameters: - name: ManufacturerType in: query type: string - name: page in: query type: integer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmanufacturerdetails-manufacturer path: /GetManufacturerDetails/{manufacturer} operations: - name: get-getmanufacturerdetails-manufacturer method: GET description: Get manufacturer details inputParameters: - name: manufacturer in: path type: string required: true - name: page in: query type: integer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getallmakes path: /GetAllMakes operations: - name: get-getallmakes method: GET description: Get all makes outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmakeformanufacturer-manufacturer path: /GetMakeForManufacturer/{manufacturer} operations: - name: get-getmakeformanufacturer-manufacturer method: GET description: Get makes for a manufacturer inputParameters: - name: manufacturer in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmakesformanufacturerandyear-manufacturer path: /GetMakesForManufacturerAndYear/{manufacturer} operations: - name: get-getmakesformanufacturerandyear-manufacturer method: GET description: Get makes for a manufacturer and year inputParameters: - name: manufacturer in: path type: string required: true - name: year in: query type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmakesforvehicletype-vehicletype path: /GetMakesForVehicleType/{vehicleType} operations: - name: get-getmakesforvehicletype-vehicletype method: GET description: Get makes for a vehicle type inputParameters: - name: vehicleType in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmodelsformake-makename path: /GetModelsForMake/{makeName} operations: - name: get-getmodelsformake-makename method: GET description: Get models for a make inputParameters: - name: makeName in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmodelsformakeid-makeid path: /GetModelsForMakeId/{makeId} operations: - name: get-getmodelsformakeid-makeid method: GET description: Get models for a make ID inputParameters: - name: makeId in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmodelsformakeyear-make-make-modelyear-modelye path: /GetModelsForMakeYear/make/{make}/modelyear/{modelyear} operations: - name: get-getmodelsformakeyear-make-make-modelyear-mod method: GET description: Get models for a make and model year inputParameters: - name: make in: path type: string required: true - name: modelyear in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getmodelsformakeidyear-makeid-makeid-modelyear-m path: /GetModelsForMakeIdYear/makeId/{makeId}/modelyear/{modelyear} operations: - name: get-getmodelsformakeidyear-makeid-makeid-modelye method: GET description: Get models for a make ID and model year inputParameters: - name: makeId in: path type: integer required: true - name: modelyear in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getvehicletypesformake-makename path: /GetVehicleTypesForMake/{makeName} operations: - name: get-getvehicletypesformake-makename method: GET description: Get vehicle types for a make inputParameters: - name: makeName in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getvehicletypesformakeid-makeid path: /GetVehicleTypesForMakeId/{makeId} operations: - name: get-getvehicletypesformakeid-makeid method: GET description: Get vehicle types for a make ID inputParameters: - name: makeId in: path type: integer required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getvehiclevariablelist path: /GetVehicleVariableList operations: - name: get-getvehiclevariablelist method: GET description: Get list of vehicle variables outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getvehiclevariablevalueslist-variable path: /GetVehicleVariableValuesList/{variable} operations: - name: get-getvehiclevariablevalueslist-variable method: GET description: Get values for a vehicle variable inputParameters: - name: variable in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getequipmentplantcodes path: /GetEquipmentPlantCodes operations: - name: get-getequipmentplantcodes method: GET description: Get equipment plant codes inputParameters: - name: year in: query type: integer required: true - name: equipmentType in: query type: integer - name: reportType in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getparts path: /GetParts operations: - name: get-getparts method: GET description: Get parts inputParameters: - name: type in: query type: integer - name: fromDate in: query type: string - name: toDate in: query type: string - name: manufacturer in: query type: string - name: page in: query type: integer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getcanadianvehiclespecifications path: /GetCanadianVehicleSpecifications/ operations: - name: get-getcanadianvehiclespecifications method: GET description: Get Canadian vehicle specifications inputParameters: - name: year in: query type: integer required: true - name: make in: query type: string required: true - name: model in: query type: string - name: units in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: national-highway-traffic-safety-administration-rest description: REST adapter for NHTSA vPIC Vehicle API. resources: - path: /DecodeVin/{vin} name: get-decodevin-vin operations: - method: GET name: get-decodevin-vin description: Decode a VIN call: national-highway-traffic-safety-administration.get-decodevin-vin outputParameters: - type: object mapping: $. - path: /DecodeVinValues/{vin} name: get-decodevinvalues-vin operations: - method: GET name: get-decodevinvalues-vin description: Decode a VIN (flat values) call: national-highway-traffic-safety-administration.get-decodevinvalues-vin outputParameters: - type: object mapping: $. - path: /DecodeVinExtended/{vin} name: get-decodevinextended-vin operations: - method: GET name: get-decodevinextended-vin description: Decode a VIN with extended details call: national-highway-traffic-safety-administration.get-decodevinextended-vin outputParameters: - type: object mapping: $. - path: /DecodeVinValuesExtended/{vin} name: get-decodevinvaluesextended-vin operations: - method: GET name: get-decodevinvaluesextended-vin description: Decode a VIN with extended details (flat values) call: national-highway-traffic-safety-administration.get-decodevinvaluesextended-vin outputParameters: - type: object mapping: $. - path: /DecodeVINValuesBatch/ name: post-decodevinvaluesbatch operations: - method: POST name: post-decodevinvaluesbatch description: Batch decode multiple VINs call: national-highway-traffic-safety-administration.post-decodevinvaluesbatch outputParameters: - type: object mapping: $. - path: /DecodeWMI/{wmi} name: get-decodewmi-wmi operations: - method: GET name: get-decodewmi-wmi description: Decode a World Manufacturer Identifier call: national-highway-traffic-safety-administration.get-decodewmi-wmi with: wmi: rest.wmi outputParameters: - type: object mapping: $. - path: /GetWMIsForManufacturer/{manufacturer} name: get-getwmisformanufacturer-manufacturer operations: - method: GET name: get-getwmisformanufacturer-manufacturer description: Get WMIs for a manufacturer call: national-highway-traffic-safety-administration.get-getwmisformanufacturer-manufacturer with: manufacturer: rest.manufacturer outputParameters: - type: object mapping: $. - path: /GetAllManufacturers name: get-getallmanufacturers operations: - method: GET name: get-getallmanufacturers description: Get all manufacturers call: national-highway-traffic-safety-administration.get-getallmanufacturers outputParameters: - type: object mapping: $. - path: /GetManufacturerDetails/{manufacturer} name: get-getmanufacturerdetails-manufacturer operations: - method: GET name: get-getmanufacturerdetails-manufacturer description: Get manufacturer details call: national-highway-traffic-safety-administration.get-getmanufacturerdetails-manufacturer with: manufacturer: rest.manufacturer outputParameters: - type: object mapping: $. - path: /GetAllMakes name: get-getallmakes operations: - method: GET name: get-getallmakes description: Get all makes call: national-highway-traffic-safety-administration.get-getallmakes outputParameters: - type: object mapping: $. - path: /GetMakeForManufacturer/{manufacturer} name: get-getmakeformanufacturer-manufacturer operations: - method: GET name: get-getmakeformanufacturer-manufacturer description: Get makes for a manufacturer call: national-highway-traffic-safety-administration.get-getmakeformanufacturer-manufacturer with: manufacturer: rest.manufacturer outputParameters: - type: object mapping: $. - path: /GetMakesForManufacturerAndYear/{manufacturer} name: get-getmakesformanufacturerandyear-manufacturer operations: - method: GET name: get-getmakesformanufacturerandyear-manufacturer description: Get makes for a manufacturer and year call: national-highway-traffic-safety-administration.get-getmakesformanufacturerandyear-manufacturer with: manufacturer: rest.manufacturer outputParameters: - type: object mapping: $. - path: /GetMakesForVehicleType/{vehicleType} name: get-getmakesforvehicletype-vehicletype operations: - method: GET name: get-getmakesforvehicletype-vehicletype description: Get makes for a vehicle type call: national-highway-traffic-safety-administration.get-getmakesforvehicletype-vehicletype with: vehicleType: rest.vehicleType outputParameters: - type: object mapping: $. - path: /GetModelsForMake/{makeName} name: get-getmodelsformake-makename operations: - method: GET name: get-getmodelsformake-makename description: Get models for a make call: national-highway-traffic-safety-administration.get-getmodelsformake-makename with: makeName: rest.makeName outputParameters: - type: object mapping: $. - path: /GetModelsForMakeId/{makeId} name: get-getmodelsformakeid-makeid operations: - method: GET name: get-getmodelsformakeid-makeid description: Get models for a make ID call: national-highway-traffic-safety-administration.get-getmodelsformakeid-makeid with: makeId: rest.makeId outputParameters: - type: object mapping: $. - path: /GetModelsForMakeYear/make/{make}/modelyear/{modelyear} name: get-getmodelsformakeyear-make-make-modelyear-mod operations: - method: GET name: get-getmodelsformakeyear-make-make-modelyear-mod description: Get models for a make and model year call: national-highway-traffic-safety-administration.get-getmodelsformakeyear-make-make-modelyear-mod with: make: rest.make modelyear: rest.modelyear outputParameters: - type: object mapping: $. - path: /GetModelsForMakeIdYear/makeId/{makeId}/modelyear/{modelyear} name: get-getmodelsformakeidyear-makeid-makeid-modelye operations: - method: GET name: get-getmodelsformakeidyear-makeid-makeid-modelye description: Get models for a make ID and model year call: national-highway-traffic-safety-administration.get-getmodelsformakeidyear-makeid-makeid-modelye with: makeId: rest.makeId modelyear: rest.modelyear outputParameters: - type: object mapping: $. - path: /GetVehicleTypesForMake/{makeName} name: get-getvehicletypesformake-makename operations: - method: GET name: get-getvehicletypesformake-makename description: Get vehicle types for a make call: national-highway-traffic-safety-administration.get-getvehicletypesformake-makename with: makeName: rest.makeName outputParameters: - type: object mapping: $. - path: /GetVehicleTypesForMakeId/{makeId} name: get-getvehicletypesformakeid-makeid operations: - method: GET name: get-getvehicletypesformakeid-makeid description: Get vehicle types for a make ID call: national-highway-traffic-safety-administration.get-getvehicletypesformakeid-makeid with: makeId: rest.makeId outputParameters: - type: object mapping: $. - path: /GetVehicleVariableList name: get-getvehiclevariablelist operations: - method: GET name: get-getvehiclevariablelist description: Get list of vehicle variables call: national-highway-traffic-safety-administration.get-getvehiclevariablelist outputParameters: - type: object mapping: $. - path: /GetVehicleVariableValuesList/{variable} name: get-getvehiclevariablevalueslist-variable operations: - method: GET name: get-getvehiclevariablevalueslist-variable description: Get values for a vehicle variable call: national-highway-traffic-safety-administration.get-getvehiclevariablevalueslist-variable with: variable: rest.variable outputParameters: - type: object mapping: $. - path: /GetEquipmentPlantCodes name: get-getequipmentplantcodes operations: - method: GET name: get-getequipmentplantcodes description: Get equipment plant codes call: national-highway-traffic-safety-administration.get-getequipmentplantcodes outputParameters: - type: object mapping: $. - path: /GetParts name: get-getparts operations: - method: GET name: get-getparts description: Get parts call: national-highway-traffic-safety-administration.get-getparts outputParameters: - type: object mapping: $. - path: /GetCanadianVehicleSpecifications/ name: get-getcanadianvehiclespecifications operations: - method: GET name: get-getcanadianvehiclespecifications description: Get Canadian vehicle specifications call: national-highway-traffic-safety-administration.get-getcanadianvehiclespecifications outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: national-highway-traffic-safety-administration-mcp transport: http description: MCP adapter for NHTSA vPIC Vehicle API for AI agent use. tools: - name: get-decodevin-vin description: Decode a VIN hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-decodevin-vin outputParameters: - type: object mapping: $. - name: get-decodevinvalues-vin description: Decode a VIN (flat values) hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-decodevinvalues-vin outputParameters: - type: object mapping: $. - name: get-decodevinextended-vin description: Decode a VIN with extended details hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-decodevinextended-vin outputParameters: - type: object mapping: $. - name: get-decodevinvaluesextended-vin description: Decode a VIN with extended details (flat values) hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-decodevinvaluesextended-vin outputParameters: - type: object mapping: $. - name: post-decodevinvaluesbatch description: Batch decode multiple VINs hints: readOnly: false destructive: false idempotent: false call: national-highway-traffic-safety-administration.post-decodevinvaluesbatch outputParameters: - type: object mapping: $. - name: get-decodewmi-wmi description: Decode a World Manufacturer Identifier hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-decodewmi-wmi with: wmi: tools.wmi inputParameters: - name: wmi type: string description: wmi required: true outputParameters: - type: object mapping: $. - name: get-getwmisformanufacturer-manufacturer description: Get WMIs for a manufacturer hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getwmisformanufacturer-manufacturer with: manufacturer: tools.manufacturer vehicleType: tools.vehicleType inputParameters: - name: manufacturer type: string description: manufacturer required: true - name: vehicleType type: string description: vehicleType outputParameters: - type: object mapping: $. - name: get-getallmanufacturers description: Get all manufacturers hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getallmanufacturers with: ManufacturerType: tools.ManufacturerType page: tools.page inputParameters: - name: ManufacturerType type: string description: ManufacturerType - name: page type: integer description: page outputParameters: - type: object mapping: $. - name: get-getmanufacturerdetails-manufacturer description: Get manufacturer details hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmanufacturerdetails-manufacturer with: manufacturer: tools.manufacturer page: tools.page inputParameters: - name: manufacturer type: string description: manufacturer required: true - name: page type: integer description: page outputParameters: - type: object mapping: $. - name: get-getallmakes description: Get all makes hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getallmakes outputParameters: - type: object mapping: $. - name: get-getmakeformanufacturer-manufacturer description: Get makes for a manufacturer hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmakeformanufacturer-manufacturer with: manufacturer: tools.manufacturer inputParameters: - name: manufacturer type: string description: manufacturer required: true outputParameters: - type: object mapping: $. - name: get-getmakesformanufacturerandyear-manufacturer description: Get makes for a manufacturer and year hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmakesformanufacturerandyear-manufacturer with: manufacturer: tools.manufacturer year: tools.year inputParameters: - name: manufacturer type: string description: manufacturer required: true - name: year type: integer description: year required: true outputParameters: - type: object mapping: $. - name: get-getmakesforvehicletype-vehicletype description: Get makes for a vehicle type hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmakesforvehicletype-vehicletype with: vehicleType: tools.vehicleType inputParameters: - name: vehicleType type: string description: vehicleType required: true outputParameters: - type: object mapping: $. - name: get-getmodelsformake-makename description: Get models for a make hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmodelsformake-makename with: makeName: tools.makeName inputParameters: - name: makeName type: string description: makeName required: true outputParameters: - type: object mapping: $. - name: get-getmodelsformakeid-makeid description: Get models for a make ID hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmodelsformakeid-makeid with: makeId: tools.makeId inputParameters: - name: makeId type: integer description: makeId required: true outputParameters: - type: object mapping: $. - name: get-getmodelsformakeyear-make-make-modelyear-mod description: Get models for a make and model year hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmodelsformakeyear-make-make-modelyear-mod with: make: tools.make modelyear: tools.modelyear inputParameters: - name: make type: string description: make required: true - name: modelyear type: integer description: modelyear required: true outputParameters: - type: object mapping: $. - name: get-getmodelsformakeidyear-makeid-makeid-modelye description: Get models for a make ID and model year hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getmodelsformakeidyear-makeid-makeid-modelye with: makeId: tools.makeId modelyear: tools.modelyear inputParameters: - name: makeId type: integer description: makeId required: true - name: modelyear type: integer description: modelyear required: true outputParameters: - type: object mapping: $. - name: get-getvehicletypesformake-makename description: Get vehicle types for a make hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getvehicletypesformake-makename with: makeName: tools.makeName inputParameters: - name: makeName type: string description: makeName required: true outputParameters: - type: object mapping: $. - name: get-getvehicletypesformakeid-makeid description: Get vehicle types for a make ID hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getvehicletypesformakeid-makeid with: makeId: tools.makeId inputParameters: - name: makeId type: integer description: makeId required: true outputParameters: - type: object mapping: $. - name: get-getvehiclevariablelist description: Get list of vehicle variables hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getvehiclevariablelist outputParameters: - type: object mapping: $. - name: get-getvehiclevariablevalueslist-variable description: Get values for a vehicle variable hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getvehiclevariablevalueslist-variable with: variable: tools.variable inputParameters: - name: variable type: string description: variable required: true outputParameters: - type: object mapping: $. - name: get-getequipmentplantcodes description: Get equipment plant codes hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getequipmentplantcodes with: year: tools.year equipmentType: tools.equipmentType reportType: tools.reportType inputParameters: - name: year type: integer description: year required: true - name: equipmentType type: integer description: equipmentType - name: reportType type: string description: reportType outputParameters: - type: object mapping: $. - name: get-getparts description: Get parts hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getparts with: type: tools.type fromDate: tools.fromDate toDate: tools.toDate manufacturer: tools.manufacturer page: tools.page inputParameters: - name: type type: integer description: type - name: fromDate type: string description: fromDate - name: toDate type: string description: toDate - name: manufacturer type: string description: manufacturer - name: page type: integer description: page outputParameters: - type: object mapping: $. - name: get-getcanadianvehiclespecifications description: Get Canadian vehicle specifications hints: readOnly: true destructive: false idempotent: true call: national-highway-traffic-safety-administration.get-getcanadianvehiclespecifications with: year: tools.year make: tools.make model: tools.model units: tools.units inputParameters: - name: year type: integer description: year required: true - name: make type: string description: make required: true - name: model type: string description: model - name: units type: string description: units outputParameters: - type: object mapping: $.