🇺🇸 United States - Vehicle by VIN
This service decodes a 17-character vehicle identification number (VIN) for a U.S. market vehicle and returns structured vehicle attributes (make, model, model year, engine, body class, and related fields) sourced from NHTSA VPIC-style data.
Endpoint
GET https://api.verifik.co/v2/usa/vehicle-by-vin
Decode a U.S. vehicle by VIN using the vin query parameter (exactly 17 characters). Optional force can bypass cached records when supported by the integration.
Headers
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
vin | string | Yes | 17-character VIN (letters and digits, no spaces). | 1G3AK47A7CM535209 |
force | string | No | When true, forces a fresh decode instead of returning a stored match (if applicable). | true |
Request
- JavaScript
- Python
- PHP
- Swift
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://api.verifik.co/v2/usa/vehicle-by-vin',
params: {
vin: '1G3AK47A7CM535209'
},
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer <your_token>'
}
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
import http.client
conn = http.client.HTTPSConnection("api.verifik.co")
payload = ''
headers = {}
conn.request("GET", "/v2/usa/vehicle-by-vin?vin=1G3AK47A7CM535209", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.verifik.co/v2/usa/vehicle-by-vin?vin=1G3AK47A7CM535209');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
?>
var request = URLRequest(url: URL(string: "https://api.verifik.co/v2/usa/vehicle-by-vin?vin=1G3AK47A7CM535209")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Response
- 200
- 404
- 409
- 500
{
"data": {
"make": "OLDSMOBILE",
"model": "Cutlass",
"modelYear": "1982",
"vehicleType": "PASSENGER CAR",
"vin": "1G3AK47A7CM535209"
},
"signature": {
"dateTime": "October 10, 2025 7:10 PM",
"message": "Certified by Verifik.co"
},
"id": "KFOFL"
}
{
"code": "NotFound",
"message": "Record not found."
}
{
"code": "MissingParameter",
"message": "Validation error message for VIN."
}
{
"code": "InternalServerError",
"message": "Server error."
}
Features
- VIN decode: 17-character VIN validation and decode
- NHTSA-aligned data: Structured technical and descriptive fields when available
- Consistent with plate lookup: Same normalized vehicle object shape as the U.S. plate endpoint where applicable