DecodeThis API Documentation
Integrate VIN decoding into your apps with our RESTful Vehicle API — complete vehicle data, specifications, and recall information via JSON or XML.
On This Page
VIN API Quick Start Guide
Get up and running with our Vehicle Identification Number API in minutes. Start decoding vehicle data instantly.
Get your VIN API key from your dashboard and include it in the Authorization header for Vehicle API authentication.
# Include your API key in requests
curl -H "Authorization: Bearer ak_your_api_key_here" \
https://api.decodethis.com/v1/vins/1HGBH41JXMN109186/decode
Decode any 17-character Vehicle Identification Number (VIN) with a simple GET request to our Vehicle API.
# Decode a VIN
GET /api/v1/vins/1HGBH41JXMN109186/decode
# Response
{
"success": true,
"data": { "year": 2013, "make": "Honda", ... }
}
Interactive API Documentation
Try our API directly in your browser with Swagger UI. Our interactive documentation is powered by OpenAPI 3.0 — test endpoints, see real responses, and understand request/response schemas in a user-friendly interface.
- Try It Live — execute API calls directly from the documentation
- Complete Schemas — detailed request and response object schemas
- Authentication — test with your own API keys securely
Opens in a new tab
API Reference
Complete reference for all available endpoints.
https://api.decodethis.com/v1
DecodeThis API provides two levels of vehicle data depending on your subscription plan:
Basic VIN Decode
- Standard vehicle information (year, make, model, trim)
- Engine and transmission details
- Categorized specifications
- Country and manufacturer information
Full VIN Decode
- All Basic VIN Decode features
- Complete raw pattern data
- Advanced vehicle specifications
- Detailed trim information and options
- MSRP and pricing data
Decode VINGET
Decode a Vehicle Identification Number and retrieve comprehensive vehicle information. Response content varies by subscription level.
GET /vins/{vin}/decode
| Parameter | Type | Description |
|---|---|---|
vin | string (required) | 17-character Vehicle Identification Number |
format | string (optional) | Response format: json (default) or xml |
detail | string (optional) | Response detail level: minimal, standard (default), or detailed |
{
"success": true,
"data": {
"vin": "SADCJ2FX2LA628929",
"year": 2020,
"make": "Jaguar",
"model": "F-Pace",
"trim": "25t Premium",
"body_style": "SEDAN 4-DR",
"engine": "2.0L L4 DOHC 16V",
"transmission": "8-Speed Automatic",
"drive_type": "AWD",
"fuel_type": "Gasoline",
"doors": 4,
"country": "United Kingdom",
"manufacturer": "Jaguar",
"categorized_specifications": {
"Basic Information": [
{"category": "Model Year", "value": "2020"},
{"category": "Make", "value": "Jaguar"},
{"category": "Model", "value": "F-Pace"}
],
"Engine & Performance": [
{"category": "Engine Type", "value": "2.0L L4 DOHC 16V"}
]
},
"data_source": "pattern_export",
"pattern_matched": "SADCJ2FX L"
},
"cached": false,
"timestamp": "2024-01-15T10:30:00Z"
}
{
"success": true,
"data": {
"vin": "SADCJ2FX2LA628929",
"year": 2020,
"make": "Jaguar",
"model": "F-Pace",
"trim": "25t Premium",
"body_style": "SEDAN 4-DR",
"engine": "2.0L L4 DOHC 16V",
"transmission": "8-Speed Automatic",
"drive_type": "AWD",
"fuel_type": "Gasoline",
"doors": 4,
"country": "United Kingdom",
"manufacturer": "Jaguar",
"categorized_specifications": {
"Basic Information": [
{"category": "Model Year", "value": "2020"},
{"category": "Make", "value": "Jaguar"},
{"category": "Model", "value": "F-Pace"}
],
"Engine & Performance": [
{"category": "Engine Type", "value": "2.0L L4 DOHC 16V"}
]
},
"data_source": "pattern_export",
"pattern_matched": "SADCJ2FX L",
"data": {
"name": "2020 Jaguar F-Pace",
"model_year": 2020,
"manufacturer": "Jaguar",
"series_name": "F-Pace",
"regex": "SADCJ2FX L",
"trims": [
{
"name": "25t Premium",
"vehicle_id": 70316,
"items": [
{"category": "Model Year", "value": "2020"},
{"category": "Make", "value": "Jaguar"},
{"category": "MSRP", "value": "$47,800"}
]
}
]
}
},
"cached": false,
"timestamp": "2024-01-15T10:30:00Z"
}
Batch Decode VINsPOST
Decode multiple VINs in a single request (up to 100 VINs).
POST /vins/batch_decode
{
"vins": [
"1HGBH41JXMN109186",
"2HGFB2F50EH542093",
"WBXHT93488L100234"
],
"format": "json"
}
{
"success": true,
"results": [
{
"vin": "1HGBH41JXMN109186",
"success": true,
"data": { ... }
},
{
"vin": "2HGFB2F50EH542093",
"success": true,
"data": { ... }
},
{
"vin": "WBXHT93488L100234",
"success": false,
"error": "VIN not found"
}
],
"total_processed": 3,
"successful": 2,
"failed": 1
}
Authentication
Secure your API requests with proper authentication.
All API requests require authentication using your API key. Include your API key in the Authorization header using Bearer authentication.
# Example request with authentication
curl -H "Authorization: Bearer ak_your_api_key_here" \
-H "Content-Type: application/json" \
https://api.decodethis.com/v1/vins/1HGBH41JXMN109186/decode
Keep your API keys secure
Never expose your API keys in client-side code or public repositories. Store them securely as environment variables.
API requests are rate limited based on your subscription plan. Rate limits are enforced per API key.
| Plan | Requests/Minute | Requests/Hour | Monthly Limit |
|---|---|---|---|
| Free | 1 | 60 | 100 |
| Ad-Free Basic | 1 | 60 | 1,000 |
| Professional | 5 | 300 | 5,000 |
| Business | 10 | 600 | 25,000 |
| Enterprise | 50 | 3,000 | Unlimited |
Error Handling
Understand API error responses and status codes.
All API errors return a consistent JSON response format with detailed error information.
{
"success": false,
"error": {
"code": "VIN_INVALID_FORMAT",
"message": "VIN must be exactly 17 characters",
"details": "Provided VIN '1HGBH41JXM' is only 10 characters"
},
"request_id": "req_abc123"
}
Request successful, VIN decoded
Invalid VIN format or malformed request
Missing or invalid API key
Quota exceeded, upgrade required
VIN not found in database
Rate limit exceeded
Server error, contact support
Temporary service outage
SDKs & Code Examples
Get started quickly with our official SDKs and examples.
// Using fetch API
const response = await fetch(
'https://api.decodethis.com/v1/vins/1HGBH41JXMN109186/decode',
{
headers: {
'Authorization': 'Bearer ak_your_api_key_here',
'Content-Type': 'application/json'
}
}
);
const data = await response.json();
console.log(data.data); // Vehicle information
import requests
url = "https://api.decodethis.com/v1/vins/1HGBH41JXMN109186/decode"
headers = {
"Authorization": "Bearer ak_your_api_key_here",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json()
print(data['data']) # Vehicle information
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.decodethis.com/v1/vins/1HGBH41JXMN109186/decode',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ak_your_api_key_here',
'Content-Type: application/json'
]
]);
$response = curl_exec($curl);
$data = json_decode($response, true);
print_r($data['data']); // Vehicle information
?>
require 'net/http'
require 'json'
uri = URI('https://api.decodethis.com/v1/vins/1HGBH41JXMN109186/decode')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer ak_your_api_key_here'
request['Content-Type'] = 'application/json'
response = http.request(request)
data = JSON.parse(response.body)
puts data['data'] # Vehicle information
MCP Server for AI Tools
Connect Claude and other AI tools directly to VinDecoder via the Model Context Protocol. Use your existing API key to give AI assistants access to VIN decoding, lookups, and more via /mcp.
Need Help?
Our team is here to help you integrate the DecodeThis API successfully.
- Documentation — comprehensive guides and API reference
- Support — get help from our technical support team
- Community — connect with other developers