VIN ID API Reference
Welcome to the Plate Recognizer VIN ID API! Our API allows you to seamlessly extract VIN from images with high accuracy and efficiency.
For comprehensive guidelines on utilizing VIN ID Cloud, please refer to our detailed documentation here.
We offer support for multiple programming languages. Scroll down to explore code examples in various languages for easy integration.
VIN ID Cloud API​
Authentication​
VIN ID Cloud is only available to registered users. Sign up for a Free Trial and get an API Token. It has to be included in all API calls. The HTTP headers must contain:
Authorization: Token YOUR_API_TOKEN
For the commands below, make sure to replace YOUR_API_TOKEN
with your API Token. For example, Authorization: Token abcdef123456xxxxxxxxxxxxxxxxxxxxxxxxxxxx
.
Get your token from, here.
Read VIN from an Image​
HTTP Request​
POST https://api.platerecognizer.com/v1/vin/reader/
The CORS
policy of this endpoint allows requests from all origins.
POST Parameters​
Parameter | Required | Description |
---|---|---|
upload | Yes | The file to be uploaded. The parameter can either be the file bytes (using Content-Type multipart/form-data) OR a base64 encoded image. This parameter becomes optional if upload_url parameter is present. |
upload_url | No | The url of file to be uploaded. This parameter is to be used as an alternative to upload parameter. |
camera_id | No | Unique camera identifier. |
timestamp | No | ISO 8601 timestamp. For example, 2019-08-19T13:11:25. The timestamp has to be in UTC. |
- Shell
- Ruby
- Python
- JavaScript
#On Linux
curl -F "upload=@/your-image.jpg" \
-H "Authorization: Token YOUR_API_TOKEN" \
https://api.platerecognizer.com/v1/vin/reader/
#Calling the API with an image URL.
curl -X POST -F upload_url="https://www.demo.com/static/your-image.jpg" -H "Authorization: Token YOUR_API_TOKEN" https://api.platerecognizer.com/v1/vin/reader/
#On Windows
curl -F "[email protected]" ^
-H "Authorization: Token YOUR_API_TOKEN" ^
https://api.platerecognizer.com/v1/vin/reader/
#gem install multipart-post
require 'net/http/post/multipart'
url = URI.parse('https://api.platerecognizer.com/v1/vin/reader/')
path = '/path/to/your-image.jpg'
File.open(path) do |jpg|
req = Net::HTTP::Post::Multipart.new url.path,
"upload" => UploadIO.new(jpg, "image/jpeg", path)
req['Authorization'] = 'Token YOUR_API_TOKEN'
res = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
http.request(req)
end
end
import requests
from pprint import pprint
with open('/path/to/your-image.jpg', 'rb') as fp:
response = requests.post(
'https://api.platerecognizer.com/v1/vin/reader/',
files=dict(upload=fp),
headers={'Authorization': 'Token YOUR_API_TOKEN'})
#For files field, if needed, use imencode method of cv2 library to encode an image and producing a compressed representation that can be easier stored, transmitted, or processed.
#import cv2
#success, image_jpg = cv2.imencode('.jpg', fp)
#files=dict(upload=image_jpg.tostring())
pprint(response.json())
# With OpenCV
import cv2
success, image_jpg = cv2.imencode('.jpg', image)
files={'upload':image_jpg.tostring()}
response = requests.post(
'https://api.platerecognizer.com/v1/vin/reader/',
headers={'Authorization': 'Token YOUR_API_TOKEN'})
// Using Node-RED?
// Check https://github.com/parkpow/node-red-contrib-plate-recognizer
const fetch = require("node-fetch");
const FormData = require("form-data");
const fs = require("fs");
let image_path = "/path/to/your-image.jpg";
let body = new FormData();
body.append("upload", fs.createReadStream(image_path));
// Or body.append('upload', base64Image);
fetch("https://api.platerecognizer.com/v1/vin/reader/", {
method: "POST",
headers: {
Authorization: "Token YOUR_API_TOKEN",
},
body: body,
})
.then((res) => res.json())
.then((json) => console.log(json))
.catch((err) => {
console.log(err);
});
Response​
{
"processing_time": 130.849,
"results": [
{
"identifier": {
"type": "text",
"props": {
"code": [
{
"value": "WAULC68E25A008579"
}
],
"orientation": [
{
"value": "horizontal"
}
]
}
}
}
],
"filename": "image.jpg",
"version": 1,
"camera_id": null,
"timestamp": "2025-05-13T15:36:12.537008Z"
}
Attribute | Description |
---|---|
results/identifier/code | Text of the VIN |
results/identifier/orientation | The orientation of the VIN. One of vertical, horizontal. |
Statistics​
Get number of recognition calls done during the current month.
HTTP Request​
GET https://api.platerecognizer.com/v1/vin/statistics/
curl -H "Authorization: Token YOUR_API_TOKEN" \
https://api.platerecognizer.com/v1/vin/statistics/
JSON Response​
{
"usage": {
"month": 5,
"calls": 21,
"year": 2025,
"resets_on": "2025-05-14T00:00:00Z"
},
"total_calls": 5000
}
Response fields description:
Attribute | Description |
---|---|
calls | Number of API calls made during the current period. |
month | Month of the current period. |
year | Year of the current period. |
resets_on | Date when the counter will reset. |
total_calls | Maximum number of API calls you can make during the period. Need more? Upgrade. |