India Passport Address Extraction API
Automate data entry by perfectly extracting complex, unstandardized address blocks and family details from Indian passport back pages. Built on a zero-retention edge architecture.

The Challenge of Unstandardized Address Formats
Indian passport bottom pages contain critical data for Proof of Address (PoA), but the unstandardized formatting, erratic line breaks, and dense abbreviations make traditional OCR engines fail. Furthermore, handling this sensitive Personally Identifiable Information (PII) presents massive regulatory risks under India's DPDP Act if data is persisted on vendor servers. For a broader look at comprehensive compliance strategies, explore our travel identity verification solutions.
StructOCR: Context-Aware Edge Parsing
Our specialized NLP engine doesn't just read raw text; it is trained specifically on the typography and layout quirks of Indian passports. Powered by our core Passport OCR engine, it precisely captures the entire address block, PIN codes, and family names regardless of line breaks. More importantly, StructOCR runs on a strict "process-and-forget" architecture—processing your Base64 inputs entirely in-memory at the edge without ever saving your users' images to a physical disk.
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
Ready to use this in production? Get 20 free API calls — no credit card needed.
Get 20 Free API Calls →Core Industry Applications
Global Fintech & Neo-Banking
Scale cross-border user onboarding securely. We support seamless API integration and accept Crypto/USDT payments to bypass traditional financial friction for global SaaS teams. View our transparent pricing.
Telecom SIM Activation
Instantly verify proof of address (PoA) for new SIM card issuances directly from uploaded passport scans, eliminating manual typing errors.
E-Commerce Logistics
Capture the exact permanent address from the passport back page during seller KYC, ensuring accurate geographic routing and compliance.
Real Estate & Leasing KYC
Seamlessly extract tenant or buyer background details, including Father's Name and complete residential address, into your CRM instantly.
Technical Specs
- Zero Data Retention: Fully compliant with DPDP; images and JSON are purged instantly from RAM after edge processing.
- Input Versatility: Natively supports direct file uploads and Base64 strings, completely eliminating the need for public image URLs.
- API-First Architecture: No heavy SDK wrappers required. Implement using pure HTTP requests in any language.
- Cloudflare Edge Routing: Optimized inference models ensure rapid processing times under 1.2s.
Key Features
- Full Address Block Capture: Accurately extracts the entire unstandardized address string, preserving the embedded PIN code and geographic markers.
- Family Details Validation: Captures Father's Name, Mother's Name, and Spouse's Name accurately from dense back-page layouts.
- Format Support: Accepts raw Base64 or Data URIs (JPG, PNG, WebP up to 4.5MB).
Integration & AI Prompts
StructOCR is intentionally API-first, meaning no bulky SDKs to maintain. Call the endpoint directly via Base64 to keep sensitive data off public networks. For detailed integration architecture, consult our official Passport OCR Developer Documentation.
import requests
import base64
# 📚 Developer Docs: https://structocr.com/developers/passport-ocr
# Note: StructOCR is strictly API-first. It natively supports File Uploads,
# Base64-encoded strings, and direct Image URLs without requiring an SDK.
with open("indian_passport_back.jpg", "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8')
url = "https://api.structocr.com/v1/passport/india/back-page"
headers = {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"img": base64_image
}
try:
# Processed at the edge and instantly purged from memory (DPDP Compliant)
print("Extracting Indian Passport Data...")
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get('success'):
print("✅ Secure Extraction Complete!\n")
# Extract Core Information
core_data = result['data']
print(f"Name: {core_data.get('given_names')} {core_data.get('surname')}")
print(f"Passport No: {core_data.get('passport_number')}")
# Extract India-Specific Back Page Data (Address & Family)
back_page = core_data['country_specific']['last_page']
print(f"Address: {back_page.get('address')}")
print(f"Father Name: {back_page.get('father_name')}")
print(f"File No: {back_page.get('file_no')}")
else:
print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
print(f"Error: {e}")Standardized JSON Output
Securely receive the structured payload containing both core identity data and deep back-page parameters.
{
"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
Do you provide an SDK for mobile integration?
StructOCR is intentionally designed as an API-first platform rather than providing proprietary SDKs. This allows you to use your preferred language wrappers and eliminates app size bloat, while natively supporting file uploads and Base64 directly from your backend.
Can the API handle blurry or skewed back page images?
Yes. Our pre-processing pipeline includes automatic deskewing and contrast enhancement to handle the low-quality smartphone captures typical in real-world field operations.
Do I need to host the image and send a URL?
No. For maximum privacy and DPDP compliance, we strongly recommend passing the image as a Base64 encoded string or via direct multipart file upload. This keeps sensitive address data completely off public cloud storage buckets.
Explore More Travel & KYC Solutions
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.
Precise Data Extraction and Seamless
Integration with AI-powered OCR API.
Empower your solutions with automated data extraction by
integrating best-in class StructOCR via API seamlessly.
No credit card required • Full API access included