Thai National ID Card OCR
Reads the front of a Thai national ID card into its number, names, address and dates, and the back into its laser code, with a confidence per field.
- Price1.25 ICper page
- Measured98.0%
- Capacity5,000 cards/hour
- Served24.1Mcalls
Input

OutputPOST /v3/store/ekyc/thai-national-id-card/front
- id_number
- 3411700830334
- th_name
- นาง บุญยัง โลเปช
- en_name
- Mrs. Bunyang Lopez
- en_dob
- 22 Mar. 1957
- address
- 33/349 หมู่ที่ 7 ต.หนองปรือ อ.บางละมุง จ.ชลบุรี
- province
- ชลบุรี
- detection_score
- 0.979
Every field, under ResponseOther endpoints: /back see Request
Request
multipart/form-data, one face of one card per request. For a photographed photocopy, use Photographed Thai National ID Card With Signature Detection.
Headers
apikeystringrequiredBody
filefilerequiredfieldsstringoptionsstringget_bbox adds each field's box as [x1, y1, x2, y2] with a score; get_image adds each field's crop as Base64; get_original adds the values before auto-correction; not_crop_card and not_rotate_card skip the cropping and the rotation; id_check rejects an ID number that fails its check digit; gray_check rejects a black-and-white image.| Endpoint | Returns | Price |
|---|---|---|
/v3/store/ekyc/thai-national-id-card/front | Every front-side field | 1.25 IC per page |
/v3/store/ekyc/thai-national-id-card/back | The laser code | 0.75 IC per page |
The legacy paths /thai-national-id-card/v3.5/front and /thai-national-id-card/v3.5.1/back answer at the same prices.
Response
The front, as in the panel:
id_numberid_number_statusth_initth_fnameth_lnameth_nameen_initen_fnameen_lnameen_nameth_dobth_issueth_expireen_doben_issueen_expireaddresshouse_novillage_novillagealleylaneroadsub_districtdistrictprovincepostal_codegenderreligionreligion is blank when the card omits itfaceconfidencedetection_scoreerror_messageprocess_timerequest_idThe back returns back_number, the 12-character laser code, with detection_score and process_time.
Status codes
| Code | Meaning |
|---|---|
| 420, 430 | No ID card in the image (front, back) |
| 421, 431 | Unsupported or corrupted image |
| 422, 432 | The image's dimensions are outside the limits |
| 424 | The ID number has 13 digits but fails its check digit, with id_check |
| 425 | The ID number has fewer than 13 digits, with id_check |
| 426, 436 | A black-and-white image, with gray_check |
| 434 | No laser code found on the back |
| 435 | The laser code has fewer than 12 characters, with id_check |
| 413 | The file is too large |
| 427, 428 | Processing or queue timeout |
| 461 | No file attached |
| 560 | The server is busy; retry |
| 563 | The image could not be processed |
Details
Measured
Against human-verified ground truth: 60 real cards, 1,380 field observations. The set is private.
| Measure | Result |
|---|---|
| ID number | 100% |
| Surname in English, titles, gender, religion | 100% |
| Sub-district, district, postal code, province, dates | 100% |
| Full address | 98.3% |
| Full name in Thai | 93.3% |
| All fields | 98.0% |
| Median time | 1.4 s per card, front; 1.3 s, back |
| Sustained throughput | 5,000 cards per hour, production, August 2026 |
Thai full names fell from 96.7% to 93.3% with the August 2026 engine: if you match on the Thai name rather than the number or the address, check its confidence. Method, per-field results and a comparison with a leading cloud OCR service: the benchmark paper (PDF).
Limits
- Capture at 300 dpi or more; 600 dpi and a file under 5 MB are recommended.
- Check
detection_score, and validate the ID number's format on your side.
Data handling
Images are processed in memory and not kept after the response. The service is GDPR and PDPA compliant. For an on-premise deployment, in which no card leaves your network, contact us.
Changelog
| Version | Date | Changes |
|---|---|---|
| v3.6.0-20260824 | 24 Aug 2026 | English dates (en_dob, en_issue, en_expire) now match the card's print: abbreviated months carry a dot (23 Apr. 1997) and May, printed in full, has none; accept the dotted form when parsing. |
| v3.5.3-20260824 | 24 Aug 2026 | New engine: field-level accuracy 97.8% to 98.0%, largest gains on addresses, province and expiry dates; on-premise deployment. |
| 3.5 | Nov 2022 | New OCR engine, faster; characters correct 98.13%. |
| 3.4 | Jul 2022 | Thai military ranks; 93.25%. |
| 3.0 | Feb 2021 | Accuracy 91.75%. |
| 2.0 | Feb 2020 | The back side; 85%. |
| 1.0 | Nov 2019 | First release; 76%. |