Germany Vehicle Registration OCR with Python SDK
Send a photo of a Germany Zulassungsbescheinigung Teil I (Fahrzeugschein) to the official Python SDK and receive the VIN, plate and vehicle details as structured JSON.
Reading the Germany Zulassungsbescheinigung Teil I (Fahrzeugschein)
The German Zulassungsbescheinigung Teil I uses EU field codes instead of plain labels: A is the registration plate, B the date of first registration, E the VIN, D.1 the make and D.3 the commercial name, 2.1 and 2.2 the manufacturer and type key numbers (HSN and TSN), J the vehicle class, P.1 the displacement and P.2 the power in kW. Insurers and fleet systems need these codes mapped to named fields.
A Server-Side Python Workflow
The StructOCR Vehicle Registration OCR API returns standardized fields for every country (VIN, plate, make, model, year and colour) and a localized block for country-specific fields. German field codes are returned under localized.germany: first registration (B), HSN (2.1), TSN (2.2), class (J), body type (4), displacement (P.1), power (P.2), curb weight (G) and owner name. For the business use cases, see Fahrzeugschein full-field OCR and Fahrzeugschein VIN OCR.
Where Teams Use It
- Kfz-Versicherung: Read HSN and TSN for tariff lookups straight from a photo of the Fahrzeugschein.
- Fleet management: Capture VIN, first registration date and power for each vehicle.
- Leasing and dealers: Prefill vehicle records at hand-over or trade-in.
Germany Vehicle Registration OCR with Python SDK
The official Python SDK reads a local file and calls /v1/vehicle-registration. The API reference documents every field.
Prerequisite: `pip install structocr`; set the server-side `STRUCTOCR_API_KEY` environment variable.
import os
from structocr import StructOCR
client = StructOCR(os.environ["STRUCTOCR_API_KEY"])
result = client.scan_vehicle_registration("registration.jpg")
if result.get("success"):
data = result["data"]
std = data["standardized"]
print(std["vin"], std["plate"]["formatted"], std["make_normalized"], std["year"])
print(data["localized"])
else:
print(result.get("error"))Technical Specs
- •Endpoint: POST /v1/vehicle-registration
- •Input: Base64-encoded JPG, PNG, WebP, or PDF in JSON, or a multipart upload (Max 4.5MB)
- •Authentication: Server-side x-api-key header handled by the SDK
- •Cost: 2 credits per successful scan; new accounts get 200 free credits
- •Retention: Images and results are kept for at most 24 hours for quality spot-checks, then deleted
Key Features
- •Standardized vehicle fields: VIN, plate (number, letters and formatted), make, model, year and colour, with raw and normalized values.
- •Localized fields: German field codes are returned under localized.germany: first registration (B), HSN (2.1), TSN (2.2), class (J), body type (4), displacement (P.1), power (P.2), curb weight (G) and owner name.
- •Missing values: Fields that are absent or unreadable are returned as null.
JSON Response Example
An illustrative response with fictional values.
{
"success": true,
"data": {
"document": {
"country_code": "DE",
"document_type": "VEHICLE_REGISTRATION",
"confidence_score": 0.96
},
"standardized": {
"vin": "WVWZZZ1KZ6W000001",
"plate": {
"number": "B AB 1234",
"letters_normalized": "B AB",
"formatted": "B-AB 1234"
},
"make_raw": "VOLKSWAGEN",
"make_normalized": "VOLKSWAGEN",
"model_raw": "GOLF",
"model_normalized": "GOLF",
"year": 2019,
"color_raw": null,
"color_normalized": null
},
"localized": {
"germany": {
"date_of_first_registration_b": "2019-05-14",
"hsn_2_1": "0603",
"tsn_2_2": "BJM",
"vehicle_class_j": "M1",
"body_type_4": "AB",
"displacement_p_1": "1498",
"power_kw_p_2": "110",
"curb_weight_g": "1340",
"owner_name": "ERIKA MUSTERMANN"
}
}
}
}Frequently Asked Questions
Which fields does the Germany vehicle registration API return?
Standardized fields for every country (VIN, plate, make, model, year, colour) plus a localized block. German field codes are returned under localized.germany: first registration (B), HSN (2.1), TSN (2.2), class (J), body type (4), displacement (P.1), power (P.2), curb weight (G) and owner name.
Can I test it for free?
Yes. New accounts get 200 free credits, enough for 100 vehicle registration scans, and you can try an image in the browser first.
Do I need the SDK?
No. The SDK is a convenience; you can also send Base64 JSON or a multipart upload to /v1/vehicle-registration with any HTTP client.
You May Also Like
Related tutorials, platform guides, and comparisons
India Vehicle Registration OCR with Python SDK
Extract the VIN, plate, make, model and year from a India registration certificate (RC) with the StructOCR Python SDK, plus country-specific fields. 100 free scans.
US Vehicle Registration OCR with Python SDK
Extract the VIN, plate, make, model and year from a US state vehicle registration card with the StructOCR Python SDK, plus country-specific fields. 100 free scans.
UAE Vehicle Registration OCR with Python SDK
Extract the VIN, plate, make, model and year from a UAE vehicle registration card (Mulkiya) with the StructOCR Python SDK, plus country-specific fields. 100 free scans.
Python Vehicle Registration OCR API
Python Vehicle Registration OCR API tutorial. Upload an image for a free test! Accurately extract standardized fields like VIN, make, and model, along with dynamically localized data for global documents.
Saudi Arabia Vehicle Registration OCR with Python SDK
Extract the VIN, plate, make, model and year from a Saudi Arabia vehicle registration (Istimara) with the StructOCR Python SDK, plus country-specific fields. 100 free scans.
Colombia Cédula OCR Python SDK
Python Tutorial: Automate KYC in Colombia. Extract data from the Colombian Cédula de Ciudadanía using StructOCR Python SDK. Supports NUIP extraction and complex address parsing.
Bulgaria Lichna karta (Лична карта) OCR Python SDK
Python Tutorial: Automate KYC in Bulgaria. Extract Cyrillic/Latin text, EGN (ЕГН), and validate TD1 MRZ from Lichna karta using StructOCR Python SDK.
Czech Republic Občanský průkaz OCR Python SDK
Python Tutorial: Automate KYC in the Czech Republic. Extract Czech text with diacritics, Rodné číslo, and validate TD1 MRZ from Občanský průkaz.
Chile Cédula OCR Python SDK
Python Tutorial: Automate KYC in Chile. Extract data from the Chilean Cédula de Identidad using StructOCR Python SDK. Supports RUN/RUT extraction and native Spanish text parsing.
Ghana Driver License OCR API with Node.js
Extract licence number, names, dates, and vehicle class from the Ghana DVLA driving licence with the StructOCR Node.js SDK.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Add VIN OCR to Your Bolt.new App in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API into a Bolt.new app. Build automotive and fleet tools right in your browser.
Add Container OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR shipping container API using the Cursor AI code editor. Build logistics and yard management tools rapidly.
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 HIN OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR HIN (Hull Identification Number) scanner API using the Cursor AI code editor. Build marine and boat management tools rapidly.
Add Invoice OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR invoice API using the Cursor AI code editor. Build accounts payable and expense tracking tools rapidly.
Add National ID OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR National ID scanner API using the Cursor AI code editor. Build KYC and identity verification flows rapidly.
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.