NAV
shell ruby python javascript csharp php java cpp

Introduction

Welcome to the Plate Recognizer Snapshot API! You can use our API to access our API endpoints, which can read license plates from images. For detailed instructions on how to install the SDK, go here.

We have multiple language bindings. You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

Authentication

Plate Recognizer Snapshot API is only available to registered users. Sign up for a Free Trial and get an API key. It has to be included in all API calls. The HTTP headers must contain:

Authorization: Token my-token******

License Plate Recognition

Read Number Plates from an Image

# gem install multipart-post
require 'net/http/post/multipart'

url = URI.parse('https://api.platerecognizer.com/v1/plate-reader/')
path = '/path/to/car.jpg'
File.open(path) do |jpg|
  req = Net::HTTP::Post::Multipart.new url.path,
    "upload" => UploadIO.new(jpg, "image/jpeg", path)
  req['Authorization'] = 'Token my-token******'
  res = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
    http.request(req)
  end
end
<?php
// CREATE FILE READY TO UPLOAD WITH CURL
$file = realpath('example.jpg');
if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file);
} else {
  $cFile = '@' . realpath($file);
}

//ADD PARAMETER IN REQUEST LIKE regions
$data = array(
    'upload' => $cFile,
    'regions' => 'us-ca' // Optional
);

// Prepare new cURL resource
$ch = curl_init('https://api.platerecognizer.com/v1/plate-reader/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);

// Set HTTP Header for POST request
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Authorization: Token my-token******"  //API KEY
    )
);

// Submit the POST request and close cURL session handle
$result = curl_exec($ch);
print_r($result);exit;
curl_close($ch);
?>
# pip install requests
import requests
from pprint import pprint
regions = ['mx', 'us-ca'] # Change to your country
with open('/path/to/car.jpg', 'rb') as fp:
    response = requests.post(
        'https://api.platerecognizer.com/v1/plate-reader/',
        data=dict(regions=regions),  # Optional
        files=dict(upload=fp),
        headers={'Authorization': 'Token my-token******'})
pprint(response.json())

# Calling with a custom engine configuration
import json
with open('/path/to/car.jpg', 'rb') as fp:
    response = requests.post(
        'https://api.platerecognizer.com/v1/plate-reader/',
        data=dict(regions=['us-ca'], config=json.dumps(dict(region="strict"))),  # Optional
        files=dict(upload=fp),
        headers={'Authorization': 'Token my-token******'})
# On Linux
# Calling the API with 2 regions (Mexico and California).
curl -o /tmp/car.jpg https://app.platerecognizer.com/static/demo.jpg # Get an image
curl -F "upload=@/tmp/car.jpg" \
  -F regions=mx \
  -F regions=us-ca \
  -H "Authorization: Token my-token******" \
  https://api.platerecognizer.com/v1/plate-reader/

# Calling the API with a custom engine configuration and region California.
curl -F "upload=@/path/to/car.jpg" \
  -F regions=us-ca \
  -F config="{\"region\":\"strict\"}" \
  -H "Authorization: Token my-token******" \
  https://api.platerecognizer.com/v1/plate-reader/

# Calling the API with an image URL.
curl -X POST -F upload_url="https://app.platerecognizer.com/static/demo.jpg" -H "Authorization: Token my-token*****" https://api.platerecognizer.com/v1/plate-reader
# On Windows
# Calling the API with 2 regions (Mexico and California).
curl -o car.jpg https://app.platerecognizer.com/static/demo.jpg
curl -F "upload=@car.jpg" ^
  -F regions=mx ^
  -F regions=us-ca ^
  -H "Authorization: Token my-token******" ^
  https://api.platerecognizer.com/v1/plate-reader/

# Calling the API with a custom engine configuration and region California.
curl -F "upload=@c:\path\to\car.jpg" ^
  -F regions=us-ca ^
  -F config="{\"region\":\"strict\"}" ^
  -H "Authorization: Token my-token******" ^
  https://api.platerecognizer.com/v1/plate-reader/

