News submission and NakBus fleet are now in the partner dashboard
Use the same login (email and password) as your developer account to sign in to the Nakordoni Partners panel, and manage news and your bus fleet (NakDriver / NakManager) there, with team roles. Your API keys, endpoints and apps are unchanged, and the pages here keep working. Open Nakordoni Partners

← All endpoints

License Plate Recognition API (ALPR / ANPR) Online

Read the licence plates in a photo of a vehicle. POST one image (JPEG, PNG, WebP, BMP or TIFF, max 8 MB) as a JSON body with image_url or image_base64, as a multipart/form-data upload in the field "image", or as the raw bytes with an image/* Content-Type. Every plate found comes back with the text, a 0-1 score, alternative readings, the plate box in pixels and the detection score. The engine is our own plate detector and reader, tuned on European trucks and buses. Images are processed in memory and never stored. image_url must be a public http(s) address; private and internal addresses, and redirects to them, are refused, and the download is stopped after 10 seconds.

POST https://nakordoni.eu/api/v2/data/plate-recognition — quota class: heavy

ParameterDescription
image_url(JSON body) Public http(s) URL of the image. Max 8 MB, max 3 redirects, 10 s download limit.
image_base64(JSON body) The image as base64 (a data:image/...;base64, prefix is allowed). Send image_url or image_base64, not both.

Response fields — inside the data object of the envelope. [] marks a list, so data.items[].name is the name field of each element. A field is null, absent or an empty list when we hold no value for it — never a placeholder.

FieldDescription
data.successtrue when at least one plate was read; data.message says how many.
data.processing_timeTime spent on the request in milliseconds (download and recognition).
data.results[]One entry per plate, highest detection score first.
data.results[].platePlate text, upper case, letters A-Z and digits only (no spaces or dashes).
data.results[].scoreReading confidence 0-1 (mean of the per-character confidences).
data.results[].candidates[]Up to 5 readings {plate, score}, best first; the first one is the plate.
data.results[].region{code, score} with the country of the plate when the engine can tell it; null otherwise (the current engine does not infer the country).
data.results[].boxPlate position in pixels: xmin, ymin, xmax, ymax.
data.results[].dscorePlate detection confidence 0-1.
data.results[].vehicleVehicle details when available; null with the current engine.
error.code400: image_required, bad_json, bad_base64, one_image_only, bad_image_url, image_url_not_allowed, image_url_fetch_failed, image_url_timeout, invalid_image, unsupported_image_type, unsupported_content_type, upload_failed. 404: no_plate_detected. 413: payload_too_large. 500: engine_error.
curl -X POST "https://nakordoni.eu/api/v2/data/plate-recognition" \
  -H "Authorization: Bearer NKD-DEV-XXXX-XXXX-XXXX" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://nakordoni.eu/img/developers/plate-recognition-example-bus.jpg"
}'

License plate recognition (ANPR / ALPR) for European vehicles

The Plate Image Recognition API is a license plate recognition (LPR) service: send a photo and get the number plate text back as JSON. It is our own ANPR / ALPR engine, tuned on EU trucks and buses at border crossings and bus depots, and it also reads car and motorcycle plates.

Version v4 adds the country of the plate and the vehicle type (car, bus, truck or motorcycle). It also takes optional request options: regions, to bias the result toward the countries you expect; camera_id and timestamp, which come back in the response; a score threshold; and a fast mode.

GDPR by design: the API is EU-hosted, and each image is processed in memory only and never stored. No third-party vision service sees your images.

Integrations: Home Assistant

Our open-source Home Assistant integration (MIT licence, installable with HACS) reads number plates from your Home Assistant cameras. It gives you a sensor and an event for each plate, with the country of the plate and the vehicle type. It supports Frigate: on a vehicle event it reads the snapshot and writes the plate back to Frigate as the sub-label. Sign-in uses OAuth, so every user gets their own free key.

Home Assistant integration on GitHub ↗ Integrations

🔑 Log in as a developer to try this endpoint live in the sandbox — 10 free test calls per product a day. Log in

Updated