Italian Driving Licence (Patente di Guida) OCR API
Read the Italian patente di guida from a photo and get the licence number, name, dates and classes as structured JSON. Upload an image below to test it free.
200 free credits = 100 Driver License scans, no credit card. Then from $5 for 500 credits, pay as you go. See pricing

What Makes the Italian patente di guida Hard to Parse
The Italian patente di guida is issued by the Motorizzazione Civile (Ministry of Infrastructure and Transport). The Italian patente di guida uses the EU card format with numbered fields: 1 cognome, 2 nome, 3 date and place of birth, 4a and 4b issue and expiry dates, 4c the issuing office, 5 the licence number and 9 the categories. Validity depends on the holder's age, so the expiry date matters more than the issue date for any check, and the card carries no address.
One API Call, Named Fields
The StructOCR Driver License OCR API returns the licence number (field 5), cognome and nome (fields 1 and 2), date and place of birth (field 3), issue and expiry dates (4a, 4b), issuing office (4c) and categories (field 9). Italian cards print dates as DD/MM/YYYY; the API returns them as YYYY-MM-DD. Send a JPG, PNG, WebP or PDF as Base64 JSON or as a multipart upload; there is no SDK to embed in your app, although official Python and Node.js SDKs are available. Step-by-step code is in the Python guide. Usage is billed per successful scan with pay-as-you-go pricing.
Live Demo: Driver License OCR Scanner
No registration required. Upload a file to test the extraction.
Drop files here or click to browse
JPG · PNG · PDF · TIFF · up to 500 files · max 4.5 MB each
No document handy?
Where Teams Use It in Italy
Noleggio auto e car sharing
Check the categories and expiry date before a rental or a car-sharing trip starts.
Assicurazioni
Prefill the driver's data on quotes and claims from a photo of the patente.
Logistica e consegne
Collect licence details for drivers and couriers during onboarding.
Technical Specs
- Endpoint: POST https://api.structocr.com/v1/driver-license
- Input: JPG, PNG, WebP or PDF up to 4.5 MB, as Base64 JSON or multipart upload
- Price: 2 credits per successful scan; new accounts get 200 free credits (100 scans)
- Retention: Images and results are kept for at most 24 hours for quality spot-checks, then deleted
Key Features
- Named fields: The licence number (field 5), cognome and nome (fields 1 and 2), date and place of birth (field 3), issue and expiry dates (4a, 4b), issuing office (4c) and categories (field 9).
- Normalized dates: Italian cards print dates as DD/MM/YYYY; the API returns them as YYYY-MM-DD.
- Good to know: The card has no address field, so address is returned as null.
Integration & AI Prompts
Install the official SDK and pass a photo of the licence. Full request and response details are in the driver license API reference.
# pip install structocr
import os
from structocr import StructOCR
client = StructOCR(api_key=os.environ["STRUCTOCR_API_KEY"])
result = client.scan_driver_license("licence.jpg")
if result.get("success"):
data = result["data"]
print(data["document_number"], data["surname"], data["date_of_expiry"])Standardized JSON Output
An illustrative response for a Italian patente di guida, with fictional values.
{
"success": true,
"data": {
"type": "drivers_license",
"country_code": "ITA",
"region": null,
"document_number": "U1A123456B",
"personal_number": null,
"surname": "ROSSI",
"given_names": "GIULIA",
"sex": null,
"date_of_birth": "1987-09-23",
"place_of_birth": "MILANO (MI)",
"date_of_issue": "2020-01-15",
"date_of_expiry": "2030-09-23",
"date_of_first_issue": null,
"issuing_authority": "MIT-UCO",
"address": null,
"vehicle_class": "AM, B1, B"
}
}Frequently Asked Questions
Can I test the Italian patente di guida scan for free?
Yes. Upload a photo in the live demo on this page without an account, or create an account to get 200 free credits, enough for 100 licence scans through the API.
Why is the expiry date so important for Italian licences?
Validity of the patente depends on the holder's age, so the expiry date printed in field 4b is the one to check.
Is the address included?
No. The card has no address field, so address is returned as null.
Do I need an SDK?
No. It is a plain REST API that accepts Base64 JSON or a multipart upload. Official Python and Node.js SDKs are available if you prefer them.
Explore More Driver License OCR Solutions
Malaysian Lesen Memandu OCR API
Extract the IC number, identity fields, and vehicle classes from Malaysian driving licenses (Lesen Memandu). Test our edge-routed API with a free image upload.
Liquor Store Age Verification with ID Barcode Scanning
Scan US driver licenses and state ID cards for liquor retailers. Pre-fill AAMVA fields from the PDF417 barcode and route unreadable cards to a retake.
Philippine LTO Driver License OCR API
Accurately extract data from Philippine LTO driver's licenses. Parse restriction codes, conditions, and identity fields via our edge-routed API. Test for free.
Dutch Driving Licence (Rijbewijs) OCR API
Extract the licence number, surname and first names, date and place of birth, issue and expiry dates, issuing municipality and categories from the Dutch rijbewijs as JSON with one API call. Try it free in the browser; new accounts get 100 free licence scans.
Notary and Loan Signing ID Capture with PDF417
Scan US driver licenses and state ID cards for notaries and signing agents. Pre-fill AAMVA fields from the PDF417 barcode and route unreadable cards to a retake.
Pawn Shop and Secondhand Dealer Seller ID Capture
Scan US driver licenses and state ID cards for pawn shops and secondhand dealers. Pre-fill AAMVA fields from the PDF417 barcode and route unreadable cards to a retake.
Pharmacy Prescription Pickup ID Scanning with PDF417
Scan US driver licenses and state ID cards for pharmacy pickup. Pre-fill AAMVA fields from the PDF417 barcode and route unreadable cards to a retake.
Plasma Donation Center Donor ID Check-In with PDF417
Scan US driver licenses and state ID cards for plasma donation centers. Pre-fill AAMVA fields from the PDF417 barcode and route unreadable cards to a retake.
Ride-Share Driver License Barcode Onboarding API
Use PDF417 and AAMVA parsing for ride-share onboarding. Pre-fill document_number, date_of_expiry, region, handle unreadable barcodes, and keep API credentials server-side.
School Visitor Management with License and ID Barcodes
Scan US driver licenses and state ID cards for school front offices. Pre-fill AAMVA fields from the PDF417 barcode and route unreadable cards to a retake.
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 Receipt OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR receipt API into a Bolt.new app. Build expense tracking and receipt scanning tools right in your browser.
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.