// 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/car.jpg";
let body = new FormData();
body.append("upload", fs.createReadStream(image_path));
// Or body.append('upload', base64Image);
body.append("regions", "us-ca"); // Change to your country
fetch("https://api.platerecognizer.com/v1/plate-reader/", {
  method: "POST",
  headers: {
    Authorization: "Token my-token******",
  },
  body: body,
})
  .then((res) => res.json())
  .then((json) => console.log(json))
  .catch((err) => {
    console.log(err);
  });
// Complete Example:

// https://github.com/marcbelmont/deep-license-plate-recognition/tree/master/csharp/PlateRecognizer

// Function calling the API:

// https://github.com/marcbelmont/deep-license-plate-recognition/blob/master/csharp/PlateRecognizer/PlateReader.cs#L23

// Complete Example:

// https://github.com/marcbelmont/deep-license-plate-recognition/tree/master/java/PlateRecognizer

// Function calling the API:

// https://github.com/marcbelmont/deep-license-plate-recognition/blob/master/java/PlateRecognizer/src/main/java/com/mycompany/numberplate/recognize.java#L17    

// Complete Android App Example:

// https://github.com/parkpow/alpr-anpr-android/
// Complete Example (Windows or Linux):

// https://github.com/marcbelmont/deep-license-plate-recognition/tree/master/java/PlateRecognizer

// Function calling the API:

// https://github.com/marcbelmont/deep-license-plate-recognition/blob/master/cpp/linux/numberPlate.cpp#L25
// https://github.com/marcbelmont/deep-license-plate-recognition/blob/master/cpp/windows/ConsoleApplication2/ConsoleApplication2.cpp#L29

Return value

{
  "processing_time": 288.758,
  "results": [
    {
      "box": {
        "xmin": 143,
        "ymin": 481,
        "xmax": 282,
        "ymax": 575
      },
      "plate": "nhk552",
      "region": {
        "code": "gb",
        "score": 0.747
      },
      "vehicle": {
        "score": 0.798,
        "type": "Sedan",
        "box": {
          "xmin": 67,
          "ymin": 113,
          "xmax": 908,
          "ymax": 653
        }
      },
      "score": 0.904,
      "candidates": [
        {
          "score": 0.904,
          "plate": "nhk552"
        }
      ],
      "dscore": 0.99,
      // Make Model, Orientation and Color are only available if you set mmc=true
      "model_make": [
        {
          "make": "Riley",
          "model": "RMF",
          "score": 0.306
        }
      ],
      "color": [
        {
          "color": "black",
          "score": 0.937
        }
      ],
      "orientation": [
        {
          "orientation": "Front",
          "score": 0.937
        }
      ]
    }
  ],
  "filename": "1617_7M83K_car.jpg",
  "version": 1,
  "camera_id": null,
  "timestamp": "2020-10-12T16:17:27.574008Z"
}

This Snapshot API endpoint reads all license plates from an image.

To programmatically process a bunch of images in a folder, refer to our Snapshot Guides.

If you need to detect vehicles and decode license plates from a live camera or video feed, consider using Plate Recognizer Stream. Contact us to request a Free Trial of Stream.

If you need to blur license plates, consider using Plate Recognizer Blur. Contact us for more info.

HTTP Request

POST https://api.platerecognizer.com/v1/plate-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.
regions No Match the license plate pattern of a specific region or regions. This parameter can be used multiple times to specify more than one region. It is treated as a guide and the template will be ignored if the prediction differs too much from it. That's because we want to still be able to read plates from foreign vehicles. The system may sometimes mistake a local vehicle for a foreign one.
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.
mmc No Predict vehicle make, model, orientation and color. This feature is available for an additional fee. Set parameter to true (mmc=true) if you have this feature enabled/purchased to get vehicle make, model and color. Possible values are true or false.
config No Additional engine configuration. See details.

JSON Response

The response is a list of all the license plates found in the image. Each license plate has the following elements:

