Proof of Address (PoA) OCR API

The most reliable way to digitize and verify permanent addresses for telecom, banking, and real estate onboarding in India. Built on an edge architecture with 24-hour data retention.

200 free credits = 100 Passport scans, no credit card. Then from $5 for 500 credits, pay as you go. See pricing

Extracting Proof of Address details from an Indian Passport.

The Cost of Manual PoA Verification

Manual verification of Proof of Address documents is slow, error-prone, and creates massive friction during customer onboarding, leading to high drop-off rates. When users upload the back page of an Indian passport as their PoA, human operators often struggle to decipher faint print, complex local formatting, and varied address lengths. For a broader look at modernizing global user onboarding, explore our travel identity verification solutions.

StructOCR: Instant PoA Digitization

Powered by our core Passport OCR engine, you can instantly convert the passport back page into a clean digital address block. Deployed on secure Cloudflare edge nodes, our API is a simple bridge between raw document uploads and your backend logic; images are deleted within 24 hours. By natively supporting Base64 and direct file uploads without relying on restrictive SDKs, we ensure sensitive PoA documents are never exposed on public URLs.

Live Demo: Passport scanner

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

1
Upload
2
Results
↑

Drop files here or click to browse

JPG · PNG · PDF · TIFF  ·  up to 500 files · max 4.5 MB each

No document handy?

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

Core Industry Applications

Utility & Telecom Providers

Verify residential addresses instantly for new connections. We support borderless USDT/Crypto payments for global SaaS operators to bypass financial friction. View our straightforward API pricing.

Insurance Underwriting

Automate the collection of permanent address data required for policy issuance and claims processing without persisting sensitive user images.

Vehicle Registration & Financing

Extract buyer addresses accurately for RTO documentation and cross-border auto loan approvals seamlessly.

Crypto & Neo-Bank KYC

Eliminate manual address entry for compliance agents processing high-volume KYC workflows globally.

Technical Specs

  • Secure Payload Handling: Natively process documents via Base64 or file uploads to bypass public URL generation entirely.
  • Contextual Address Parsing: Deep NLP engine accurately captures the entire unstandardized address block regardless of line breaks.
  • Edge Architecture: Low latency powered by Cloudflare's global edge network.
  • Privacy: 24-hour data retention, then deletion. Images and JSON are kept for at most 24 hours for quality spot-checks, then deleted.

Key Features

  • Comprehensive Block Capture: Reliably pulls the entire residential address string including embedded PIN codes and geographic markers.
  • API-First Architecture: Pure HTTP integration completely eliminates SDK bloat and version conflicts.
  • Format Support: Accepts raw Base64 or Data URIs (JPG, PNG, WebP up to 4.5MB).

Integration & AI Prompts

StructOCR is API-first, eliminating the need for bulky SDKs. Send Base64 encoded PoA documents directly for secure edge processing. For full schema details, see our 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("poa_document.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; images are deleted within 24 hours
    print("Processing Proof of Address...")
    response = requests.post(url, headers=headers, json=payload)
    result = response.json()

    if result.get('success'):
        print("✅ Secure PoA Extraction Complete!\n")
        
        # Core Identity
        core_data = result['data']
        print(f"Applicant: {core_data.get('given_names')} {core_data.get('surname')}")
        
        # Full Address Block from Back Page
        back_page = core_data['country_specific']['last_page']
        print(f"Address:   {back_page.get('address')}")
    else:
        print(f"❌ Extraction Failed: {result.get('error')} - {result.get('message')}")
except Exception as e:
    print(f"Error: {e}")

Standardized JSON Output

Get exactly the structured address components you need for PoA validation, perfectly nested for your 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

Do you support base64 image uploads without an SDK?

Yes, StructOCR is strictly API-first. We highly recommend using base64 encoded strings or direct file uploads via standard HTTP POST requests to avoid exposing sensitive PoA documents via public URLs.

How does the API handle complex, multi-line Indian addresses?

Our models are specifically trained on the layout typography of Indian passports. It captures the entire address block with high fidelity, regardless of erratic line breaks or dense abbreviations.

Can it process old handwritten passports?

Our models are optimized for modern, machine-printed passports. Handwritten documents yield significantly lower accuracy and are not officially supported for automated PoA validation.

Explore More Travel & KYC Solutions

SOLUTION

Remote Hiring Identity OCR API

Automate global remote hiring with our identity OCR API; images are deleted within 24 hours. Extract passport data securely without SDKs. Upload an image to test our free live demo.

Travel & KYC
SOLUTION

REST API for Global Passport MRZ

Extract global passport MRZ data instantly via our fast REST API. No SDK required. Upload an image to test our live demo for free.

Travel & KYC
SOLUTION

Right to Work Passport Verification API

Automate global HR compliance. Extract passport data instantly with our OCR API; images are deleted within 24 hours. No SDK required. Upload an image to test our free live demo.

Travel & KYC
SOLUTION

Passport OCR for Neo-Banks: 24-Hour Retention, SOC 2 Type II

Passport OCR API for neo-bank onboarding: MRZ and VIZ fields as JSON, SOC 2 Type II, and images deleted within 24 hours. No SDK needed. Upload an image to test free.

Travel & KYC
SOLUTION

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.

Travel & KYC
SOLUTION

Crypto KYC Passport API (No SDK)

Passport OCR API for Web3 and Crypto KYC, with 24-hour data retention. Extract global MRZ and VIZ data instantly without SDK bloat. Upload an image to test our free live demo.

Travel & KYC
SOLUTION

DPDP Compliant Indian Passport OCR API

DPDP-friendly OCR API for Indian passports, with 24-hour data retention. Securely extract back-page PII (Address, Parents' Names) for KYC workflows. File, Base64, and URL supported.

Travel & KYC
SOLUTION

GDPR Compliant Passport OCR API

Extract passport data securely with our OCR API; images are deleted within 24 hours. Upload an image to test our free live demo.

Travel & KYC
SOLUTION

India Passport Address Extraction API

Extract highly complex address blocks and PII from Indian passport back pages. OCR API built for global KYC workflows, with 24-hour data retention. Supports Base64, URLs, and direct file uploads.

Travel & KYC
SOLUTION

Indian Passport OCR for KYC

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.

Travel & KYC

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 No Credit Card