structocr
v1.6.0
Published
The official Node.js SDK for StructOCR API - Extract data from Passports, ID Cards, Driver Licenses, Invoices, Receipts, VINs, HINs, License plates, and Shipping Containers.
Maintainers
Readme
🚀 What's New in v1.6.0
- License Plate OCR: We've launched a specialized ALPR engine optimized for SEA plates. Accurately extract native scripts (Thai, Khmer, etc.), plate numbers, colors, and vehicle types without forcing foreign formatting rules.
- Hybrid VIZ + MRZ AI for National IDs: Automatically cross-validate unstructured Visual Zone (VIZ) data against cryptographic Machine Readable Zone (MRZ) checksums (TD1/TD2) for zero hallucination.
- Check out the Quick Start below to see how to use them!
The official Node.js client for StructOCR.
StructOCR allows developers to extract structured data from identity documents and industry codes with 99% accuracy. Integrate Passport OCR, National ID OCR, Driver License OCR, Invoice OCR, Receipt OCR, VIN OCR, HIN OCR, Container OCR, and License Plate OCR into your Node.js or Electron applications.
Installation
Install via npm:
npm install structocr
Quick Start
1. Initialize the Client
const StructOCR = require('structocr');
// Initialize with your API Key
const client = new StructOCR('sk_live_xxxxxxxx');
2. Scan a Passport (Passport OCR)
Using async/await:
(async () => {
try {
// The SDK supports local file paths, Base64 strings, or image URLs
const result = await client.scanPassport('./passport_sample.jpg');
console.log('Document Number:', result.data.document_number);
console.log('Full Name:', result.data.name);
} catch (error) {
console.error('OCR Failed:', error.message);
}
})();
3. Scan Other Document Types
// Scan License Plate (New in v1.6.0)
const plateData = await client.scanLicensePlate('./license_plate.jpg');
// Scan National ID
const idData = await client.scanNationalId('./id_card.png');
// Scan Driver License
const licenseData = await client.scanDriverLicense('./license.jpg');
// Scan Invoice
const invoiceData = await client.scanInvoice('./invoice.jpg');
// Scan Receipt
const receiptData = await client.scanReceipt('./receipt.jpg');
// Scan VIN
const vinData = await client.scanVin('./vin.jpg');
// Scan HIN
const hinData = await client.scanHin('./hin.jpg');
// Scan Container
const containerData = await client.scanContainer('./container.jpg');
Features
- Flexible Inputs: Seamlessly pass local file uploads, Base64-encoded strings, or image URLs.
- License Plate OCR: Extract SEA-optimized plate numbers, regional texts, plate colors, and vehicle types.
- Passport Parsing: Extract MRZ, Name, DOB, Expiry Date.
- National ID OCR: Extract regional specific fields (CNP, CPF, NIN) and raw ICAO 9303 MRZ lines with Hybrid Validation.
- Driver License: Extract vehicle class and license numbers.
- Invoice: Extract invoice number, currency, merchant, customer.
- Receipt: Extract merchant details, timestamps, and total amounts from thermal receipts.
- VIN OCR: Extract Vehicle Identification Number from car chassis or windshield.
- HIN OCR: Extract Hull Identification Numbers accurately from marine vessels.
- Container OCR: Extract shipping container numbers accurately from images.
Documentation
For full API documentation, please visit StructOCR Docs.
License
MIT License.