Attribute Description
results/plate Text of the license plate.
results/box Bounding box for the license plate. Coordinates in pixel of the top left and bottom right corners of the plate.
results/dscore Confidence level for plate detection. See below for more details.
results/score Confidence level for reading the license plate text. See below for more details.
results/vehicle/type Vehicle type: Big Truck, Bus, Motorcycle, Pickup Truck, Sedan, SUV, Van, Unknown.
results/vehicle/score Confidence level for vehicle type prediction. If we cannot find a vehicle, the score is set to 0.
results/vehicle/box Vehicle bounding box. If we cannot find a vehicle, the coordinates are all 0.
results/region/code Region of license plate. Returns a code from the country list.
results/region/score Confidence level for license plate region.
results/candidates List of predictions for the license plate value. The first element is the top prediction (same as results/plate).
results/model_make/make Prediction of vehicle make.
results/model_make/model Prediction of vehicle model.
results/model_make/score Confidence level for vehicle make and model prediction.
results/color/color Vehicle color. One of black, blue, brown, green, red, silver, white, yellow, unknown.
results/color/score Confidence level for vehicle color prediction.
results/orientation/orientation Vehicle orientation. One of Front, Rear, Unknown.
results/orientation/score Confidence level for vehicle orientation prediction.

Error Responses

Engine Configuration

A lookup request can accept the parameter config. It is a JSON value to change the engine configuration. It can include the following values:

Examples

Here are a couple of examples of how to use the config parameter (with Shell or Python).

# On Linux
# Custom threshold and fast mode:
curl -F "upload=@/path/to/car.jpg" \
  -F config="{\"mode\":\"fast\", \"threshold_d\":0.2, \"threshold_o\":0.6}" \
  -H "Authorization: Token my-token******" \
  https://api.platerecognizer.com/v1/plate-reader/

# Strict region matching:
curl -F "upload=@/path/to/car.jpg" \
  -F config="{\"region\":\"strict\"}" \
  -F region=us-ca \
  -H "Authorization: Token my-token******" \
  https://api.platerecognizer.com/v1/plate-reader/

# Prediction must include a vehicle:
curl -F "upload=@/path/to/car.jpg" \
  -F config="{\"detection_rule\":\"strict\"}" \
  -H "Authorization: Token my-token******" \
  https://api.platerecognizer.com/v1/plate-reader/
# On Windows
# Custom threshold and fast mode:
curl -F "upload=@c:\path\to\car.jpg" ^
  -F config="{\"mode\":\"fast\", \"threshold_d\":0.2, \"threshold_o\":0.6}" ^
  -H "Authorization: Token my-token******" ^
  https://api.platerecognizer.com/v1/plate-reader/

# Strict region matching:
curl -F "upload=@c:\path\to\car.jpg" ^
  -F config="{\"region\":\"strict\"}" ^
  -F region=us-ca ^
  -H "Authorization: Token my-token******" ^
  https://api.platerecognizer.com/v1/plate-reader/

# Prediction must include a vehicle:
curl -F "upload=@c:\path\to\car.jpg" ^
  -F config="{\"detection_rule\":\"strict\"}" ^
  -H "Authorization: Token my-token******" ^
  https://api.platerecognizer.com/v1/plate-reader/
import json
with open('/path/to/car.jpg', 'rb') as fp:
    response = requests.post(
        'https://api.platerecognizer.com/v1/plate-reader/',
        data=dict(config=json.dumps(dict(region="strict"))),
        files=dict(upload=fp),
        headers={'Authorization': 'Token my-token******'})

Detection Zones

Detection Zones exclude overlay texts, street signs or other objects.

Vehicle Only Response

Return value

{
  "filename": "car.jpg",
  "timestamp": "2021-11-23 17:56:47.896406",
  "camera_id": "my-camera",
  "processing_time": 58.184,
  "results": [
    {
      "plate": {
        "type": "Plate",
        "score": 0.925,
        "box": {
          "xmin": 146,
          "ymin": 481,
          "xmax": 276,
          "ymax": 576
        },
        "props": {
          "plate": [
            {
              "value": "nhk552",
              "score": 0.838
            }
          ],
          "region": [
            {
              "value": "gb",
              "score": 0.931
            }
          ]
        }
      },
      "vehicle": {
        "type": "Sedan",
        "score": 0.834,
        "box": {
          "xmin": 68,
          "ymin": 103,
          "xmax": 914,
          "ymax": 643
        },
        "props": {
          "make_model": [
            {
              "make": "Riley",
              "model": "RMF",
              "score": 0.339
            }
          ],
          "orientation": [
            {
              "value": "Front",
              "score": 0.939
            }
          ],
          "color": [
            {
              "value": "black",
              "score": 0.846
            }
          ]
        }
      }
    }
  ]
}

