Extract data from a passport

Extract data from a passport scan or photo — passport OCR that returns structured fields, not flat text. Get surname, given names, passport number, nationality, dates, issuing authority, and both MRZ lines as JSON, CSV, or Excel.

Drop a PDF or image here, or browse
PDF or image · up to 20 MB
Processed in-flight — never stored on our servers.

What should we pull from this passport?

Or pick specific fields

Or describe it yourself

Why this matters

KYC, visa applications, hotel check-in, and identity onboarding all need the same fields. ExtractFox returns them in a stable schema, including both lines of the machine-readable zone, so you can compare MRZ values against the visual fields and flag likely OCR errors.

How it works

  1. Step 1
    Upload the passport image

    PDF, PNG, JPG, or HEIC photo. Front photo page only.

  2. Step 2
    Extract identity fields

    Surname, given names, passport number, nationality, sex, date of birth, place of birth, issue date, expiry date, issuing authority, and both MRZ lines.

  3. Step 3
    Verify and export

    Inspect the table, then download as JSON for an API ingest or Excel for a spreadsheet.

Fields extracted

country_codesurnamegiven_namespassport_numbernationalitydate_of_birthsexplace_of_birthdate_of_issuedate_of_expiryissuing_authoritymrz_line_1mrz_line_2

Common use cases

Passport scan to JSON for identity onboarding
MRZ extraction from passport photos
Passport number and expiry-date capture for travel workflows
KYC onboarding for fintech, crypto, and neobanks
Visa and travel-document processing
Hotel and short-stay rental check-in flows
Airline and cruise passenger pre-boarding
Employer right-to-work and I-9 verification
Background-check and AML screening pipelines
Border and customs intake at private events
MRZ parsing for ICAO-compliant document validation

Sample output

Example output from a passport photo page

country_codeGBR
surnameDOE
given_namesJANE ELIZABETH
passport_number123456789
nationalityBRITISH CITIZEN
date_of_birth1990-04-12
sexF
place_of_birthLONDON
date_of_issue2022-03-01
date_of_expiry2032-03-01
issuing_authorityHMPO
mrz_line_1P<GBRDOE<<JANE<ELIZABETH<<<<<<<<<<<<<<<<<<<
mrz_line_21234567894GBR9004129F3203018<<<<<<<<<<<<<<06

Frequently asked questions

How do I extract data from a passport scan or photo?+

Drop the passport image (PDF, JPG, PNG, or HEIC) onto this page. ExtractFox reads every printed field — surname, given names, passport number, nationality, date of birth, expiry date, issuing authority, and both MRZ lines — and returns them as JSON, CSV, or Excel. No template setup is required.

Can I extract MRZ data from a passport photo?+

Yes. Use MRZ only for the raw two-line machine-readable zone, or Parsed MRZ fields when you want document type, issuing country, passport number, nationality, birth date, sex, expiry date, and optional data split into separate fields.

Does ExtractFox parse the MRZ on a passport?+

Yes — both MRZ lines are returned as separate fields (mrz_line_1 and mrz_line_2), and the Parsed MRZ fields option splits them into document_number, nationality, date_of_birth, sex, date_of_expiry, and optional_data. Keep the raw MRZ lines so you can run ICAO 9303 check-digit validation in your own pipeline.

Is this a passport OCR tool, or something different?+

It's better than classic passport OCR. Traditional OCR returns a flat string of text and you write rules to find each field. ExtractFox returns a typed schema — surname, given_names, passport_number, dates as ISO 8601 — directly, so there's no parsing layer to maintain.

Which countries' passports are supported?+

Any ICAO-compliant passport. The model has been tested on common formats from the EU, US, UK, India, Brazil, Japan, and most APAC and LATAM countries. National ID cards aren't supported on this page — use the ID document extractor for those.

Is it safe to upload passport scans here?+

Files are processed by ExtractFox's secure extraction engine and are not stored by ExtractFox. For regulated KYC workloads, contact us for a self-hosted or VPC deployment.

Can I extract passport data from a photo on my phone?+

Yes. Drop a HEIC or JPG photo of the passport's main page. Glare and angle affect accuracy — a flat, well-lit photo works best.

Can I bulk-process passports for KYC onboarding?+

On the paid plan you can hit the REST API directly — useful for KYC pipelines, hospitality check-in, or visa application processing. Each call returns the same stable schema.

What if the passport text is in a non-Latin script?+

ExtractFox extracts text in the script printed on the document. The MRZ is always Latin-transliterated by ICAO standard, so cross-checking against the visual fields works even for Cyrillic, Arabic, or CJK passports.

What about driver's licenses, national IDs, or residence permits?+

Use the ID document extractor for non-passport IDs — it returns the same kind of structured fields (names, document number, dates) without expecting an ICAO-format MRZ.

Is there a passport OCR API?+

The same /api/extract endpoint accepts passport images with schemaId=passport on paid plans. See /developers for auth and quotas — this page is the free browser tool.

Can I use this for KYC passport OCR integration?+

Yes. The output schema is stable across ICAO-compliant passports — pipe JSON into your verification flow, compare MRZ against visual fields, and run check-digit validation in your own code.

Compare to alternatives

Related extractors

Used by

Key terms

From the blog