Scan MRZ on passports, IDs or visas in photos, images or video. Seamlessly integrate MRZ scanning SDK in your web apps, mobile applications or cloud-based solutions.
The core idea behind OCR Studio is Data Privacy. In line with this idea, we created on-premise solutions.
On-premise OCR means all data is processed offline directly in the local memory (RAM) and never leaves the client’s device, which allows us to ensure an unrivaled level of data privacy for our clients.
Learn more about Data Privacy
Reads MRZ data from passports, IDs, and visas.
Designed to support ISO/ICAO standard documents for instant data entry and verification.
Supports all standardized formats as well as local MRZ formats from France, Switzerland, Bulgaria, and more.
Accurately matches face photos on passports, IDs, and visas.
Ensures seamless integration with web applications and PWAs.
Available for smartphones, desktops, or servers for localized MRZ processing.
RFID chip verification and data comparison module included in the SDK.
State-of-the-art AI-driven technology for detecting 2-line and 3-line MRZs in scans, photos, and video.
Our proprietary design ensures rapid and accurate MRZ OCR from any angle.
Effectively reads curved MRZ lines for enhanced versatility.
Reliable MRZ scan under both low and excessive lighting conditions.
Maintains accuracy despite high-contrast glares and shadows.
Shows high quality even with low-resolution images with small DPI values.
Instantly identifies the document holder’s photo.
Compares the document photo with a selfie for added security.
Ensures the accuracy and authenticity of MRZ information.
MRZ scanning with automatic font verification.
Confirms adherence to ISO/ICAO standard (ISO/IEC 7501-1 / ICAO Document 9303) and local standards.
Effectively extracts all MRZ data fields.
Provides MRZ OCR confidence scores, object coordinates, personal data masking, and more.
Enables in-browser MRZ scan, compatible with all modern web browsers.
Provides a REST API for low-code MRZ scanner integration and native APIs for C++, C#, Java, and Python.
Supports React Native and Flutter for mobile app development.
Includes practical examples for all supported integration methods.
Available for Android, iOS, Windows, and Linux.
Compatible with x86, x86_64, ARMv7, ARMv8, and ARMv9 (AArch32 and AArch64) architectures.
# Python engine_instance = ocrstudiosdk.OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>) session = engine_instance.CreateSession( <SIGNATURE>, "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"mrz.*\"}" ) image = ocrstudiosdk.OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>) session.ProcessImage(image) result = session.CurrentResult() target = result.TargetByIndex(0) item_it = target.ItemsBegin('string') while not item_it.IsEqualTo(target.ItemsEnd('string')): name = item_it.Item().Name() value = item_it.Item().Value() item_it.Step()
// Java OCRStudioSDKInstance engine_instance = OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>); OCRStudioSDKSession session = engine_instance.CreateSession(<SIGNATURE>, "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"mrz.*\"}"); OCRStudioSDKImage image = OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>); session.ProcessImage(image); OCRStudioSDKResult result = session.CurrentResult(); OCRStudioSDKTarget target = result.TargetByIndex(0); for (OCRStudioSDKItemIterator item_it = target.ItemsBegin("string"); !item_it.IsEqualTo(target.ItemsEnd("string")); item_it.Step()) { String name = item_it.Item().Name(); String value = item_it.Item().Value(); }
// C# ocrstudio.OCRStudioSDKInstance engine_instance = ocrstudio.OCRStudioSDKInstance.CreateFromPath(<PATH_TO_CONFIGURATION_FILE>); ocrstudio.OCRStudioSDKSession session = engine_instance.CreateSession(<SIGNATURE>, "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"mrz.*\"}"); ocrstudio.OCRStudioSDKImage image = ocrstudio.OCRStudioSDKImage.CreateFromFile(<PATH_TO_IMAGE>); session.ProcessImage(image); ocrstudio.OCRStudioSDKResult result = session.CurrentResult(); ocrstudio.OCRStudioSDKTarget target = result.TargetByIndex(0); for (OCRStudioSDKItemIterator item_it = target.ItemsBegin("string"); !item_it.IsEqualTo(target.ItemsEnd("string")); item_it.Step()) { String name = item_it.Item().Name(); String value = item_it.Item().Value(); }
// C++ std::unique_ptr<ocrstudio::OCRStudioSDKInstance> engine_instance(ocrstudio::OCRStudioSDKInstance::CreateFromPath(<PATH_TO_CONFIGURATION_FILE>)); std::unique_ptr<ocrstudio::OCRStudioSDKSession> session(engine_instance->CreateSession(<SIGNATURE>, "{\"session_type\": \"document_recognition\", \"target_group_type\": \"default\", \"target_masks\": \"mrz.*\"}")); std::unique_ptr<ocrstudio::OCRStudioSDKImage> image(ocrstudio::OCRStudioSDKImage::CreateFromFile(<PATH_TO_IMAGE>)); session->ProcessImage(*image); const ocrstudio::OCRStudioSDKResult& result = session->CurrentResult(); const ocrstudio::OCRStudioSDKTarget& target = result.TargetByIndex(0); for (auto item_it = target.ItemsBegin("string"); item_it != target.ItemsEnd("string"); item_it.Step()) { string name = item_it.Item().Name(); string value = item_it.Item().Value(); }
full_mrz: P<AREALKAABI<<SAIF<ABDULRAHMAN<OBAID<MOHAMMEAAAA149756ARE7402027M1610051<<<<<<<<<<<<<<<<<<<<<6 mrz_birth_date: 02.02.1974 mrz_cd_birth_date: 7 mrz_cd_composite: 6 mrz_cd_expiry_date: 1 mrz_cd_number: 6 mrz_cd_opt_data_2: < mrz_doc_type_code: P< mrz_expiry_date: 05.10.2016 mrz_gender: M mrz_issuer: ARE mrz_last_name: ALKAABI mrz_line1: P<AREALKAABI<<SAIF<ABDULRAHMAN<OBAID<MOHAMME mrz_line2: AAAA149756ARE7402027M1610051<<<<<<<<<<<<<<<<<<<<<6 mrz_name: SAIF ABDULRAHMAN OBAID MOHAMME mrz_nationality: ARE mrz_number: AAAA14975
Securely extracts information from the NFC chip, including the holder's personal data and digital photographs
SDK gives the ability to create an NFC access key using the document's MRZ and extract data from the RFID chip.
Verify identity documents using advanced image analysis, visible document features analysis, cross-checking of personal data, and validation of both textual and graphical RFID chip data.
Our AI solution ensures maximum data protection by processing all customer information exclusively on the end-user's device.
MRZ OCR is the specialized technology that automatically reads and decodes the machine-readable zone on passports and ID cards to instantly extract personal data.
OCR Studio’s technology reads MRZ data from passports, IDs, and visas.
OCR Studio supports all ICAO-compliant MRZ formats, including:
These formats cover the majority of global identity documents used in travel, finance, and government services.
Our MRZ reader provides instant verification by cross-validating extracted MRZ data with personal details from the document's visual zone.
MRZ code reader provides the essential key to unlock and authenticate the RFID/NFC chip in ePassports, enabling secure data verification.
Firstly, the offline operation of the AI solution ensures there is no data leakage and guarantees the privacy of personal data, as all information is processed on-premise and never leaves the client's device.
Secondly, given the potential for unreliable internet connections — such as unstable Wi-Fi or operating in production areas outside network coverage — the MRZ document checker must support offline operation without any degradation in speed or accuracy.
Try our free demo app, which showcases all our technologies
Demo apps privacy policy
For comprehensive details about our complete range of solutions and services.
Please contact our sales team
sales@ocrstudio.ai
or simply fill out the form and we'll reach out to you.
Your message has been sent
Please make sure you have specified an email with a corporate domain