When the parameter detection_mode is set to vehicle, the output includes vehicles without a license plate. The lookup response is as follows.

On-Premise SDK

Our service is also available on-premises. Get started with the SDK. It has a similar interface as the recognition API and it is hosted locally. See differences below.

Recognition API

# On Linux
# Calling the API with just the image
curl -o car.jpg https://app.platerecognizer.com/static/demo.jpg # Get an image
curl -F "upload=@car.jpg" \
  http://localhost:8080/v1/plate-reader/

# Calling with API with optional parameters config and mmc
# The region is set to Mexico and California
curl -F "upload=@/path/to/car.jpg" \
  -F regions=mx \
  -F regions=us-ca \
  -F mmc=true \
  -F config="{\"mode\":\"fast\"}" \
  http://localhost:8080/v1/plate-reader/

# On Windows
# Calling the API with just the image
curl -o car.jpg https://app.platerecognizer.com/static/demo.jpg
curl -F "upload=@car.jpg" ^
  http://localhost:8080/v1/plate-reader/

# Calling with API with optional parameters config and mmc
# The region is set to Mexico and California
curl -F "upload=@c:\path\to\car.jpg" ^
  -F regions=mx ^
  -F regions=us-ca ^
  -F mmc=true ^
  -F config="{\"mode\":\"fast\"}" ^
  http://localhost:8080/v1/plate-reader/

Return value

{
  "usage": {
    "max_calls": 1000,
    "calls": 44
  },
  "results": [
    // Same as cloud API example above.
  ],
  "camera_id": "null",
  "timestamp": "2020-01-16 17:00:00",
  "filename": "car.jpg"
}

HTTP Request

POST http://localhost:8080/v1/plate-reader/

* The CORS policy of this endpoint allows requests from all origins.

POST Parameters

Parameter Required Description
- - All the parameters from recognition API.

JSON Response

Returns the same parameters as the recognition API. In addition to that, it returns the number of calls used.

SDK Version

Return value

{
  "version": "1.3.8",
  "license_key": "XXX",
  "total_calls": 2500,
  "usage": {"calls": 10},
  "webhooks": []
}

Show version, webhooks and usage information.

HTTP Request

GET http://localhost:8080/info/

JSON Response

Returns the SDK version, license key and webhooks.

WebHooks

Example of POST payload

{
  "hook": {
    "target": "http://localhost:8081/",
    "id": 2,
    "event": "image.done"
  },
  "data": {
    "processing_time": 0.186,
    "timestamp": "2019-08-31T14:22:06.983Z",
    "results": [
      {
        "box": {
          "xmin": 563,
          "ymin": 530,
          "ymax": 579,
          "xmax": 702
        },
        "plate": "765410",
        "score": 0.9131534678711563,
        "dscore": 0.4084282568529709
      },
      {
        "box": {
          "xmin": 563,
          "ymin": 530,
          "ymax": 579,
          "xmax": 702
        },
        "plate": "830265",
        "score": 0.7700640306685624,
        "dscore": 0.8493143507578083
      }
    ],
    "filename": "14_22_test.jpeg",
    "version": 1,
    "camera_id": null
  }
}

Our service also supports webhooks. It allows you to receive a HTTP POST request to a target URL of your choosing. Go to webhooks settings page to manage your webhooks or add a new webhook target. If you are using Stream, see those instructions.

Data Only Webhook

Snapshot: HTTP Request

POST target_url

The request body contains the payload above in JSON format.

Stream: HTTP Request

POST target_url

The request body contains a json field with JSON encoded data. See the example above for the content of that field.

Webhook With Image

Snapshot & Stream: HTTP Request

POST target_url

