US Vehicle Registration OCR with Python SDK

Send a photo of a US state vehicle registration card to the official Python SDK and receive the VIN, plate and vehicle details as structured JSON.

Reading the US state vehicle registration card

Each US state DMV issues its own registration card, so the position of the plate number, VIN, make, model year, owner name and expiration date differs by state. Insurers, fleet managers and dealers collect these cards as photos and still type the VIN and plate by hand.

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. State-specific fields such as the expiration date and owner name are returned under localized.generic.unmapped_fields when printed. For the business use cases, see US DMV registration OCR and US DMV title VIN OCR.

Where Teams Use It

  • Auto insurance: Prefill VIN, plate and vehicle details at quote and claim.
  • Fleet management: Keep each vehicle's registration and expiration date on file.
  • Dealers and marketplaces: Capture vehicle details when a car is listed or traded in.
Need more testing? Create a free account to get 200 free credits (equals 100 Vehicle Registration scans).

US 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: State-specific fields such as the expiration date and owner name are returned under localized.generic.unmapped_fields when printed.
  • •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": "US",
      "document_type": "VEHICLE_REGISTRATION",
      "confidence_score": 0.95
    },
    "standardized": {
      "vin": "1HGCM82633A004352",
      "plate": {
        "number": "8ABC123",
        "letters_normalized": null,
        "formatted": "8ABC123"
      },
      "make_raw": "HONDA",
      "make_normalized": "HONDA",
      "model_raw": "ACCORD",
      "model_normalized": "ACCORD",
      "year": 2003,
      "color_raw": null,
      "color_normalized": null
    },
    "localized": {
      "generic": {
        "unmapped_fields": {
          "state": "CA",
          "registration_expiration": "2027-06-30",
          "owner_name": "JANE DOE"
        }
      }
    }
  }
}

Frequently Asked Questions

Which fields does the US vehicle registration API return?

Standardized fields for every country (VIN, plate, make, model, year, colour) plus a localized block. State-specific fields such as the expiration date and owner name are returned under localized.generic.unmapped_fields when printed.

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

Tutorial

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.

Python · Vehicle Reg.
Country Tutorial

Germany Vehicle Registration OCR with Python SDK

Extract the VIN, plate, make, model and year from a Germany Zulassungsbescheinigung Teil I (Fahrzeugschein) with the StructOCR Python SDK, plus country-specific fields. 100 free scans.

Python · Vehicle Reg.
Country Tutorial

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 Reg.
Country Tutorial

South Africa Vehicle Registration OCR with Python SDK

Extract the VIN, plate, make, model and year from a South Africa vehicle registration certificate (RC1) with the StructOCR Python SDK, plus country-specific fields. 100 free scans.

Python · Vehicle Reg.
Country Tutorial

Vermont Driver License OCR: Extract Fields with Python

Extract visible fields from Vermont driver license images into JSON. Map identifiers, names and dates, with a review workflow for incomplete results.

Python · Driver License
Tutorial

PHP Vehicle Registration OCR API

PHP 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.

PHP · Vehicle Reg.
Country Tutorial

Estonia ID-kaart OCR Python SDK

Python Tutorial: Automate KYC in Estonia. Extract data from the Estonian Identity Card (ID-kaart) using StructOCR Python SDK. Supports native text, Isikukood, and MRZ extraction.

Python · id-kaart
Country Tutorial

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.

Python · občanský průkaz
Country Tutorial

Ethiopia Fayda ID OCR Python SDK

Python Tutorial: Automate KYC in Ethiopia. Extract data from Fayda ID using StructOCR Python SDK. Supports native text.

Python · fayda id
Country Tutorial

Germany Personalausweis OCR Python SDK

Python Tutorial: Automate KYC in Germany. Extract data from Personalausweis and validate TD1 MRZ using StructOCR Python SDK. Supports native German text.

Python · personalausweis

Technical Comparisons & Integrations

Explore platform integrations and competitive analysis

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.

Instant Access Cancel Anytime No Credit Card