Vehicle Registration Book OCR
Reads a Thai vehicle registration book and returns the vehicle and its ownership.
/ocr/v3/vehicle-registration/fileTry it- Price1 ICper page
- Measured93.4%
- Served29Kcalls
Input

OutputPOST /ocr/v3/vehicle-registration/file
- registration_date
- 27 มิถุนายน 2562
- license_plate
- 1กข 1234
- province
- กรุงเทพมหานคร
- vehicle_type
- รถยนต์นั่งส่วนบุคคลไม่เกิน 7 คน
- brand
- ISUZU
- model
- mu-X
- year
- 2019
- color
- ขาว
- body_number
- MP1TFR85XKT000000
- engine_number
- 4JJ1XX0000
- fuel_type
- ดีเซล
- seating_capacity
- 7
- owner_name
- นายสมชาย ตัวอย่าง
- owner_id
- 1100000000001
- owner_address
- 123 ถนนพหลโยธิน แขวงจตุจักร เขตจตุจักร กรุงเทพม หานคร
- occupant_name
- —
- occupant_id
- —
Request
multipart/form-data only; there is no Base64 form. Every page of a PDF is read and billed.
Headers
apikeystringrequiredBody
filefilerequiredreturn_ocrbooleantrue to include the raw OCR text.target_langstringth, the default, en, or auto to keep the document's own language.include_confidencebooleantrue: a confidence from 0.00 to 1.00 per field./v3/store/ocr/vehicle-registration is the same endpoint under the store prefix.
Response
The iapp-input-pages header carries the number of pages billed.
docsarrayOne entry per document read
docs.processedobjectThe fields read from the document
docs.processed.registration_datedocs.processed.license_platedocs.processed.provincedocs.processed.vehicle_typedocs.processed.branddocs.processed.modeldocs.processed.yeardocs.processed.colordocs.processed.body_numberdocs.processed.engine_numberdocs.processed.fuel_typedocs.processed.seating_capacitydocs.processed.owner_namedocs.processed.owner_iddocs.processed.owner_addressdocs.processed.occupant_namedocs.processed.occupant_iddocs.messagestringdocs.rawobjectdocs.confidenceobjectConfidence per field, 0 to 1
docs.confidence.registration_datenumberdocs.confidence.license_platenumberdocs.confidence.provincenumberdocs.confidence.vehicle_typenumberdocs.confidence.brandnumberdocs.confidence.modelnumberdocs.process_msintegerdocs_countintegerprocess_msintegerStatus codes
| Code | Meaning |
|---|---|
| 400 | Unsupported file extension, or a file over 50 MB |
| 404 | Unknown document type in the URL |
| 422 | No file attached |
| 500 | Processing error; the response carries a code to quote to support |
| 502 | Temporary processing failure, also when any page of a multi-page file fails (code: PROCESSING_FAILED). Not charged; retry |
| 503 | Service busy (PROCESSING_BUSY). Not charged; retry, after the seconds in Retry-After when that header is present |
| 504 | Processing timed out (PROCESSING_TIMEOUT). Not charged; retry |
Details
Measured
On the production service, 28 October 2026, against a synthetic test set: 40 vehicle registration book pages with invented values and a specimen watermark, 20 degraded as office scans and 20 as phone photographs. Real documents, with stamps, handwriting and unfamiliar layouts, score lower.
| Measure | Result |
|---|---|
| Fields exactly right, 623 fields | 93.4% (95% CI 91.9–95.1) |
| Pages with every field right | 27.5% |
| Registration date, vehicle type, make, year, colour, fuel, seats | 100.0% each |
| Plate, province, model | 95.0%, 97.5%, 97.5% |
| Owner's name, ID, address | 92.5%, 97.5%, 95.0% |
| Engine number, 33 pages | 90.9% |
Chassis number (body_number) | 32.5% |
| Median time per page through the API, 44 documents across the 11 types | 10.8 s (19.9 s at the 95th percentile) |
The chassis number was right on 13 of 40 pages. The errors are 0 read as O and 8 read as B: 13 answers contained I, O or Q, letters a chassis number never uses. The test typeface draws these characters alike, so real books may fare better, but check body_number against its alphabet and length before use. Method, every field and the errors: the benchmark (PDF).
Limits
- Up to 50 MB per request.
- Only the fields above are extracted.
- Degraded scans, glare and handwriting over printed values lower accuracy. Prefer the original PDF, a square-on photograph in even light, or a scan at 300 dpi or more.
- The per-field confidence does not mark errors (0.957 on wrong fields against 0.967 on right ones in the benchmark), so do not use it to choose fields for review; check identifiers against their format and the check digit of
owner_idinstead.
Data handling
Consent and notice under PDPA and GDPR remain with you as the data controller.