The request body contains a multipart/form-data content. Receiving this data is like receiving the content of a form with an input of type file. It has two fields:

Statistics

Get number of recognition calls done during the current month. This API is for Snapshot Cloud only. For Snapshot SDK, use the info API.

HTTP Request

GET https://api.platerecognizer.com/v1/statistics/

curl -H "Authorization: Token my-token******" \
  https://api.platerecognizer.com/v1/statistics/

Return value

{
  "usage": {
    "month": 1,
    "calls": 128,
    "year": 2019,
    "resets_on": "2019-01-14T00:00:00Z"
  },
  "total_calls": 2500
}

JSON Response

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.

Doc for Other Products

The documentation for Stream, our Highly-accurate ALPR software that processes live camera or video feeds quickly & efficiently, is on a different page.

For Stream and other products, see this documentation.

FAQ

Can't make it work? Check our step by step guides or FAQ.

Countries

Codes for the regions parameter. You can also provide a state to select more specific license plate patterns. States are only supported for some countries.

Don't see your country listed? Contact us for more info.

The column Prediction indicates if the region is supported by our region classification predictor (field results/region/code).

Country Codes

Country Region code Prediction
Aland Island ax
Albania al
Algeria dz
American Samoa as
Andorra ad
Angola ao
Anguilla ai
Antarctica aq
Antigua and Barbuda ag
Argentina ar Yes
Armenia am Yes
Aruba aw
Australia au Yes
Austria at Yes
Azerbaijan az Yes
Bahamas bs
Barbados bb
Belarus by Yes
Belgium be Yes
Belize bz
Benin bj
Bermuda bm
Bolivia bo
Bonaire, Saint Eustatius and Saba bq
Bosnia and Herzegovina ba
Brazil br Yes
British Indian Ocean Territory io
British Virgin Islands vg
Brunei bn
Bulgaria bg Yes
Burkina Faso bf
Burundi bi
Cambodia cb
Cameroon cm
Canada ca Yes
Cape Verde cv
Cayman Islands cy
Central African Republic cf
Chad td
Chile cl Yes
Christmas Island cx
Cocos Island cc
Colombia co Yes
Comoros km
Congo cg
Cook Islands ck
Costa Rica cr Yes
Cote D'Ivoire ci
Croatia hr Yes
Cuba cu
Curacao cw
Cyprus cy
Czechia cz Yes
Denmark dk Yes
Dominica dm
Dominican republic do
Ecuador ec
Egypt eg Yes
El Salvador sv
Equatorial Guinea gq
Eritrea er
Estonia ee Yes
Falk Islands fk
Faroe Island fo
Fiji fj
Finland fi Yes
France fr Yes
French Guiana gf
French Polynesia pf
French Southern Territories tf
Gabon ga
Gambia gm
Georgia ge Yes
Germany de Yes
Ghana gh
Gibraltar gi
Greece gr Yes
Greenland gl
Grenada gd
Guadeloupe gp
Guam gu
Guatemala gp
Guernsey gg
Guinea gn
Guinea-Bissau gw
Guyana gy
Haiti ht
Holy See va
Honduras hn
Hong Kong hk
Hungary hu Yes
Iceland is
India in Yes
Indonesia id Yes
Ireland ie
Isle of Man im
Israel il Yes
Italy it Yes
Jamaica jm
Japan jp Yes
Jersey je
Jordan jo
Kazakhstan kz Yes
Kenya ke
Kiribati ki
Korea, Republic of kr
Kyrgyztan kg
Latvia lv Yes
Lebanon lb
Lesotho ls
Liberia lr
Liechtenstein li
Lithuania lt Yes
Luxembourg lu Yes
Madagascar mg
Malawi mw
Malaysia my
Maldives mv
Mali ml
Malta mt
Marshall Islands mh
Martinique mq
Mauritius mu
Mayotte yt
Mexico mx
Micronesia fm
Moldova, Republic of md Yes
Monaco mc Yes
Montenegro me Yes
Montserrat ms
Myanmar mm
Namibia na
Nauru nr
Nepal np
Netherlands nl Yes
New Caledonia nc
New Zealand nz Yes
Nicaragua ni
Niger ne
Nigeria ng
Niue nu
Norfolk Island nf
North Macedonia mk
Northern Mariana Islands np
Norway no Yes
Palau pw
Panama pa
Papua New Guinea pg
Paraguay py
Peru pe Yes
Philippines ph
Poland pl Yes
Portugal pt Yes
Puerto Rico pr
Qatar qa
Reunion Island re
Romania ro Yes
Russian Federation ru
Rwanda rw
Saint Barthelemy bl
Saint Kitts and Nevis kn
Saint Lucia lc
Saint Martin mf
Saint Pierre and Miquelon pm
Saint Vincent and the Grenadines vc
Samoa ws
San Marino sm
Sao Tome and Principe st
Saudi Arabia sa
Serbia rs Yes
Seychelles sc
Sierra Leone sl
Singapore sg
Sint Maarten sx
Slovakia sk Yes
Slovenia si
Solomon Islands sb
South Africa za Yes
South Sudan ss
Spain es Yes
Sri Lanka lk
Suriname sr
Svalbard and Jan Mayen sj
Swaziland sz
Sweden se Yes
Switzerland ch Yes
Taiwan tw
Tajikistan tj
Tanzania tz
Thailand th Yes
Timor Leste tl
Togo tg
Tonga to
Trinidad and Tobago tt
Turkey tr Yes
Turkmenistan tm
Turks and Caicos Islands tc
Tuvalu tv
U.S. Minor Outlying Islands um
U.S. Virgins Islands vi
Ukraine ua Yes
United Arab Emirates ae Yes
United Kingdom of Great Britain gb Yes
Uraguay uy
USA us Yes
Uzbekistan uz Yes
Vanuatu vu
Venezuela ve
Vietnam vn Yes
Wallis and Futuna wf
Western Sahara eh
Zambia zm
Zimbabwe zw

