The Best Node.js API for Global License Plate OCR (Free Image Testing)

Deploy automated license plate recognition (ALPR) built for global scale. Upload a vehicle image for a free test today and extract native scripts and multi-plate layouts seamlessly using Node.js and our official SDK.

Global License Plate OCR extraction process diagram
StructOCR transforms raw vehicle images into validated JSON with native script retention.

The Problem with Global ALPR Parsers in Node.js

Enterprise Node.js applications often struggle with legacy ALPR libraries that are optimized only for standard Latin alphabets. These traditional tools fail when encountering complex layouts from the Middle East or Asia, and struggle to accurately extract native scripts (Arabic, Cyrillic, Thai, Chinese). Furthermore, generic models often lack the ability to process multi-plate setups, like tractor-trailer configurations, or identify secondary data such as plate colors and vehicle types.

The StructOCR Solution

StructOCR allows your Node.js backend to offload complex vehicle image processing to our specialized deep learning models. Our API transcends generic models by accurately extracting native scripts worldwide exactly as printed. By returning validated JSON directly to your Node.js application via our official npm SDK, you can easily integrate multi-dimensional attributes—including plate numbers, vehicle types, and country inferences—into your global logistics and tolling workflows. Explore our flexible pricing to scale your production environment seamlessly.

Common Use Cases

  • Toll Collection & Parking: Automate entry and exit gates globally by capturing primary plate numbers and vehicle classifications instantly.
  • Global Logistics & Border Control: Track multi-plate configurations (e.g., stacked trailer and prime mover plates) simultaneously across international borders.
  • Law Enforcement: Cross-reference vehicle types and plate colors to detect unregistered or commercial vehicles dynamically.

Live Demo: License Plate OCR Scanner

No registration required. Upload a file to test the extraction.

1
Upload
2
Results

Drop files here or click to browse

JPG · PNG · WebP  ·  up to 500 files · max 4.5 MB each

No files selected
Need more testing? Create a free account to get 200 free credits (equals 200 License Plate scans).

Implementation: SDK Request

Complete, runnable Node.js code to extract license plate data using the official structocr npm package. For other language examples and deep parameter explanations, visit the full License Plate OCR API Reference.

Prerequisite: Node.js 14+ and the structocr SDK (npm install structocr)

JAVASCRIPT EXAMPLE
// 💰 Save 30%+ vs competitors. Get 200 free credits instantly:
// 👉 https://structocr.com/register

const StructOCR = require('structocr');

async function scanVehiclePlate(imagePath) {
  // Initialize the SDK with your API Key
  const client = new StructOCR('YOUR_API_KEY');

  try {
    console.log(`Scanning vehicle image: ${imagePath}...`);
    
    // The SDK handles file reading, Base64 encoding, and API communication
    const result = await client.scanLicensePlate(imagePath);

    if (result.success) {
      console.log('✅ Extraction Successful!\n');
      
      const { data } = result;
      console.log('Plates Detected:', data.plates.length);
      
      const countryGuess = data.country_guess ? data.country_guess : 'N/A';
      console.log('Country Guess:', countryGuess);
      console.log('Confidence:', data.confidence);
      
      console.log('\n--- Raw Data ---');
      console.log(JSON.stringify(data, null, 2));
    } else {
      console.error('❌ Extraction Failed:', result.error || result.message);
    }
  } catch (error) {
    console.error('SDK Error:', error.message);
    if (error.cause) {
      console.error('Underlying Error:', error.cause);
    }
  }
}

// Example usage:
scanVehiclePlate('path/to/your/vehicle_image.jpg');

Technical Specs

  • Input format: Handled natively by the SDK (File Path or Buffer)
  • File Constraints: Max 4.5MB (decoded), compress to < 300KB for best speed
  • Supported Formats: JPG, PNG, WebP
  • Language Support: Global scripts (Arabic, Chinese, Thai, Cyrillic, etc.)
  • Output: JSON (Multi-dimensional attributes)

Key Features

  • Global Coverage: Optimized for worldwide plates spanning the Middle East, Asia, Europe, and the Americas.
  • Native Script Retention: Extracts local scripts exactly as printed without translation or transliteration.
  • Multi-Plate Parsing: Natively handles extracting multiple plates from a single vehicle (e.g., stacked trailer plates).

Sample JSON Response

The API returns a clean JSON array with details on all detected plates, preserving native characters and strict enums.

{
  "success": true,
  "data": {
    "plates": [
      {
        "plate_number": "TRE 1631M",
        "plate_color": "yellow",
        "plate_type": "trailer"
      },
      {
        "plate_number": "XB 98X",
        "plate_color": "yellow",
        "plate_type": "commercial"
      }
    ],
    "region_text": null,
    "country_guess": "Singapore",
    "confidence": "High"
  }
}

Frequently Asked Questions

How should I encode the image?

When using the Node.js SDK, simply pass the local file path. The SDK automatically handles file buffering and Base64 encoding for you.

What is the maximum file size?

The maximum decoded payload restriction is 4.5MB. Exceeding this will trigger a 413 FILE_TOO_LARGE error.

Can it read non-English characters?

Yes. Our engine natively retains and extracts local scripts like Arabic, Thai, and Cyrillic exactly as printed.

You May Also Like

Related tutorials, platform guides, and comparisons

Tutorial

PHP License Plate OCR API

PHP License Plate OCR tutorial. Upload an image for a free test! Accurately extract global license plates, native scripts, colors, and vehicle types.

PHP · License Plate
Tutorial

Python License Plate OCR API

Python License Plate OCR SDK tutorial. Upload an image for a free test! Accurately extract global license plates, native scripts, colors, and vehicle types.

Python · License Plate
Tutorial

C# License Plate OCR API

C# License Plate OCR tutorial. Upload an image for a free test! Accurately extract global license plates, native scripts, colors, and vehicle types.

C# · License Plate
Tutorial

Java License Plate OCR API

Java License Plate OCR tutorial. Upload an image for a free test! Accurately extract global license plates, native scripts, colors, and vehicle types.

Java · License Plate
Tutorial

Go License Plate OCR API

Golang License Plate OCR tutorial. Upload an image for a free test! Accurately extract global license plates, native scripts, colors, and vehicle types.

Go · License Plate
Tutorial

Node.js National ID OCR API

Achieve >99% accuracy with our Node.js SDK for National ID OCR. Upload an image for a free test! Get clean, validated JSON output from any ID card image. Integrate KYC in minutes.

Node.js · National ID
Country Tutorial

Netherlands Passport OCR with Node.js SDK

Use the official StructOCR Node.js SDK with TypeScript and Express to extract structured MRZ and VIZ data from Netherlands passports.

Node.js · Passport
Country Tutorial

Netherlands Passport OCR with Python SDK

Use the official StructOCR Python SDK and FastAPI to extract structured MRZ and VIZ data from Netherlands passports with a server-side integration.

Python · Passport
Country Tutorial

Netherlands Identiteitskaart OCR Python SDK

Python Tutorial: Automate KYC in Netherlands. Extract data from Identiteitskaart using StructOCR Python SDK. Supports native text and MRZ extraction.

Python · identiteitskaart
Country Tutorial

Morocco Passport OCR with Python SDK

Use the official StructOCR Python SDK and FastAPI to extract structured MRZ and VIZ data from Morocco passports with a server-side integration.

Python · Passport

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 99.9% Uptime