Integrate comprehensive vehicle data directly into your applications. Access millions of vehicle records and data from Japan, UK, USA, and Malaysia with our simple REST API.
curl -X GET "https://api.otofacts.com/v3/health" \
-H "Accept: application/json"
This endpoint doesn't require an API key - try it now!
Our API provides comprehensive vehicle data from multiple sources, making it easy to integrate into your applications.
Response times measured in milliseconds, not seconds. Built for high performance and reliability.
Access comprehensive vehicle data from multiple trusted sources across different countries.
RESTful API with clear documentation and examples in multiple programming languages.
High uptime guarantee with enterprise-grade security. HTTPS encryption and secure API key authentication.
Postman collection, code examples in multiple languages, and sandbox mode for safe testing.
Pay only for what you use with transparent pricing. No monthly fees. All fees disclosed upfront.
Simple HTTP requests return JSON responses. We provide libraries for popular languages to make integration even easier.
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://api.otofacts.com/v3/',
'headers' => [
'Accept' => 'application/json'
]
]);
// Check API health (no authentication required)
$response = $client->get('health');
$data = json_decode($response->getBody(), true);
echo "API Status: " . $data['status'];
echo "Version: " . $data['version'];
# Check API health (no authentication required)
curl -X GET "https://api.otofacts.com/v3/health" \
-H "Accept: application/json"
import requests
import json
# Check API health (no authentication required)
response = requests.get(
'https://api.otofacts.com/v3/health',
headers={'Accept': 'application/json'}
)
data = response.json()
print(f"API Status: {data['status']}")
print(f"Version: {data['version']}")
const axios = require('axios');
async function checkApiHealth() {
try {
const response = await axios.get(
'https://api.otofacts.com/v3/health',
{
headers: {
'Accept': 'application/json'
}
}
);
console.log('API Status:', response.data.status);
console.log('Version:', response.data.version);
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
}
checkApiHealth();
Get detailed vehicle information including basic details, extended specifications, and road tax status in JSON format.
{
"success": true,
"status": 200,
"data": {
"query": "WP0ZZZ97ZHL104468",
"report": {
"basicVehicleInformation": {
"averageMileagePerYear": null,
"door": 5,
"bodyStyle": "Coupe",
"doorPlan": "5 DOOR HATCHBACK",
"cc": "2,995cc",
"color": "WHITE",
"engineNumber": "006456",
"fuel": "PETROL",
"transmission": "AUTO 8 GEARS",
"hasVehicleAge": true,
"isUnderThreeYearsOld": false,
"make": "PORSCHE",
"yearOfManufacture": "2017",
"mileageBetweenLastMotPasses": null,
"model": "PANAMERA 4 S-A",
"registrationPlateDate": null,
"dateFirstRegisteredUk": "17 July 2017",
"vehicleUsedBeforeFirstRegistration": false,
"vin": "WP0ZZZ97ZHL104468",
"vehicleAge": "8 years, 1 month",
"vehicleType": "Car",
"vinEndsWith": "68",
"vinLastFiveCharacters": "*******04468",
"vrm": "LB17HWO",
"wheelPlan": "2 AXLE RIGID BODY",
"countryOfOrigin": "Germany",
"electricVehicleData": null,
"isElectricVehicle": false
},
"environmentalInformation": {
"hasCo2OutputOfVehicle": true,
"co2LetterMarker": null,
"co2OuputOfVehicle": 175,
"co2OutputUnit": "g/km",
"fuelEconomyDataModel": {
"fuelEconomyDataExists": true,
"imperialCombinedEconomy": "36.7 mpg",
"imperialExtraUrbanEconomy": "44.1 mpg",
"imperialUrbanEconomy": "28.8 mpg",
"metricCombinedEconomy": "7.7 Lkm",
"metricExtraUrbanEconomy": "6.4 Lkm",
"metricUrbanEconomy": "9.8Lkm"
}
},
"extendedVehicleInformation": {
"bhp": "325.4 BHP",
"torque": null,
"bodyStyle": "Coupe",
"cylinderCount": 6,
"cylinderLayout": "V",
"doorCount": null,
"drivingPosition": "RHD",
"drivingAxle": "All Permanent",
"enginePower": "243.2 Kw @ 5,400rpm",
"engineAspiration": "Turbocharged",
"engineAlignment": "V",
"engineLocation": "Front",
"engineSize": "3 litres",
"engineStroke": "89 mm",
"engineBore": "84 mm",
"euroStatus": "6b",
"exactCc": "2,995",
"fuelDelivery": "Direct Injection",
"fuelType": "Petrol",
"fuelSystem": "P DI Turbo Cat Euro 6",
"fuelEuroStatus": "6b",
"fuelTankCapacity": "75 litres",
"gearsCount": 8,
"kerbWeight": "1,850kg",
"grossWeight": null,
"numberOfAxles": 2,
"kwOutputOfEngine": "243.2 Kw",
"seatCount": null,
"seatingCapacity": 4,
"transmissionType": "Semi-Automatic",
"valvesPerCylinder": "24 Valves",
"valveGear": "DOHC",
"vehicleAccelerationMph": null,
"vehicleHeight": "1,423 mm",
"vehicleImageUrl": "https://storage.otofacts.com/vehicle/uk/2017/porsche/panamera-4-s-a/cdc2db2a3767ff2157c7c0cede3b6895.jpg",
"vehicleLength": "5,049 mm",
"vehicleMaxSpeedMph": "162 MPH",
"vehicleTypeDescription": "Car",
"vehicleWidth": "1,937 mm",
"wheelBaseOfVehicle": "2,950 mm"
},
"importantChecks": {
"exported": true,
"exportedDate": "09-10-2018",
"hasMileageIssue": false,
"odometerUnitChangeDetected": null,
"hasScrappedDate": false,
"hasVicTestResult": false,
"hasVrmChanges": false,
"importedToUk": false,
"importedToUkDate": "Not Available",
"importUsedBeforeUkRegistration": false,
"importedToUkFromOutsideEu": false,
"isWrittenOff": false,
"writtenOffDetails": [],
"lastColourChangeDate": "Not Available",
"previousColour": null,
"isStolen": false,
"stolenDate": null,
"miaftrStolenVehicleDetails": null,
"mileageRecordList": [
{
"dateOfInformation": "09/07/2020",
"sourceOfInformation": "MOT",
"mileage": 0
},
{
"dateOfInformation": "03/10/2018",
"sourceOfInformation": "DVLA",
"mileage": 4000
}
]
},
"motAndRoadTaxInformation": {
"isMotExempt": null,
"nextMotDueDate": "16/01/2021",
"daysUntilNextMotIsDue": null,
"motExemptReason": null,
"isMOTDue": false,
"isVehicleSORN": false,
"motHistory": {
"alertMessageList": [],
"recordCount": 1,
"recordList": [
{
"testNumber": "5471 8855 7431",
"testDate": "09/07/2020",
"expiryDate": "16/01/2021",
"testResult": "Pass",
"odometerReading": 0,
"odometerUnit": null,
"odometerInKilometers": 0,
"odometerInMiles": 0,
"mileageSinceLastPass": 0,
"mileageAnomalyDetected": false,
"daysSinceLastPass": null,
"daysSinceLastTest": null,
"daysOutOfMot": null,
"isRetest": false,
"advisoryNoticeCount": 1,
"dangerousFailureCount": 0,
"majorFailureCount": 0,
"hasExtensionPeriod": true,
"extensionPeriodReason": "Covid-19",
"extensionPeriodAdditionalDays": 184,
"extensionPeriodOriginalDueDate": "16/07/2020",
"advisoryNoticeList": [
"COVID-19 6 MONTH EXTENSION"
],
"failureReasonList": [],
"annotationDetailsList": [
{
"type": "ADVISORY",
"text": "COVID-19 6 MONTH EXTENSION",
"dangerous": false
}
]
}
],
"alertMessageCount": 0,
"additionalInformation": {
"mileageAnomalyDetected": false,
"odometerUnitChangeDetected": false,
"longestNumberOfDaysBetweenMotTests": null,
"longestNumberOfDaysOutOfMot": null,
"cherishedTransfer": null,
"keeperChange": null
}
},
"roadTaxInformation": {
"isRoadTaxCurrentlyValid": "03 October 2018",
"roadTaxExpiryDate": "03 October 2018",
"roadtaxDaysRemaining": null,
"roadTaxDue": null,
"hasRoadTaxInfo": true,
"sixMonthsRate": "£99",
"twelveMonthsRate": "£180"
}
},
"outstandingFinanceDetails": {
"financeRecordList": null,
"hasOutstandingFinanceAgreements": false,
"isOutstandingFinanceCheckIncluded": false,
"numberOfOutstandingFinanceAgreements": null
},
"isStolenPoliceForce": null,
"isScrapped": false,
"scrappedDate": "Not Available",
"vehicleHadPreviousColours": false,
"vehiclePreviousColours": null,
"isVicTested": false,
"vicTestDate": "Not Available",
"vicTestResult": null,
"certificateOfDestructionIssued": null,
"keepersInformation": {
"totalKeepers": 1,
"currentOwnerAcquiredDate": null,
"currentOwnershipDuration": null,
"previousKeepers": 0,
"previousOwnerBoughtDate": "17/07/2017",
"previousOwnerSoldDate": false,
"v5CLogBookDate": "25/09/2017",
"v5CCertificateCount": 1,
"vehicleHasPreviousKeepers": false,
"noOfVrmChanges": 0,
"previousVrmList": []
},
"valuationInformation": {
"shouldValuationBeIncluded": true,
"hasValuationResults": true,
"valuationBasedOnMileage": null,
"plateYear": "2017-17",
"valuationResults": {
"oTR": "69412",
"dealerForecourt": "51493",
"tradeRetail": "48249",
"privateClean": "43404",
"privateAverage": "43404",
"partExchange": "41601",
"auction": "33100",
"tradeAverage": "38677",
"tradePoor": "33100"
},
"vehicleDescription": "PORSCHE PANAMERA 4 S-A"
},
"safety": {
"euroNcap": {
"child": null,
"adult": null,
"pedestrian": null
}
}
},
},
"metadata": {
"id": "ZAq8vnJg",
"createdAt": "2024-03-15 18:08:02",
"updatedAt": "2024-03-15 18:08:02",
"status": null,
"credits": {
"cost": 1,
"balance": 86,
},
"country": "uk",
"testMode": true,
"timestamp": "2025-09-16T00:29:35+08:00",
"requestedVersion": 3,
"latestVersion": 3,
"version": "3.0.0",
}
}
Choose a plan that best suits your needs. Only pay for what you use.
View Pricing
A Vehicle Identification Number (VIN) is a unique 17-character code that serves as your car's fingerprint. It contains letters and numbers that identify:
You can find your VIN in several places on your vehicle:
Japanese carmakers do not use a Vehicle Identification Number (VIN) as is common in the United States and elsewhere. Instead, Japan uses a Chassis (Frame) Number — nine to twelve alphanumeric characters identifying model and serial number.
Chassis Number: AGH30W-0018105
Vehicle make is not identified but slight number variations can identify the carmaker:
Because a Chassis Number contains less information than a VIN, Japanese vehicles also use a Model Code.
Example: AGH30W-NFXSK