Countries with Province Codes

United Arab Emirates

State Region Code
Abu Dhabi ae-az
Ajman ae-aj
Dubai ae-du
Fujairah ae-fu
Ras Al Khaimah ae-rk
Sharjah ae-sh
Umm Al Quwain ae-uq

Australia

State Region code
Australian Capital Territory au-act
New South Wales au-nsw
Queensland au-qld
South Australia au-sa
Tasmania au-tas
Victoria au-vic
Western Australia au-wa

Brazil

State Region Code
Acre br-ac
Alagoas br-al
Amapá br-ap
Amazonas br-am
Bahia br-ba
Ceará br-ce
Distrito Federal br-df
Espírito Santo br-es
Goiás br-go
Manias Gerais br-mg
Maranhão br-ma
Mato Grosso do Sul br-ms
Mato Grosso br-mt
Pernambuco br-pe
Pará br-pa
Paraíba br-pb
Paraná br-pr
Piauí br-pi
Rio de Janeiro br-rj
Rio Grande do Norte br-rn
Rio Grande do Sul br-rs
Rondônia br-ro
Roraima br-rr
São Paulo br-sp
Sergipe br-se
Santa Catarina br_sc
Tocantins br-to

Canada

State Region Code
Alberta ca-ab
British Columbia ca-bc
Manitoba ca-mb
New Brunswick ca-nb
Newfoundland and Labrador ca-nl
Northwest Territories ca-nt
Nova Scotia ca-ns
Nunavut ca-nu
Ontario ca-on
Prince Edward Islands ca-pe
Quebec ca-qc
Saskatchewan ca-sk
Yukon ca-yt

Egypt

State Region Code
Ad Daqahlīyah DK
Al Baḩr al Aḩmar BA
Al Buḩayrah BH
Al Fayyūm FYM
Al Gharbīyah GH
Al Iskandarīyah ALX
Al Ismā'īlīyah IS
Al Jīzah GZ
Al Minūfīyah MNF
Al Minyā MN
Al Qāhirah C
Al Qalyūbīyah KB
Al Uqşur LX
Al Wādī al Jadīd WAD
As Suways SUZ
Ash Sharqīyah SHR
Aswān ASN
Asyūţ AST
Banī Suwayf BNS
Būr Sa‘īd PTS
Dumyāţ DT
Janūb Sīnā' JS
Kafr ash Shaykh KFS
Maţrūḩ MT
Qinā KN
Shamāl Sīnā' SIN
Sūhāj SHG

