Remote Hiring Identity OCR API
Scale your global workforce compliantly. Automate candidate identity verification across 195+ countries with a secure, zero-retention passport OCR API built for HR tech.

The Compliance Nightmare of Remote Onboarding
Scaling a remote team globally means verifying candidate identities across hundreds of different passport formats. Relying on manual data entry is unscalable, while storing candidate passports on traditional cloud storage exposes your HR platform to massive GDPR and DPDP compliance risks. Furthermore, legacy OCR vendors force you to use mobile SDKs that are impossible to integrate into standard web-based HR dashboards. For a broader look at securing cross-border onboarding, explore our travel identity verification solutions.
StructOCR: GDPR-Compliant Edge Parsing
Powered by our core Passport OCR engine, StructOCR delivers a frictionless identity verification pipeline for HR tech. Operating on a strict 'process-and-forget' architecture via secure Cloudflare edge nodes, our API extracts candidate data in milliseconds and instantly purges the images. Because we are strictly API-first (no mobile SDKs required), you can natively stream Base64 documents directly from your Applicant Tracking System (ATS) backend.
Live Demo: Passport 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 HR & Remote Work Applications
Employer of Record (EOR) Platforms
Instantly verify remote talent globally. We natively support USDT/Crypto payments to eliminate fiat friction for international HR SaaS operators. View our straightforward API pricing.
Applicant Tracking Systems (ATS)
Autofill candidate profiles and legal names directly from passport uploads during the application phase without retaining the sensitive images.
Freelance & Gig Marketplaces
Automate identity verification for cross-border contractors at scale before they withdraw funds or take on their first project.
Background Verification (BGV)
Extract deterministic, ISO 8601 formatted demographic data to initiate automated global background checks seamlessly.
Technical Specs
- Zero Data Retention: Architected for global HR compliance. Candidate passport images and JSON outputs are immediately purged from RAM post-processing.
- API-First Architecture: 100% RESTful HTTP integration ensures perfect compatibility with web-based ATS platforms without SDK bloat.
- Strict Normalization: Forces all dates (`date_of_birth`, `date_of_expiry`) into deterministic ISO 8601 (`YYYY-MM-DD`) formatting to prevent backend calculation errors.
- Edge Processing: Sub-1.2s latency globally, powered by Cloudflare's distributed edge network.
Key Features
- Universal Nationality Parsing: Accurately extracts and standardizes the 3-letter ISO country code to instantly verify hiring eligibility regions.
- MRZ + VIZ Dual Engine: Automatically extracts the Machine Readable Zone and intelligently falls back to the Visual Inspection Zone for worn or low-quality webcam uploads.
- Base64 & File Native: Stream candidate data securely without ever exposing sensitive PII to intermediary AWS S3 URLs.
Integration & AI Prompts
Integrate directly into your HR backend using standard HTTP requests. Avoid exposing candidate PII by passing Base64 natively. For complete schema details, consult our Passport OCR Developer Documentation.
import requests
import base64
# 📚 Developer Docs: https://structocr.com/developers/passport-ocr
# Note: StructOCR is API-first. Send Base64 natively from your
# ATS or HR portal backend to maintain strict GDPR compliance.
with open("remote_candidate_passport.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/passport"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
try:
# Processed securely in RAM at the edge and instantly destroyed
print("Verifying Remote Candidate Identity...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
print("✅ Identity Data Extracted Safely!\n")
core = result['data']
print(f"Legal Name: {core.get('given_names')} {core.get('surname')}")
print(f"Nationality: {core.get('nationality')} ({core.get('country_code')})")
print(f"DOB: {core.get('date_of_birth')} (ISO 8601)")
print(f"Doc Valid: {core.get('date_of_expiry')} (ISO 8601)")
else:
print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
print(f"Error: {e}")Standardized JSON Output
Receive deterministic, cleanly structured compliance data ready for immediate insertion into your employee records database.
{
"success": true,
"data": {
"type": "passport",
"country_code": "IND",
"nationality": "INDIAN",
"passport_number": "Z1234567",
"surname": "SHARMA",
"given_names": "RAHUL",
"sex": "M",
"date_of_birth": "1988-07-22",
"place_of_birth": "NEW DELHI",
"date_of_issue": "2021-04-10",
"date_of_expiry": "2031-04-09",
"issuing_authority": "MINISTRY OF EXTERNAL AFFAIRS",
"country_specific": {
"last_page": {
"father_name": "AMIT SHARMA",
"mother_name": "SITA SHARMA",
"spouse_name": "PRIYA SHARMA",
"address": "FLAT 4B, GREENWOOD APARTMENTS, NEW DELHI PIN: 110001, INDIA",
"old_passport_number": "P7654321",
"old_passport_issue_date": "2010-01-05",
"old_passport_issue_place": "DELHI",
"file_no": "DL1076071103622",
"ecr_status": null
}
}
}
}Frequently Asked Questions
How does StructOCR ensure GDPR compliance for remote hiring?
We operate on a strict 'process-and-forget' architecture. When your ATS sends a Base64 image, it is processed entirely in-memory at our Cloudflare edge nodes. We never write the candidate's image or extracted PII to any physical disk, database, or logs, ensuring absolute compliance with global privacy laws.
Why is an API-first approach better than an SDK for HR software?
Most modern HR platforms and ATS systems are web-based dashboards where deploying native iOS/Android SDKs is impossible. A pure REST API allows your engineering team to integrate passport verification seamlessly into any web app, backend server, or custom workflow simply by sending HTTP POST requests.
Can the API extract data from low-quality webcam captures?
Yes. While we prioritize the highly structured MRZ, our engine includes a secondary VIZ (Visual Inspection Zone) parsing module that can extract information from the complex visual layouts of passports across 195+ countries, effectively handling glare, shadows, and low-resolution webcam captures typical in remote onboarding.
Explore More Travel & KYC Solutions
REST API for Global Passport MRZ
Extract global passport MRZ data instantly via our fast, zero-retention REST API. No SDK required. Upload an image to test our live demo for free.
Right-to-Work Passport Verification API
Automate global HR compliance. Extract passport data instantly with our zero-retention OCR API. No SDK required. Upload an image to test our free live demo.
Zero-Retention Passport OCR for Neo-Banks
Secure your digital onboarding with our zero-retention passport OCR API for neo-banks. Process global KYC data in-memory. Upload an image to test free.
Automated Hotel Check-In Passport Scanner API
Streamline hotel check-ins with our automated passport scanner API. Extract global guest data instantly without SDKs. Upload an image to test our free live demo.
Crypto KYC Passport API (No SDK Required)
Zero-retention Passport OCR API for Web3 and Crypto KYC. Extract global MRZ and VIZ data instantly without SDK bloat. Upload an image to test our free live demo.
DPDP Compliant Indian Passport OCR
DPDP-compliant, zero data retention OCR API for Indian passports. Securely extract back-page PII (Address, Parents' Names) for KYC workflows. File, Base64, and URL supported.
GDPR-Compliant Passport Data Extraction
Extract passport data securely with our GDPR-compliant, zero-retention OCR API. No data stored or logged. Upload an image to test our free live demo.
India Passport Address Extraction API
Extract highly complex address blocks and PII from Indian passport back pages. Zero-retention OCR API built for global KYC workflows. Supports Base64, URLs, and direct file uploads.
Indian Passport OCR for KYC & AML
Automate digital KYC. Extract MRZ, family, and address details from Indian Passports for RBI compliance. Upload a test image for a free live API demo.
Indian Passport Family Details OCR
Extract Father, Mother, and Spouse names from the back page of Indian passports for background verification. Zero-retention API-first integration.
Technical Comparisons & Integrations
Explore platform integrations and competitive analysis
Add Passport OCR using Cursor in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API using the Cursor AI code editor. Build travel, hospitality, and global KYC flows rapidly.
Extracting ECR Status & File Numbers: Generic OCR vs. StructOCR Indian Passport API
Learn why generic text extractors fail to capture critical Indian KYC fields like ECR status and File Numbers, and how a specialized API structures this data automatically.
Heavy KYC SDKs vs. StructOCR Passport API for Mobile Apps
Discover why modern app developers are abandoning bulky on-device OCR SDKs in favor of lightweight, edge-deployed Passport APIs.
Add Passport OCR to Your Lovable.dev App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a Lovable.dev app through a secure server-side function for travel and KYC flows.
Add Passport OCR to Your Replit App in 5 Minutes
Step-by-step guide to integrating the StructOCR Passport scanner API into a Replit application. Build travel, hospitality, and global KYC flows using Replit Agent and Secrets.
Tesseract & PassportEye vs. StructOCR Passport API
A technical evaluation for developers deciding between open-source MRZ scanners and a dedicated cloud-based Passport OCR API.
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.