US DMV Title VIN Extraction API
Automate vehicle title transfers and loan origination. Accurately extract the 17-character VIN from highly variable US DMV Titles, effortlessly bypassing state-specific security backgrounds and faded dot-matrix prints.

The Variability of 50 State Titles
Digitizing US Certificates of Title (often called 'pink slips') presents a massive standardization problem. Each of the 50 states uses a completely different document layout. More critically, these official documents are printed on colored security paper with complex guilloche watermarks to prevent forgery. To make matters worse, many state DMVs still utilize legacy dot-matrix printers, resulting in broken, faded, or misaligned characters. Traditional template-based OCR engines break constantly due to layout changes and background noise. For a deeper dive into how our API handles unstructured official forms, see our core OCR product capabilities.
StructOCR: Template-Free & Security Paper Ready
StructOCR completely eliminates the need to map templates for 50 different states. Powered by our flagship Automotive VIN OCR API, it semantically searches the entire document for the core vehicle identifier. The neural network applies advanced frequency filtering to neutralize the colored anti-counterfeit backgrounds. It intelligently reconstructs the disjointed dots of legacy printers, applying strict ISO 3779 validation to ensure the extracted string is a perfect, 17-character VIN ready for compliance checks.
Live Demo: VIN Barcode Scanner
No registration required. Upload a file to test the extraction.
Drop files here or click to browse
JPG · PNG · WebP · up to 500 files · max 4.5 MB each
Core Industry Applications
Auto Lending & Title Loans
Accelerate loan origination by allowing borrowers to upload a photo of their title, instantly verifying the asset against NMVTIS databases. Get 200 free credits to test your own documents.To streamline your vehicle intake process without any integration, try capturing data effortlessly with our free VIN barcode scanner directly from your browser.
Dealership F&I Offices
Finance and Insurance managers can instantly digitize trade-in titles, eliminating manual data entry errors that delay state registration transfers.
Insurance Total Loss Processing
Automate the intake of branded or salvage titles when processing total loss claims, ensuring the correct vehicle is retired.
Wholesale Auction Intake
Auction houses can rapidly process incoming inventory by scanning titles in bulk, mapping the extracted VIN to the physical vehicle.
Technical Specs
- Dot-Matrix Reconstruction: Specifically trained to connect faded, broken characters typical of legacy DMV printers
- Validation: Built-in ISO 3779 rules & Length constraint (strictly 17 chars)
- Latency: < 1.2s per document via API
- Data Privacy: Zero data retention (SOC2 Compliant)
Key Features
- Template-Free Architecture: Works universally across all 50 US state title layouts without manual mapping.
- Security Paper Neutralization: Filters out complex colored backgrounds and anti-forgery watermarks.
- Format Support: Accepts raw Base64 or Data URIs (JPG, PNG, WebP up to 4.5MB).
Integration & AI Prompts
Call the endpoint directly via our REST API, or copy the prompt below into Cursor, Lovable, or v0 to instantly generate your frontend application.
import requests
import base64
# 💰 Save 30%+ vs competitors. Get 200 free credits instantly:
# 👉 https://structocr.com/register
# 1. Prepare Base64 Image
with open("us_dmv_title.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/vin"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
try:
print("Scanning US DMV Title...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
data = result['data']
print("✅ Extraction Successful!")
print(f"VIN: {data.get('vin')}")
print(f"Confidence: {data.get('confidence')}")
print(f"Carrier Type: {data.get('carrier_type')}")
else:
print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
print(f"An error occurred: {e}")Standardized JSON Output
The API returns a clean, structured payload containing the validated 17-character VIN, structural confidence, and identifies the carrier as a document.
{
"success": true,
"data": {
"vin": "1G1RC6E45BU123456",
"confidence": "High",
"carrier_type": "document"
}
}Frequently Asked Questions
Do I need to tell the API which state the title is from?
No. StructOCR is completely template-agnostic. It semantically searches the document for the ISO 3779 structural signature, regardless of whether it's a California, Texas, or Florida title.
Can it read the VIN if the title was printed on an old dot-matrix printer?
Yes. Our deep learning models are trained to recognize and reconstruct 'broken' or disjointed characters commonly produced by legacy DMV impact printers.
Does the API extract the owner's name or address?
This specific endpoint is highly optimized for extracting the 17-character VIN. It intentionally ignores PII (Personally Identifiable Information) like names and addresses to maintain high speed and SOC2 compliance.
Explore More Automotive VIN OCR Solutions
Universal VIN OCR API Solution
Our flagship API for automated vehicle identification. Works across windshields, documents, and physical plates with 99% accuracy.
UK V5C Logbook VIN Extraction API
Extract 17-character VINs from UK DVLA V5C registration certificates. High-accuracy API that parses logbook layouts and ignores complex security backgrounds.
Vietnam Vehicle Registration VIN OCR
Extract 17-character VINs (Số khung) from Vietnamese registration cards. High-accuracy OCR engineered to handle red stamps, moiré patterns, and screen captures.
Windshield VIN OCR API
Extract 17-character VINs directly from vehicle windshields. High-accuracy OCR that automatically filters out severe glass glare, reflections, and dirt.
Arabic Vehicle Registration VIN OCR
Extract 17-character VINs (Chassis Numbers) from Arabic registration cards. High-accuracy OCR featuring ISO 3779 validation and auto-correction.
Window-Mounted Auction Sticker VIN OCR
Extract 17-character VINs from inventory tags placed behind vehicle windshields. High-accuracy OCR that ignores massive lot numbers and filters out glass reflections.
Auto Auction Sticker VIN OCR
Extract 17-character VINs from barcode-bearing auto auction windshield stickers and dealership inventory tags, despite lot numbers, glare, and faded thermal print.
Auto Insurance Policy VIN Extraction
Extract 17-character VINs from highly variable auto insurance policies and ID cards. Template-free OCR that handles unstructured layouts and scanned faxes.
Auto Repair Invoice (RO) VIN Extraction
Extract 17-character VINs from auto repair orders and shop invoices. High-accuracy OCR that handles thermal paper, grease stains, and unstructured layouts.
Auto Transport Bill of Lading (BoL) OCR
Extract multiple 17-character VINs simultaneously from vehicle transport Bills of Lading (BoL). High-accuracy OCR that parses dense logistics tables.
Cyrillic Vehicle Registration (STS) VIN OCR
Extract 17-character VINs from Cyrillic vehicle documents (like Russian STS). Advanced OCR eliminates visual homoglyph confusion between Cyrillic and Latin alphabets.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Apple Vision Framework / ML Kit vs. StructOCR VIN API
Why generic on-device text recognition frameworks fail at decoding VINs, and when to switch to a specialized automotive API.
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 VIN OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API using the Cursor AI code editor. Build automotive and fleet tools rapidly.
Add VIN OCR to Your Lovable.dev App in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API into a Lovable.dev app. Build automotive and fleet tools with zero backend required.
OpenALPR vs. StructOCR API for VIN Decoding
Why traditional License Plate Recognition (ALPR) engines are not suitable for scanning Vehicle Identification Numbers (VINs).
Add VIN OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR VIN scanner API into a Replit application. Build automotive and fleet tools using Replit Agent and Secrets.
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.