Vietnam ALPR & Motorcycle Plate Recognition API
Standard ALPR engines fail on square, two-line motorcycle plates. Discover a global OCR API built to handle high-density Vietnamese traffic, severe nighttime glare, and color-coded vehicle types flawlessly.

The Challenge of Vietnam ALPR & Two-Line Plates
For system integrators operating in Southeast Asia, implementing robust vietnam alpr presents unique physical and technical hurdles. The sheer volume of traffic requires flawless motorcycle plate recognition. Unlike standard wide plates, Vietnamese motorcycle plates are typically square, two-line layouts that cause standard western-trained models to misread the character sequencing. Furthermore, these plates often suffer from severe nighttime retro-reflective glare. Attempting to train self-hosted models to distinguish these elements often results in scrambled strings or complete recognition failures. Before spending months collecting local datasets, you can test your regional captures against our API for free to experience true dual-line extraction.
A Global Engine for High-Density Traffic
The StructOCR License Plate API is engineered specifically to transcend the limitations of single-line Latin models. Our backend natively understands the square two-line layout, perfectly stitching the top and bottom rows into a logical alphanumeric string while utilizing advanced filters to pierce through severe IR washout. Deployed on Cloudflare's global edge network, the API ensures that whether your camera is in Ho Chi Minh City, Hanoi, or a border checkpoint, the image is processed by the nearest geographic node for ultra-low latency, crucial for fast-moving motorcycle streams.
Live Demo: License Plate OCR 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
Empowering Southeast Asian System Integrators
High-Density Motorcycle Tolling
Process complex, overlapping motorcycle streams at automated parking gates without lagging your local NVR. The API handles high-concurrency requests seamlessly.
Commercial vs. Private Classification
Because our API natively returns `plate_type` and `plate_color`, it perfectly matches local SE Asia business logic—easily distinguishing private white plates from commercial yellow plates for ride-hailing and fleet validation.
Rapid System Integration
Skip the legacy enterprise manuals. Integrate in minutes using standard HTTP requests or streamline your backend using our official Python SDK wrapper.
Frictionless Global Payments
Scaling your SaaS internationally? View flexible pricing that eliminates cross-border financial friction for Asian clients by natively supporting Paddle, USDT, and USDC payment gateways.
Technical Specs
- Two-Line Layout Parsing: Automatically detects and stitches stacked characters from square plates into a single, reliable string, bypassing the line-break errors common in standard OCR models.
- Glare Reduction Algorithms: Built-in AI filters mathematically infer characters even when nighttime retro-reflective glare or direct headlight beams obscure the motorcycle plate.
- Input Versatility: Fully supports raw Base64 strings up to 4.5MB, direct file uploads, and public URLs—giving you complete control over how you handle cross-border sensitive image streams.
- Language Agnostic Integration: We offer pure REST APIs, eliminating dependency conflicts and allowing seamless integration into any tech stack from Python to Go.
Key Features
- Color & Type Intelligence: Automatically extracts `plate_color` (e.g., yellow for commercial transport) and identifies `plate_type` (e.g., motorcycle vs private car), instantly delivering the exact context your software needs for pricing and routing.
- Zero Maintenance: No model weights to update as vehicle volumes and plate designs shift. We handle the continuous improvement of the OCR accuracy server-side.
- Edge Optimization: Deployed on Cloudflare, ensuring that API requests originating from Southeast Asia are processed by local geographic edge nodes for maximum speed.
Extracting Two-Line Plates: Just 15 Lines of Code
Call the endpoint directly using Python's standard `requests` library. The engine natively supports flexible inputs: you can utilize standard image URLs, direct file uploads, or raw Base64-encoded strings. Check the API documentation for full payload parameters and schema details.
import requests
import base64
# Prepare Base64 Image to extract License Plate data
with open("hcmc_motorcycle_capture.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/license-plate"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
try:
print("Analyzing Southeast Asian vehicle plates...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
data = result['data']
plates = data.get('plates', [])
print(f"✅ Successfully detected {len(plates)} plate(s)!")
for idx, plate in enumerate(plates):
print(f"[{idx+1}] Number: {plate.get('plate_number')} (Normalized: {plate.get('plate_number_normalized')}) | Type: {plate.get('plate_type')} | Color: {plate.get('plate_color')}")
print(f"Country Guess: {data.get('country_guess')} | Confidence: {data.get('confidence_score')}")
else:
print(f"❌ Extraction Failed: {result.get('error') or result.get('message')}")
except Exception as e:
print(f"An error occurred: {e}")Standardized JSON Output (Vietnam Example)
A single API call returns a structured response that gracefully handles complex square motorcycle layouts, delivering a clean, consolidated plate number and crucial metadata.
{
"success": true,
"data": {
"plates": [
{
"plate_number": "59A1 12345",
"plate_number_normalized": "59A112345",
"plate_color": "white",
"plate_type": "motorcycle"
}
],
"region_text": null,
"country_guess": "Vietnam",
"confidence_score": 0.99
}
}Frequently Asked Questions
How does your pricing compare to standard OpenALPR pricing?
While traditional OpenALPR pricing often involves high monthly minimums or per-camera software licenses for local agents, we operate on a strict pay-as-you-go model. You only pay for the API requests you actually make, which is drastically cheaper for variable traffic.
I am an international developer. Can I pay with cryptocurrency?
Yes. We understand that global developers face high cross-border credit card friction. To solve this, we accept USDT and USDC payments alongside traditional fiat gateways via Paddle, allowing you to fund your API credits instantly.
Does the API support international license plates and non-Latin scripts?
Yes. Our global ALPR engine is trained to recognize a wide variety of international plate formats and natively extracts non-Latin characters, including Arabic, Thai, Cyrillic, and other Asian scripts. Because our infrastructure is deployed on a global edge network, you will experience ultra-low latency processing regardless of where your cameras or servers are located in the world.
Explore More License-plate Solutions
Arabic License Plate OCR API: Overcoming Non-Latin Character Challenges
Struggling with an OpenALPR Arabic setup? Our global OCR number plate recognition API perfectly extracts native Middle Eastern scripts, dual-layouts, and numerals.
Adding License Plate OCR to Blue Iris & ZoneMinder (2026 Guide)
Upgrade your VMS with Blue Iris ALPR or ZoneMinder ALPR. Learn how to send camera ALPR motion frames to our Cloud API for instant, low-cost license plate recognition.
Automated License Plate Readers (ALPR) for Law Enforcement
Discover how license plate readers for law enforcement power patrol cars and checkpoints. Integrate our high-speed ALPR API into your security systems today.
Legacy ALPR Systems vs. Modern API Solutions
Comparing ALPR system costs? Ditch expensive hardware bundles from Genetec, 3M, and Leonardo Elsag. Discover our hardware-agnostic ALPR cloud API for modern SaaS.
OpenALPR Pricing Guide & The Best Scalable Alternatives
Navigating OpenALPR pricing? Compare Rekor OpenALPR costs and discover our scalable, cost-effective cloud API alternative. Supports crypto and global payments.
How to Build a Python License Plate Recognition System: OpenCV vs. Cloud API
Building an OpenCV number plate recognition system? Compare traditional Python models with our ALPR Cloud API. Upload your car plate images for a free OCR test.
Raspberry Pi ALPR: Heavy Docker Images vs. Lightweight API Calls
Struggling with slow ALPR Docker images on your Raspberry Pi? Switch to our lightweight cloud OCR API for instant recognition. Free image testing available.
Stationary vs. Mobile ALPR Cameras: Which OCR Tech Do You Need?
Comparing mobile ALPR cameras and stationary license plate readers? Discover how our hardware-agnostic OCR API powers any ALPR camera system with ease.
Thai License Plate OCR API: Overcoming Non-Latin Character Challenges
Struggling with an OpenALPR Thai setup? Our global OCR number plate recognition API perfectly extracts native Thai scripts, province names, and color codes.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Add Receipt OCR to Your Lovable.dev App in 5 Minutes
Step-by-step guide to integrating the StructOCR receipt API into a Lovable.dev app. No backend required — just paste a prompt and add your API key.
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.
Manual TOS Entry vs. Container OCR Automation API
Analyzing the ROI and operational efficiency of replacing manual gate checkers with an automated Container OCR API in logistics yards.
OpenALPR vs. StructOCR API for VIN Decoding
Why traditional License Plate Recognition (ALPR) engines are not suitable for scanning Vehicle Identification Numbers (VINs).
Add Container OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR shipping container API into a Replit application. Build logistics and yard management tools using Replit Agent and Secrets.
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.
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.