Passport OCR API Pricing and Cost per Scan

What passport OCR costs with StructOCR: 2 credits per successful scan, prepaid credits that never expire, and no charge for failed requests.

What Drives OCR Cost

OCR pricing differs by whether failed requests are billed, whether credits expire, minimum monthly commitments, and the price per document type. Those terms matter more than the headline rate.

How StructOCR Prices It

Each successful passport request costs 2 credits. Credits are prepaid from $5, never expire, and are only deducted for successful (200 OK) responses. See the full pricing page and start with 200 free credits.

Where This Fits

  • Pilot: 200 free credits cover a realistic test on your own images before you pay anything.
  • Steady volume: Larger packages lower the cost per credit, and unused credits carry over indefinitely.
  • Enterprise: Contact sales for custom volume pricing and support terms.
Need more testing? Create a free account to get 200 free credits (equals 100 Passport scans).

Track Cost in Your Code

Each successful response consumes a fixed number of credits, so cost per document is predictable.

Prerequisite: Python 3.9+, `pip install requests`, and a STRUCTOCR_API_KEY

PYTHON EXAMPLE
import base64
import os
import requests

with open("passport.jpg", "rb") as image_file:
    image = base64.b64encode(image_file.read()).decode("ascii")

response = requests.post(
    "https://api.structocr.com/v1/passport",
    headers={"x-api-key": os.environ["STRUCTOCR_API_KEY"]},
    json={"img": image},
    timeout=30,
)
response.raise_for_status()
data = response.json()["data"]
print("passport_number:", data.get("passport_number"))
print("surname:", data.get("surname"))
print("given_names:", data.get("given_names"))
print("date_of_expiry:", data.get("date_of_expiry"))

Technical Specs

  • •Endpoint: POST https://api.structocr.com/v1/passport
  • •Authentication: x-api-key request header
  • •Inputs: JPG, PNG, or WebP as Base64 JSON; maximum 4.5MB
  • •Price: 2 credits per successful request; failed requests are not billed
  • •Free trial: 200 free credits on sign-up, no credit card required
  • •Mini ($5): about $0.0200 per passport
  • •Starter ($15): about $0.0167 per passport
  • •Business ($29): about $0.0145 per passport
  • •Pro ($99): about $0.0116 per passport

Key Features

  • •No subscription: Buy credit packages when you need them.
  • •No expiry: Purchased credits are yours until used.
  • •Failures are free: Errors, timeouts, and unreadable images are not billed.
  • •Crypto bonus: Paying with USDT or USDC adds a 10% credit bonus.

Billable Response

Only a successful response like this consumes credits. Field values are illustrative.

{
  "success": true,
  "data": {
    "passport_number": "…",
    "surname": "…",
    "given_names": "…",
    "date_of_expiry": "…"
  }
}

Frequently Asked Questions

How much does one passport scan cost?

2 credits, which is roughly $0.0116 on the $99 package and $0.02 on the $5 package.

Am I charged when OCR fails?

No. Only successful extractions are billed.

Do credits expire?

No. Purchased credits never expire.

You May Also Like

Related tutorials, platform guides, and comparisons

Country Tutorial

Morocco Passport OCR with Node.js SDK

Use the official StructOCR Node.js SDK with TypeScript and Express to extract structured MRZ and VIZ data from Morocco passports.

Node.js · Passport
Country Tutorial

Mexico Passport OCR with Python SDK

Use the official StructOCR Python SDK and FastAPI to extract structured MRZ and VIZ data from Mexico passports with a server-side integration.

Python · Passport
Country Tutorial

Thailand Passport OCR with Node.js SDK

Use the official StructOCR Node.js SDK with TypeScript and Express to extract structured MRZ and VIZ data from Thailand passports.

Node.js · Passport
Country Tutorial

Bulgaria Passport OCR with Python SDK

Use the official StructOCR Python SDK and FastAPI to extract structured MRZ and VIZ data from Bulgaria passports with a server-side integration.

Python · Passport
Country Tutorial

Singapore Passport OCR with Node.js SDK

Use the official StructOCR Node.js SDK with TypeScript and Express to extract structured MRZ and VIZ data from Singapore passports.

Node.js · Passport
Country Tutorial

Vietnam Passport OCR with Python SDK

Use the official StructOCR Python SDK and FastAPI to extract structured MRZ and VIZ data from Vietnam passports with a server-side integration.

Python · Passport
Country Tutorial

Vietnam Passport OCR with Node.js SDK

Use the official StructOCR Node.js SDK with TypeScript and Express to extract structured MRZ and VIZ data from Vietnam passports.

Node.js · Passport
Tutorial

PHP Passport & Visa OCR API

Enterprise-grade PHP Passport & Visa OCR API. Test our instant JSON extraction for free. Accurate ICAO 9303 & identity document parsing with zero RegEx required.

PHP · Passport
Tutorial

C# Passport OCR API

Upload an image for a free test! High-accuracy C# Passport OCR API for parsing MRZ data. Get structured JSON output from passport images. Eliminate Tesseract errors and manual entry.

C# · Passport
Tutorial

Pennsylvania Driver License PDF417 API

Decode the PDF417 barcode on the back of a Pennsylvania driver license or State ID and return normalized AAMVA fields as structured JSON.

Driver License

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