Japan

State Region code
一宮 ACI
春日井 ACK
名古屋 ACN
ACN
豊橋 ACT
三河 ACM
岡崎 ACZ
豊田 ACY
秋田 ATA
ATA
青森 AMA
AMA
AMH
千葉 CBC
CBC
成田 CBT
習志野 CBN
船橋 CBN
野田 CBD
CBK
CBS
愛媛 EH
福井 FI
福岡 FOF
FOF
留米 FOR
福島 FS
会津 FSA
岐阜 GFG
GF
飛騨 GFH
飛驒 GFH
群馬 GMG
GM
前橋 GMM
高崎 GMT
福山 HSF
広島 HSH
HSH
旭川 AKA
AKA
函館 HDH
HDH
北見 KIK
KIK
釧路 KRK
KRK
室蘭 MRM
MRM
帯広 OHO
OHO
札幌 SPS
SPS
姫路 HGH
水戸 IGM
茨城 IGM
IGM
土浦 IGT
石川 IKI
IKI
金沢 IKK
岩手 ITI
ITI
平泉 ITH
盛岡 ITM
香川 KAK
KAK
KOK
鹿 KOK
奄美 KOA
相模 KNS
川崎 KNK
横浜 KNY
KNY
熊本 KUK
KUK
三重 MEM
MEM
鈴鹿 MES
宮城 MGM
MG
仙台 MGS
宮崎 MZ
松本 NNM
諏訪 NNS
長野 NNN
NN
長崎 NS
佐世保 NSS
奈良 NRN
NR
長岡 NGO
新潟 NGN
NG
岡山 OYO
OY
倉敷 OYK
沖縄 ONO
ONO
和泉 OSZ
OSZ
OSS
佐賀 SAS
SAS
春日部 STB
越谷 STY
熊谷 STK
川口 STW
所沢 STT
川越 STG
滋賀 SIS
SIS
島根 SN
SN
浜松 SZH
沼津 SZN
伊豆 SZI
静岡 SZS
SZS
宇都宮 TGU
栃木 TGU
TGU
那須 TGN
徳島 TST
TST
足立 TKA
TKA
多摩 TKT
TKT
練馬 TKN
TKN
杉並 TKM
世田谷 TKG
鳥取 TTT
TTT
富山 TYT
TYT
和歌山 WKW
WKW
山形 YA
山口 YUY
YUY
下関 YUS
山梨 YN
富士山 YNF
八王子 TKH
尾張小牧 ACO
筑豊 FOC
北九州 FOK
いわき FSI
郡山 FSK
神戸 HGK
つくば IGK
つくば IGK
湘南 KNN
高知 KCK
KCK
京都 KTK
KTK
大分 OT
大阪 OSO
OSO
なにわ OSN
大宮 STO
埼玉 STO
STO
とちぎ TCK
王子 TKH
品川 TKS
TKS
YAS
江東 YOI
鹿児島 LSC
袖ヶ浦 OIT
市川 SC
松戸 SHT
市原 SHM
庄内 SNA
板橋 SBR
八戸 AMH
久留米 FOR
とちぎ TCK
高松 KAK

Peru

State Region Code
Amazonas pe-ama
Ancash pe-anc
Apurímac pe-apu
Arequipa pe-are
Ayacucho pe-aya
Cajamarca pe-caj
Cusco pe-cus
Huancavelica pe-huv
Huánuco pe-huc
Ica pe-ica
Junín pe-jun
La Libertad pe-lal
Lambayeque pe-lam
Lima pe-lim
Loreto pe-lor
Madre de Dios pe-mdd
Moquegua pe-moq
Pasco pe-pas
Piura pe-piu
Puno pe-pun
San Martín pe-sam
Tacna pe-tac
Tumbes pe-tum
Ucayali pe-uca

