India Vehicle Registration OCR with Python SDK

Send a photo of a India registration certificate (RC) to the official Python SDK and receive the VIN, plate and vehicle details as structured JSON.

Reading the India registration certificate (RC)

Indian vehicles are registered by state Regional Transport Offices in the national VAHAN system. The RC, issued as a smart card in most states and as an older book in some records, carries the registration number (for example MH01AB1234), the owner's name, chassis number (VIN), engine number, maker and model, fuel type and registration dates. Layouts differ by state, and lenders, insurers and fleet operators still retype these fields from photos.

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. Country-specific fields such as engine number, fuel and owner name are returned under localized.generic.unmapped_fields when printed. For the business use cases, see Indian RC full-field OCR and Indian RC VIN OCR.

Where Teams Use It

  • Vehicle loans: Read the RC during loan underwriting and match the chassis number with the invoice.
  • Motor insurance: Prefill policy data from the RC at renewal or claim.
  • Used-car platforms: Capture registration details when a seller lists a vehicle.
Need more testing? Create a free account to get 200 free credits (equals 100 Vehicle Registration scans).

India 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: Country-specific fields such as engine number, fuel 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": "IN",
      "document_type": "VEHICLE_REGISTRATION",
      "confidence_score": 0.95
    },
    "standardized": {
      "vin": "MA3EWDE1S00123456",
      "plate": {
        "number": "MH01AB1234",
        "letters_normalized": null,
        "formatted": "MH 01 AB 1234"
      },
      "make_raw": "MARUTI SUZUKI",
      "make_normalized": "MARUTI SUZUKI",
      "model_raw": "SWIFT VXI",
      "model_normalized": "SWIFT",
      "year": 2021,
      "color_raw": "WHITE",
      "color_normalized": "WHITE"
    },
    "localized": {
      "generic": {
        "unmapped_fields": {
          "engine_number": "K12MN1234567",
          "fuel": "PETROL",
          "owner_name": "RAHUL SHARMA",
          "registration_date": "2021-03-15"
        }
      }
    }
  }
}

Frequently Asked Questions

Which fields does the India vehicle registration API return?

Standardized fields for every country (VIN, plate, make, model, year, colour) plus a localized block. Country-specific fields such as engine number, fuel 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

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

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.

Python · Vehicle Reg.
Country Tutorial

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.

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

Philippines UMID OCR Python SDK

Python Tutorial: Automate KYC in Philippines. Extract data from UMID using StructOCR Python SDK. Supports native text.

Python · umid
Country Tutorial

Senegal Carte d'Identité CEDEAO OCR Python SDK

Python Tutorial: Automate KYC in Senegal. Extract data from Carte d'Identité CEDEAO using StructOCR Python SDK. Supports native text and MRZ extraction.

Python · carte d'identité cedeao
Country Tutorial

Portugal Cartão de Cidadão OCR Python SDK

Python Tutorial: Automate KYC in Portugal. Extract data from Cartão de Cidadão using StructOCR Python SDK. Supports native text and MRZ extraction.

Python · cartão de cidadão
Country Tutorial

Romania Carte de Identitate OCR Python SDK

Python Tutorial: Automate KYC in Romania. Extract data from Carte de Identitate using StructOCR Python SDK. Supports native text, front/back sides, and MRZ extraction.

Python · carte de identitate
Country Tutorial

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.

Node.js · Driver License

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