Part of Misfora

Passport & ID OCR API

The document recognition layer behind Misfora's guest registration software — available as a standalone API.

Use it independently — integrate passport and ID recognition into your own hospitality, travel, car rental, telecom or onboarding software.

Need browser camera capture too? Web Scanner SDK →

No credit card. API access is set up manually.

POST /v1/scan · image → JSON
{
  "success": true,
  "document": {
    "type": "passport",
    "issuing_country": "TUR",
    "document_number": "U12345678",
    "first_name": "AHMET",
    "last_name": "YILMAZ",
    "...": "..."
  }
}
Median response ~1.1s (600–2500ms)
Every field checked against ICAO MRZ digits
Images discarded after processing — never stored
The problem

Stop asking people to type passport data.

Every field someone types by hand from a passport or ID is a chance for a typo — and a few seconds you didn't need to spend.

Without Misfora
  • ⌨️ Employee types name
  • ⌨️ Types document number
  • ⌨️ Types date of birth
  • ⌨️ Checks the expiry date
  • ❌ Errors and wasted time
With Misfora
  • 📷 Passport is scanned
  • Misfora OCR API
  • ✓ Name, document number
  • ✓ Date of birth, expiry date
  • ✓ Nationality, document type
  • Straight into your application
Who it's for

Built for software that works with identity documents.

Any application that repeatedly asks someone to read a passport or ID card can use the same API instead of building and maintaining its own OCR pipeline.

🏨

Hotel PMS & guest management

Automatically extract guest name, document number, date of birth, and nationality from a passport or ID card instead of making staff type it in at check-in.

🚗

Car rental software

Scan a customer's passport or ID and use the structured result to fill their profile and rental agreement — less typing, fewer mistakes.

🏥

Healthcare & patient intake

Capture patient identity information from a passport or ID card and pass it directly into your system.

✈️

Travel & immigration software

Automatically read passport information from an uploaded photo instead of manual data entry.

🔐

KYC & identity platforms

Use document OCR and MRZ validation as one step in your onboarding or identity-verification workflow.

🏢

Any business software

If your application collects identity-document information at all, the same API can replace the manual step.

Custom integrations & solutions. We can connect Misfora to your PMS, CRM, ERP or other business software — including systems we don't support out of the box.

How it works

From document photo to usable data.

1

Upload

Your application sends a passport or ID photo to the API.

2

Recognition

Misfora detects the document and reads its machine-readable zone (MRZ).

3

Validation

Every field is checked — MRZ check digits against the ICAO 9303 standard, plus allowed-value dictionaries for country and gender codes.

4

Structured result

Your application receives clean, structured JSON with the extracted fields.

5

Your workflow

Store it, create a customer profile, update your PMS, start KYC, generate a rental agreement — whatever your application needs.

Misfora handles document recognition. Your software decides what to do with the data.

One API. One response. No OCR infrastructure to maintain.

MRZ extraction Field-level validation Human-review signal Simple JSON response Synchronous API
Extraction alone isn't the answer

Don't just extract. Check the result.

passport
→
OCR / MRZ
→
structured fields
→
field validation
→
your application

Extraction alone tells you what a document says. Validation tells you whether to trust it.

Every field ships with a pass/fail check — plus a single review_recommended flag when something's worth a second look.

Built for identity documents

Passport & ID card OCR.

Passports

ICAO TD3 — 2-line MRZ.

ID cards

ICAO TD1 — 3-line MRZ.

Automatic detection

No document-type parameter required — Misfora determines whether the document is a passport or ID card automatically.

Automatic alignment

Corrects rotation and perspective automatically — a safety net for sideways or upside-down photos.

See the full list of supported documents and countries.

Two layers, one document workflow

Have the image? OCR API. Need the camera too? Web Scanner SDK.

If your application already captures or uploads document images, send them straight to the API. If you don't want to build browser camera capture yourself, the Web Scanner SDK adds it on top — with the same recognition behind it.

browser camera
→
Web Scanner SDK
→
quality checks & auto-capture
→
Misfora OCR API
→
validated structured data
OCR API

For applications that already have their own camera, upload or document-capture flow — or process documents on a server.

Web Scanner SDK + OCR API

For web applications that need a ready-made browser capture experience: document detection, quality checks and auto-capture before recognition.

Your existing API integration doesn't need the SDK. Explore the Web Scanner SDK →

Privacy

Your documents are not stored.

Uploaded document images exist only for the duration of the API request and are discarded once processing finishes — nothing is written to a database or cloud storage. The extracted identity fields (name, document number, date of birth) aren't retained after the response is returned either.

