GDPR-Compliant Passport Data Extraction
Process highly sensitive passport data with absolute legal confidence. Our zero-retention API extracts global MRZ and VIZ data instantly without ever storing your users' PII.

The Severe Risks of Legacy OCR Storage
For companies operating in or serving the European Union, handling passport images is a massive regulatory liability. Under the General Data Protection Regulation (GDPR), transmitting Personally Identifiable Information (PII) through legacy OCR vendors that store images, write logs to disks, or use customer data to train their AI models exposes businesses to devastating fines. For a comprehensive look at securing cross-border onboarding architectures, explore our travel identity verification solutions.
StructOCR: The Process-and-Forget Standard
Designed for strict privacy compliance, our core Passport OCR engine operates on a mandatory zero-data-retention policy. Deployed entirely on Cloudflare's secure global edge network, your users' Base64 document streams are processed entirely in RAM. The moment the JSON extraction is completed and dispatched back to your server, the data is instantly and permanently destroyed. By utilizing a pure REST API instead of black-box mobile SDKs, you maintain total architectural control over the data flow.
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 Compliance Applications
European FinTech & Neo-Banks
Execute KYC workflows across EU jurisdictions without expanding your compliance attack surface. We natively support USDT payments for borderless SaaS operations. View our straightforward API pricing.
Global HR & EOR Platforms
Verify Right-to-Work documentation for remote hires in Europe securely, ensuring applicant data is never stored on third-party public clouds.
Legal & Immigration Tech
Process sensitive client immigration portfolios with an API that inherently respects attorney-client data boundaries.
Healthcare & Patient Onboarding
Extract patient identity data securely, maintaining compliance with both GDPR and HIPAA standards through localized edge processing.
Technical Specs
- Zero Data Retention: 100% process-and-forget. Images and JSON outputs are purged from RAM immediately after the HTTP response is sent.
- No Model Training: We explicitly guarantee in our Terms of Service that customer data is never utilized to train or fine-tune our internal OCR models.
- Base64 Native: Stream candidate data securely via HTTP POST without ever generating public AWS S3 URLs for sensitive documents.
- Edge Processing: Sub-1.2s latency globally, powered by Cloudflare's distributed edge network, ensuring data is processed close to the user.
Key Features
- Universal Coverage: Seamlessly extracts MRZ and visual (VIZ) data from all European Union passports and ID formats.
- Strict Normalization: Forces all dates (`date_of_birth`, `date_of_expiry`) into deterministic ISO 8601 formatting to prevent backend calculation errors.
- API-First Architecture: 100% RESTful HTTP integration ensures perfect compatibility with web-based platforms without the black-box risks of SDKs.
Integration & AI Prompts
Never expose PII on public storage buckets. Pass Base64 data directly to our API from your backend. 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
# backend to ensure PII never leaves your controlled environment.
with open("eu_citizen_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("Processing Passport securely (Zero-Retention)...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
print("✅ GDPR-Compliant Extraction Complete!\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"Doc No: {core.get('passport_number')}")
print(f"DOB: {core.get('date_of_birth')} (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 integration into your secure 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?
We operate on a strict 'process-and-forget' architecture. When your server sends a Base64 image, it is processed entirely in-memory at our Cloudflare edge nodes. We never write the image or extracted PII to any physical disk, log file, or database. Additionally, we never use customer data to train our AI models.
Why is a REST API more secure than an OCR SDK for privacy compliance?
Mobile SDKs are notorious 'black boxes' that often silently collect telemetry data, device fingerprints, or cache images locally on the user's phone, which can violate GDPR. A pure REST API gives your engineering team absolute control over the data pipeline—you send the payload, we process it, and return the JSON over secure TLS.
Do we need to sign a Data Processing Agreement (DPA)?
Yes. As a B2B infrastructure provider processing data on behalf of EU citizens, we provide standardized Data Processing Agreements (DPAs) for our enterprise clients to ensure full legal compliance with GDPR requirements.
Explore More Travel & KYC Solutions
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.
ISO 8601 Passport Date Parsing API
Stop writing complex regex. Automatically extract and normalize passport dates to strict ISO 8601 (YYYY-MM-DD) format. Upload an image to test our free live demo.
Passport VIZ Extraction API for Airlines
Automate airline check-ins by extracting both MRZ and VIZ passport data instantly via a pure REST API. Upload an image to test our free live demo today.
Proof of Address (PoA) OCR API
Automate PoA verification. Extract and validate permanent residential addresses from Indian passport back pages. Zero-retention API-first integration.
Remote Hiring Identity OCR API
Automate global remote hiring with our zero-retention identity OCR API. Extract passport data securely without SDKs. Upload an image to test our free live demo.
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.
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.