Crypto KYC Passport API (No SDK Required)

Accelerate Web3 user onboarding globally. Extract passport MRZ and visual data instantly via a pure REST API—zero SDK app bloat, zero data retention.

Extracting global passport data for Web3 Crypto KYC using a pure REST API without an SDK.

The Nightmare of Heavy KYC SDKs

For Web3 companies, integrating traditional KYC solutions often means wrestling with bulky, proprietary SDKs. These SDKs inflate mobile app sizes, cause endless version conflicts in cross-platform frameworks like React Native or Flutter, and introduce severe data privacy concerns by routing user images through black-box servers. For a broader look at modern, frictionless onboarding strategies, explore our travel identity verification solutions.

StructOCR: The API-First Alternative

We completely eliminated the SDK. Powered by our core Passport OCR engine, StructOCR delivers a pure, lightweight REST API. By natively supporting Base64 strings and direct file uploads, your developers maintain 100% control over the UI and data flow. Hosted on Cloudflare's ultra-fast edge network, we process your users' sensitive KYC images in-memory and instantly purge them, ensuring military-grade privacy for the decentralized web.

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 · WebP  ·  up to 500 files · max 4.5 MB each

No files selected

Ready to use this in production? Get 20 free API calls — no credit card needed.

Get 20 Free API Calls →

Core Web3 Applications

Global Crypto Exchanges (CEX)

Onboard users from 195+ countries in milliseconds. We are built for global SaaS operators and natively accept USDT/USDC payments to bypass traditional fiat friction. View our transparent API pricing.

DeFi Wallets & DApps

Implement seamless identity verification directly within your React Native or Flutter apps using standard HTTP fetch requests—no native code linking required.

Token Sales & Launchpads

Handle massive, unpredictable spikes in traffic during ICOs or IDOs with our highly scalable Cloudflare edge architecture.

NFT Marketplaces

Verify creators and high-volume traders instantly to prevent fraud and maintain platform integrity without disrupting the UX.

Technical Specs

  • API-First Architecture: 100% RESTful integration. Eliminates SDK version conflicts in modern JS frameworks.
  • Base64 Native: Stream image data directly from client to server without exposing PII on public cloud storage buckets.
  • Edge Processing: Sub-1.2s latency globally, powered by Cloudflare's distributed edge network.
  • Strict Normalization: All dates are returned in reliable ISO 8601 (`YYYY-MM-DD`) format for deterministic backend validation.

Key Features

  • MRZ + VIZ Dual Engine: Automatically extracts the Machine Readable Zone and falls back to the Visual Inspection Zone for damaged documents.
  • 195+ Countries Supported: Seamlessly handles non-standard layouts and complex background guilloche patterns globally.
  • Zero Data Retention: Process-and-forget architecture ensures compliance with GDPR and decentralized privacy ethos.

Integration & AI Prompts

Skip the SDK installation. Call the API directly using raw files or Base64 strings. 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 strictly API-first. Send Base64 directly 
# from your Node.js backend or Cloudflare Worker—no SDK required.

with open("user_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 at the edge and instantly purged
    print("Authenticating Web3 User...")
    response = requests.post(url, headers=headers, json=payload)
    result = response.json()

    if result.get('success'):
        print("✅ KYC Extraction Complete!\n")
        
        # Extract ISO 8601 normalized data for your smart contracts/backend
        core_data = result['data']
        print(f"Name:      {core_data.get('given_names')} {core_data.get('surname')}")
        print(f"ID No:     {core_data.get('passport_number')}")
        print(f"DOB:       {core_data.get('date_of_birth')} (ISO 8601)")
        print(f"Expiry:    {core_data.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 data ready for immediate verification against global AML watchlists.

{
  "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

Why is an API-first approach better than an SDK for Web3 apps?

Third-party SDKs bloat your application size, frequently break during OS updates (iOS/Android), and are notoriously difficult to maintain in cross-platform environments like React Native or Flutter. Our API-first approach allows you to build a fully custom UI using standard HTTP libraries, providing maximum flexibility and security.

Do you accept cryptocurrency for API subscriptions?

Yes! As a platform designed for global digital businesses, we natively support USDT and USDC payments alongside traditional credit cards via Stripe, eliminating cross-border friction.

How do you handle data privacy for sensitive KYC documents?

We utilize a strict process-and-forget architecture. By accepting raw Base64 strings or file uploads, you never need to host sensitive images on public URLs. Data is processed in-memory at our edge nodes and instantly purged, ensuring zero data retention.

Explore More Travel & KYC Solutions

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