Thailand

Thai characters are not supported on our Cloud API. You will need a custom Docker image. Replace platerecognizer/alpr by platerecognizer/alpr:thailand in the installation instructions.

State Region code
Amnat Charoen th-37
Ang Thong th-15
Ayutthaya th-14
Bangkok th-10
Bangkok th-10b
Bangkok th-10c
Batong th-99
Bueng Kan th-38
Buri Ram th-31
Chachoengsao th-24
Chai Nat th-18
Chaiyaphum th-36
Chanthaburi th-22
Chiang Mai th-50
Chiang Rai th-57
Chon Buri th-20
Chumphon th-86
Kalasin th-46
Kamphaeng Phet th-62
Kanchanaburi th-71
Khon Kaen th-40
Krabi th-81
Lampang th-52
Lamphun th-51
Loei th-42
Lop Buri th-16
Mae Hong Son th-58
Maha Sarakham th-44
Mukdahan th-49
Nakhon Nayok th-26
Nakhon Pathom th-73
Nakhon Phanom th-48
Nakhon Ratchasima th-30
Nakhon Sawan th-60
Nakhon Si Thammarat th-80
Nan th-55
Narathiwat th-96
Nong Bua Lam Phu th-39
Nong Khai th-43
Nonthaburi th-12
Pathum Thani th-13
Pattani th-94
Phangnga th-82
Phatthalung th-93
Phayao th-56
Phetchabun th-67
Phetchaburi th-76
Phichit th-66
Phitsanulok th-65
Phrae th-54
Phuket th-83
Prachin Buri th-25
Prachuap Khiri Khan th-77
Ranong th-85
Ratchaburi th-70
Rayong th-21
Roi Et th-45
Sa Kaeo th-27
Sakon Nakhon th-47
Samut Prakan th-11
Samut Sakhon th-74
Samut Songkhram th-75
Saraburi th-19
Satun th-91
Sing Buri th-17
Sisaket th-33
Songkhla th-90
Sukhothai th-64
Suphan Buri th-72
Surat Thani th-84
Surin th-32
Tak th-63
Trang th-92
Trat th-23
Ubon Ratchathani th-34
Udon Thani th-41
Uthai Thani th-61
Uttaradit th-53
Yala th-95
Yasothon th-35

United States of America

State Region code
Alabama us-al
Alaska us-ak
Arizona us-az
Arkansas us-ar
California us-ca
Colorado us-co
Connecticut us-ct
Delaware us-de
District of Columbia us-dc
Florida us-fl
Georgia us-ga
Hawaii us-hi
Idaho us-id
Illinois us-il
Indiana us-in
Iowa us-ia
Kansas us-ks
Kentucky us-ky
Louisiana us-la
Maine us-me
Maryland us-md
Massachusetts us-ma
Michigan us-mi
Minnesota us-mn
Mississippi us-ms
Missouri us-mo
Montana us-mt
Nebraska us-ne
Nevada us-nv
New Hampshire us-nh
New Jersey us-nj
New Mexico us-nm
New York us-ny
North Carolina us-nc
North Dakota us-nd
Ohio us-oh
Oklahoma us-ok
Oregon us-or
Pennsylvania us-pa
Rhode Island us-ri
South Carolina us-sc
South Dakota us-sd
Tennessee us-tn
Texas us-tx
Utah us-ut
Vermont us-vt
Virginia us-va
Washington us-wa
West Virginia us-wv
Wisconsin us-wi
Wyoming us-wy

Errors

Error Code Meaning
403 Forbidden: you do not have enough credits to perform this request or your API key is wrong.
413 Payload Too Large response status code indicates that the request entity is larger than limits defined by our server. See upload limits.
429 Indicates the user has sent too many requests in a given amount of time. The Free Trial Snapshot API Cloud Plan has a limit of 1 lookup per second. A Snapshot API Cloud Subscription has a limit of 8 lookups per second. The Snapshot SDK does not have any lookup limits per second. Subscribe for a higher number of calls per second for your API Cloud plan. The response is {"detail":"Request was throttled. Expected available in 1 second.","status_code":429}.