Your images and extracted data are not used to train or fine-tune any OCR model.

Evaluating Misfora for a KYC or compliance workflow? See exactly what limited usage metadata we keep for billing in the Security section of the docs.

Quick start

One request in, one response out.

No job creation, polling, or webhooks — the same three snippets as the docs' Quick Start.

curl https://misfora.com/v1/scan \
  -H "Authorization: Bearer msf_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -F "file=@passport.jpg"
import requests

response = requests.post(
    "https://misfora.com/v1/scan",
    headers={"Authorization": "Bearer msf_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"},
    files={"file": open("passport.jpg", "rb")},
)
response.raise_for_status()
print(response.json())
const fs = require("fs");

const form = new FormData();
form.append("file", fs.readFileSync("passport.jpg"), "passport.jpg");

const res = await fetch("https://misfora.com/v1/scan", {
  method: "POST",
  headers: { Authorization: "Bearer msf_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" },
  body: form,
});
console.log(await res.json());

Full request/response reference, every field, and every error code: read the docs.

Access

Standard access & Enterprise.

Standard access

Limits sized to your use case, agreed when we set up your account — no fixed public tier to pick from.

Enterprise

Higher volume, a response schema mapped to your own systems if the default JSON shape doesn't fit your pipeline as-is, and — on request — a fully offline, on-premise recognition engine for environments that can't send documents to an external API.

Pricing

Usage-based pricing.

Plans are based on monthly document processing volume.

Contact us for a quote.

Before you integrate

Try it before you integrate.

Want to see it work first? Run a scan on our free public scanner — same OCR pipeline as the API, no signup required.

📷Try the Free Scanner
FAQ

Questions

What is a passport OCR API?+
A passport OCR API reads a passport (or ID card) photo and returns the identity data as structured, usable fields — name, document number, date of birth, and so on — instead of raw text. Misfora's API also validates each field's MRZ check digit, so you get a data-quality signal along with the data itself.
What can the API extract?+
Document type, issuing country, document number, expiry date, first and last name, date of birth, nationality, and gender. See the full field list and response schema in the docs.
What documents are supported?+
Passports and ID cards with a machine-readable zone (MRZ). See the full list of supported documents and countries.
Can I integrate passport scanning into my PMS?+
Yes — send a guest's passport or ID photo to the API from your PMS and use the structured result to populate the reservation or registration record automatically, instead of asking staff to type it in.
Can I integrate Misfora with car rental software?+
Yes — the same API works for any application that needs identity-document data: scan a customer's passport or ID at vehicle pickup and use the structured result to fill their profile and rental agreement.
Can I use Misfora for KYC?+
Misfora can be the document-OCR step of a KYC or onboarding workflow — extracting and validating identity-document fields. It doesn't provide identity verification, liveness detection, or a full KYC decision on its own; you'd combine it with the rest of your compliance workflow.
How fast is a typical response?+
In our own testing, most requests finish in 600–2500ms, with a median around 1100ms. Actual latency depends heavily on image size and quality, so treat this as a rough indication rather than a guarantee.
Do you store uploaded documents?+
No — images exist only for the duration of the request and are discarded once processing finishes. Nothing is written to a database or cloud storage.
Does the API validate MRZ check digits?+
Yes, on every extracted field — see the docs for exactly which.
What's the difference between TD1 and TD3?+
ICAO terms for the two MRZ formats: TD3 is the 2-line format used on passports, TD1 is the 3-line format used on ID cards. In API terms — TD3 → type: "passport", TD1 → type: "id_card".
Does the photo need to be perfectly aligned?+
No — Misfora automatically detects the document and corrects rotation and perspective, including sideways or upside-down photos. A well-aligned, well-lit photo still recognizes more reliably, but this works as a safety net, not a requirement.
Do you offer a browser document scanner?+
Yes — the Web Scanner SDK adds passport and ID capture to your web application: document detection, framing, quality and stability checks and auto-capture, with recognition by this API. For server-side or existing capture flows, the API works on its own — cURL, Python and JavaScript examples are in the docs.
Do I need the Web Scanner SDK to use the API?+
No. The OCR API is a standalone product — existing integrations keep sending images to /v1/scan directly. The SDK is only for applications that also want Misfora's browser camera capture.
Do you offer enterprise plans?+
Yes — custom volume, a custom response schema if you need it, and, on request, a fully offline on-premise deployment of the recognition engine. See Enterprise above.

Ready to integrate?

Looking for guest registration automation? Learn about Misfora Hospitality →