Indonesia Driver License OCR API with Python
Extract licence number, names, dates, and vehicle class from the Indonesia Surat Izin Mengemudi (SIM) with the StructOCR Python SDK.
Reading the Surat Izin Mengemudi (SIM)
The SIM is issued by the national police and is printed in Indonesian, with the SIM class (A, B1, C, and others) shown prominently. Typing these fields by hand slows down rental, onboarding, and fleet workflows and introduces formatting errors.
Structured Fields from One API Call
The Driver License OCR API returns the licence number, holder name, dates, issuing authority, address, and vehicle class when they are printed and legible; missing fields are null. Try a sample with the free driver license scanner. For coverage, pricing, and the full field list, see the driver license OCR API overview.
Common Integration Scenarios
- Vehicle rental: Pre-fill Indonesia licence details before handover and keep the agent’s confirmation step.
- Driver onboarding: Move licence fields into a review queue without retyping the card.
- Fleet records: Track licence classes and expiry dates for internal compliance reminders.
Indonesia Driver License OCR API with Python
The official Python SDK reads a local file and calls /v1/driver-license from your backend.
Prerequisite: `pip install structocr`; set the server-side `STRUCTOCR_API_KEY` environment variable.
Prefer another stack? Open the Node.js SDK + Express integration.
import os
from structocr import StructOCR
client = StructOCR(os.environ["STRUCTOCR_API_KEY"])
result = client.scan_driver_license("driver-license.jpg")
if result.get("success"):
data = result["data"]
print(data.get("document_number"))
print(data.get("given_names"), data.get("surname"))
else:
print(result.get("error"))Technical Specs
- •Endpoint: POST /v1/driver-license
- •Input: Base64-encoded JPG, PNG, WebP, or PDF in JSON (Max 4.5MB)
- •Authentication: Server-side x-api-key header handled by the SDK
- •Cost: 2 credits per successful scan; failed requests are not billed
- •Output: Structured JSON
Key Features
- •Local layout: Handles the Surat Izin Mengemudi (SIM) layout and its printed field labels.
- •Licence fields: Returns licence number, vehicle class, and validity dates when visible.
- •Normalized dates: Dates are returned as YYYY-MM-DD regardless of the printed format.
- •Server-side key: The SDK keeps your API key on the backend.
JSON Response Example
Fictional values showing the normalized shape; fields not present on the card are null.
{
"success": true,
"data": {
"type": "drivers_license",
"country_code": "IDN",
"region": "DKI Jakarta",
"personal_number": null,
"surname": "SANTOSO",
"given_names": "DEWI",
"sex": null,
"date_of_birth": "1990-04-12",
"place_of_birth": null,
"date_of_issue": "2023-05-02",
"date_of_expiry": "2033-05-01",
"date_of_first_issue": null,
"issuing_authority": "POLDA METRO JAYA",
"address": null,
"vehicle_class": "A",
"extra_details": {},
"document_number": "0000-0000-000000"
}
}Frequently Asked Questions
Which fields does the API return for a Indonesia licence?
Typically country_code, region, document_number, personal_number, names, sex, birth details, issue and expiry dates, issuing_authority, address, and vehicle_class, when printed and legible.
Does OCR verify that the licence is valid?
No. It extracts printed data. Validity and authenticity checks need the issuing authority’s records or your own review process.
Is there a version for the other SDK language?
Yes. A paired Node.js version of this tutorial covers the same document.
You May Also Like
Related tutorials, platform guides, and comparisons
Indonesia Driver License OCR API with Node.js
Extract licence number, names, dates, and vehicle class from the Indonesia Surat Izin Mengemudi (SIM) with the StructOCR Node.js SDK.
US Driver License OCR with Python SDK
Extract structured fields from a United States state-issued driver license with the StructOCR Python SDK and FastAPI.
New Zealand Driver License OCR: Extract Fields with Python
Extract visible fields from New Zealand driver license images into JSON. Map identifiers, names and dates, with a review workflow for incomplete results.
Virginia Driver License OCR: Extract Fields with Python
Extract visible fields from Virginia driver license images into JSON. Map identifiers, names and dates, with a review workflow for incomplete results.
Ireland Driver License OCR: Extract Fields with Python
Extract visible fields from Ireland driver license images into JSON. Map identifiers, names and dates, with a review workflow for incomplete results.
Australia Driver License OCR with Python SDK
Extract structured fields from a Australia state or territory driver licence with the StructOCR Python SDK and FastAPI.
Brazil Driver License OCR with Python SDK
Extract structured fields from a Brazil Carteira Nacional de Habilitação (CNH) with the StructOCR Python SDK and FastAPI.
Brazil Driver License OCR with Node.js SDK
Extract structured fields from a Brazil Carteira Nacional de Habilitação (CNH) with the StructOCR Node.js SDK and TypeScript + Express.
Australia Driver License OCR with Node.js SDK
Extract structured fields from a Australia state or territory driver licence with the StructOCR Node.js SDK and TypeScript + Express.
Indonesia KTP OCR with Node.js SDK
Extract NIK, names, dates and other visible fields from Kartu Tanda Penduduk (KTP) with the StructOCR Node.js SDK and Express.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Add Driver's License OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR Driver's License scanner API into a Bolt.new app. Build car rental and mobility onboarding flows right in your browser.
Add Driver's License OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR Driver's License scanner API using the Cursor AI code editor. Build car rental and mobility onboarding flows rapidly.
Add Driver's License OCR to Your Lovable.dev App in 5 Minutes
Step-by-step guide to integrating the StructOCR Driver's License scanner API into a Lovable.dev app. Build car rental and mobility onboarding flows with zero backend.
Add Driver's License OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR Driver's License scanner API into a Replit application. Build car rental and mobility onboarding flows using Replit Agent and Secrets.
Add Driver's License OCR to Your v0 App in 5 Minutes
Step-by-step guide to integrating the StructOCR Driver's License scanner API into a v0 by Vercel app. Build car rental and mobility onboarding flows with zero backend.
Add Container OCR to Your v0 App in 5 Minutes
Step-by-step guide to integrating the StructOCR shipping container API into a v0 by Vercel app. Build logistics and yard management tools with zero backend.
From tutorial to production in 5 minutes.
You've seen the code. Now get your API key, grab your 200 free credits, and see it work with your own images. No credit card required.