What's new in Azure Form Recognizer

Form Recognizer service is updated on an ongoing basis. Bookmark this page to stay up-to-date with release notes, feature enhancements, and documentation updates.

October 2021

Form Recognizer new preview release

Form Recognizer new preview release introduces several new features and capabilities:

  • General document model is a new API that uses a pre-trained model to extract text, tables, structure, key-value pairs, and named entities from forms and documents.

  • Hotel receipt model added to prebuilt receipt processing.

  • Expanded fields for ID document the ID model supports endorsements, restrictions, and vehicle classification extraction from US driver's licenses.

  • Signature field is a new field type in custom forms to detect the presence of a signature in a form field.

  • Language Expansion Support for 122 languages (print) and 7 languages (handwritten). Form Recognizer Layout and Custom Form expand supported languages to 122 with its latest preview. This includes text extraction for print text in 49 new languages including Russian, Bulgarian, and other Cyrillic and more Latin languages. In addition extraction of handwritten text now supports 7 languages that include English, and new previews of Chinese Simplified, French, German, Italian, Portuguese, and Spanish.

  • Tables and text extraction enhancements Layout now supports extracting single row tables also called key-value tables. Text extraction enhancements include better processing of digital PDFs and Machine Readable Zone (MRZ) text in identity documents, along with general performance.

  • Form Recognizer Studio To simplify use of the service, you can now access the Form Recognizer Studio to test the different prebuilt models or label and train a custom model

Get stared with the new REST API, Python or .NET SDK for the v3.0 preview API.

Form Recognizer model data extraction

Model Text extraction Key-Value pairs Selection Marks Tables Entities
🆕General document
ID document
Business card

September 2021

  • Azure metrics explorer advanced features are available on your Form Recognizer resource overview page in the Azure portal.

    Monitoring menu

    Screenshot showing the monitoring menu in the Azure portal


    Screenshot showing an example metrics chart in the Azure portal.

  • ID document model update: given names including a suffix, with or without a period (full stop), process successfully:

    Input Text Result with update
    William Isaac Kirby Jr. FirstName: William Isaac

    LastName: Kirby Jr.
    Henry Caleb Ross Sr FirstName: Henry Caleb

    LastName: Ross Sr

July 2021

System-assigned managed identity support

You can now enable a system-assigned managed identity to grant Form Recognizer limited access to private storage accounts including those protected by a Virtual Network (VNet) or firewall or have enabled bring-your-own-storage (BYOS). See Create and use managed identity for your Form Recognizer resource to learn more.

June 2021

Form Recognizer containers v2.1 released in gated preview

Form Recognizer features are now supported by six feature containers—Layout, Business Card,ID Document, Receipt, Invoice, and Custom. To use them, you must submit an online request, and receive approval.

See Install and run Docker containers for Form Recognizer and Configure Form Recognizer containers

Form Recognizer connector released in preview

The Form Recognizer connector integrates with Azure Logic Apps, Microsoft Power Automate, and Microsoft Power Apps. The connector supports workflow actions and triggers to extract and analyze document data and structure from custom and prebuilt forms, invoices, receipts, business cards and ID documents.

Form Recognizer SDK v3.1.0 patched to v3.1.1 for C#, Java, and Python

The patch addresses invoices that do not have sub-line item fields detected such as a FormField with Text but no BoundingBox or Page information.

May 2021

Form Recognizer 2.1 API Generally Available (GA) release

Get started

Go to the Form Recognizer Sample Tool and follow the quickstart

Layout adds table headers

The updated Layout API table feature adds header recognition with column headers that can span multiple rows. Each table cell has an attribute that indicates whether it's part of a header or not. This can be used to identify which rows make up the table header.

SDK updates

| Reference documentation | NuGet package version 3.0.1 |

Non-breaking changes

  • FormRecognizerModelFactory class now supports updates to TextAppearance and ReadingOrder and removal of TextStyle models. See Breaking changes

Breaking changes (May)

  • Client defaults to the latest supported service version, currently v2.1. You can specify version 2.0 in the FormRecognizerClientOptions object's Version property.

  • StartRecognizeIdentityDocuments. Renamed methods and method parameters using Identity to replace Id keyword for all related identity documents recognition API functionalities.

  • FormReadingOrder. ReadingOrder renamed to FormReadingOrder.

  • AsCountryRegion. AsCountryCode renamed to AsCountryRegion.

  • TextAppearance now includes StyleName and StyleConfidence properties (formerly part of the TextStyle object).

  • FieldValueType. Value Gender removed from the model.

  • TextStyle model removed.

  • FieldValueGender type removed.

April 2021

SDK preview updates for API version 2.1-preview.3

NuGet package version 3.1.0-beta.4

  • New methods to analyze data from identity documents:



    For a list of field values, see Fields extracted in our Form Recognizer documentation.

  • Expanded the set of document languages that can be provided to the StartRecognizeContent method.

  • New property Pages supported by the following classes:


    The Pages property allows you to select individual or a range of pages for multi-page PDF and TIFF documents. For individual pages, enter the page number, for example, 3. For a range of pages (like page 2 and pages 5-7) enter the p age numbers and ranges separated by commas: 2, 5-7.

  • New property ReadingOrder supported for the following class:


    The ReadingOrder property is an optional parameter that allows you to specify which reading order algorithm—basic or natural—should be applied to order the extraction of text elements. If not specified, the default value is basic.

Breaking changes (April)

  • The client defaults to the latest supported service version, which is currently 2.1-preview.3.

  • StartRecognizeCustomForms method now throws a RequestFailedException() when an invalid file is passed.

March 2021

Form Recognizer v2.1 public preview 3 is now available. v2.1-preview.3 has been released, including the following features:

  • New prebuilt ID model The new prebuilt ID model enables customers to take IDs and return structured data to automate processing. It combines our powerful Optical Character Recognition (OCR) capabilities with ID understanding models to extract key information from passports and U.S. driver licenses, such as name, date of birth, issue date, expiration date, and more.

    Learn more about the prebuilt ID model

    passport example

  • Line-item extraction for invoice model - Prebuilt Invoice model now supports line item extraction; it now extracts full items and their parts - description, amount, quantity, product ID, date and more. With a simple API/SDK call, you can extract useful data from your invoices - text, table, key-value pairs, and line items.

    Learn more about the invoice model

  • Supervised table labeling and training, empty-value labeling - In addition to Form Recognizer's state-of-the-art deep learning automatic table extraction capabilities, it now enables customers to label and train on tables. This new release includes the ability to label and train on line items/tables (dynamic and fixed) and train a custom model to extract key-value pairs and line items. Once a model is trained, the model will extract line items as part of the JSON output in the documentResults section.

    Table labeling

    In addition to labeling tables, you can now label empty values and regions; if some documents in your training set do not have values for certain fields, you can label them so that your model will know to extract values properly from analyzed documents.

  • Support for 66 new languages - The Layout API and Custom Models for Form Recognizer now support 73 languages.

    Learn more about Form Recognizer's language support

  • Natural reading order, handwriting classification, and page selection - With this update, you can choose to get the text line outputs in the natural reading order instead of the default left-to-right and top-to-bottom ordering. Use the new readingOrder query parameter and set it to "natural" value for a more human-friendly reading order output. In addition, for Latin languages, Form Recognizer will classify text lines as handwritten style or not and give a confidence score.

  • Prebuilt receipt model quality improvements This update includes many quality improvements for the prebuilt Receipt model, especially around line item extraction.

November 2020

New features

Form Recognizer v2.1 public preview 2 is now available. v2.1-preview.2 has been released, including the following features:

  • New prebuilt invoice model - The new prebuilt Invoice model enables customers to take invoices in various formats and return structured data to automate the invoice processing. It combines our powerful Optical Character Recognition (OCR) capabilities with invoice understanding deep learning models to extract key information from invoices in English. It extracts key text, tables, and information such as customer, vendor, invoice ID, invoice due date, total, amount due, tax amount, ship to, and bill to.

    Learn more about the prebuilt invoice model

    invoice example

  • Enhanced table extraction - Form Recognizer now provides enhanced table extraction, which combines our powerful Optical Character Recognition (OCR) capabilities with a deep learning table extraction model. Form Recognizer can extract data from tables, including complex tables with merged columns, rows, no borders and more.

    tables example

    Learn more about Layout extraction

  • Client library update - The latest versions of the client libraries for .NET, Python, Java, and JavaScript support the Form Recognizer 2.1 API.

  • New language supported: Japanese - The following new languages are now supported: for AnalyzeLayout and AnalyzeCustomForm: Japanese (ja). Language support

  • Text line style indication (handwritten/other) (Latin languages only) - Form Recognizer now outputs an appearance object classifying whether each text line is handwritten style or not, along with a confidence score. This feature is supported only for Latin languages.

  • Quality improvements - Extraction improvements including single digit extraction improvements.

  • New try-it-out feature in the Form Recognizer Sample and Labeling Tool - Ability to try out prebuilt Invoice, Receipt, and Business Card models and the Layout API using the Form Recognizer Sample Labeling tool. See how your data will be extracted without writing any code.

    Try the Form Recognizer sample labeling tool

    Screenshot: Sample labeling tool.

  • Feedback Loop - When Analyzing files via the sample labeling tool you can now also add it to the training set and adjust the labels if necessary and train to improve the model.

  • Auto Label Documents - Automatically labels additional documents based on previous labeled documents in the project.

August 2020

New features

Form Recognizer v2.1 public preview is now available. V2.1-preview.1 has been released, including the following features:

  • REST API reference is available - View the v2.1-preview.1 reference
  • New languages supported In addition to English, the following languages are now supported: for Layout and Train Custom Model: English (en), Chinese (Simplified) (zh-Hans), Dutch (nl), French (fr), German (de), Italian (it), Portuguese (pt) and Spanish (es).
  • Checkbox / Selection Mark detection – Form Recognizer supports detection and extraction of selection marks such as check boxes and radio buttons. Selection Marks are extracted in Layout and you can now also label and train in Train Custom Model - Train with Labels to extract key value pairs for selection marks.
  • Model Compose - allows multiple models to be composed and called with a single model ID. When a you submit a document to be analyzed with a composed model ID, a classification step is first performed to route it to the correct custom model. Model Compose is available for Train Custom Model - Train with labels.
  • Model name - add a friendly name to your custom models for easier management and tracking.
  • New pre-built model for Business Cards for extracting common fields in English, language business cards.
  • New locales for pre-built Receipts in addition to EN-US, support is now available for EN-AU, EN-CA, EN-GB, EN-IN
  • Quality improvements for Layout, Train Custom Model - Train without Labels and Train with Labels.

v2.0 includes the following update:

  • The client libraries for NET, Python, Java, and JavaScript have entered General Availability.

New samples are available on GitHub.

  • The Knowledge Extraction Recipes - Forms Playbook collects best practices from real Form Recognizer customer engagements and provides usable code samples, checklists, and sample pipelines used in developing these projects.
  • The sample labeling tool has been updated to support the new v2.1 functionality. See this quickstart for getting started with the tool.
  • The Intelligent Kiosk Form Recognizer sample shows how to integrate Analyze Receipt and Train Custom Model - Train without Labels.

July 2020

New features

  • v2.0 reference available - View the v2.0 API Reference and the updated SDKs for .NET, Python, Java, and JavaScript.

  • Table enhancements and Extraction enhancements - includes accuracy improvements and table extractions enhancements, specifically, the capability to learn tables headers and structures in custom train without labels.

  • Currency support - Detection and extraction of global currency symbols.

  • Azure Gov - Form Recognizer is now also available in Azure Gov.

  • Enhanced security features:

    • Bring your own key - Form Recognizer automatically encrypts your data when persisted to the cloud to protect it and to help you to meet your organizational security and compliance commitments. By default, your subscription uses Microsoft-managed encryption keys. You can now also manage your subscription with your own encryption keys. Customer-managed keys, also known as bring your own key (BYOK), offer greater flexibility to create, rotate, disable, and revoke access controls. You can also audit the encryption keys used to protect your data.
    • Private endpoints – Enables you on a virtual network to securely access data over a Private Link.

June 2020

New features

April 2020

New features

  • SDK support for Form Recognizer API v2.0 Public Preview - This month we expanded our service support to include a preview SDK for Form Recognizer v2.0 (preview) release. Use the links below to get started with your language of choice:

    The new SDK supports all the features of the v2.0 REST API for Form Recognizer. For example, you can train a model with or without labels and extract text, key value pairs and tables from your forms, extract data from receipts with the pre-built receipts service and extract text and tables with the layout service from your documents. You can share your feedback on the SDKs through the SDK Feedback form.

  • Copy Custom Model You can now copy models between regions and subscriptions using the new Copy Custom Model feature. Before invoking the Copy Custom Model API, you must first obtain authorization to copy into the target resource by calling the Copy Authorization operation against the target resource endpoint.

Security improvements

March 2020

New features

  • Value types for labeling You can now specify the types of values you're labeling with the Form Recognizer sample labeling tool. The following value types and variations are currently supported:

    • string
      • default, no-whitespaces, alphanumeric
    • number
      • default, currency
    • date
      • default, dmy, mdy, ymd
    • time
    • integer

    See the Sample labeling tool guide to learn how to use this feature.

  • Table visualization The sample labeling tool now displays tables that were recognized in the document. This feature lets you view the tables that have been recognized and extracted from the document, prior to labeling and analyzing. This feature can be toggled on/off using the layers option.

    The following image is an example of how tables are recognized and extracted:

    Table visualization using the sample labeling tool

    The extracted tables are available in the JSON output under "pageResults".


    Labeling tables isn't supported. If tables are not recognized and extrated automatically, you can only label them as key/value pairs. When labeling tables as key/value pairs, label each cell as a unique value.

Extraction enhancements

This release includes extraction enhancements and accuracy improvements, specifically, the capability to label and extract multiple key/value pairs in the same line of text.

Sample labeling tool is now open-source

The Form Recognizer sample labeling tool is now available as an open-source project. You can integrate it within your solutions and make customer-specific changes to meet your needs.

For more information about the Form Recognizer sample labeling tool, review the documentation available on GitHub.

TLS 1.2 enforcement

TLS 1.2 is now enforced for all HTTP requests to this service. For more information, see Azure Cognitive Services security.

January 2020

This release introduces the Form Recognizer 2.0 (preview). In the sections below, you'll find more information about new features, enhancements, and changes.

New features

  • Custom model

    • Train with labels You can now train a custom model with manually labeled data. This method results in better-performing models and can produce models that work with complex forms or forms containing values without keys.
    • Asynchronous API You can use async API calls to train with and analyze large data sets and files.
    • TIFF file support You can now train with and extract data from TIFF documents.
    • Extraction accuracy improvements
  • Prebuilt receipt model

    • Tip amounts You can now extract tip amounts and other handwritten values.
    • Line item extraction You can extract line item values from receipts.
    • Confidence values You can view the model's confidence for each extracted value.
    • Extraction accuracy improvements
  • Layout extraction You can now use the Layout API to extract text data and table data from your forms.

Custom model API changes

All of the APIs for training and using custom models have been renamed, and some synchronous methods are now asynchronous. The following are major changes:

  • The process of training a model is now asynchronous. You initiate training through the /custom/models API call. This call returns an operation ID, which you can pass into custom/models/{modelID} to return the training results.
  • Key/value extraction is now initiated by the /custom/models/{modelID}/analyze API call. This call returns an operation ID, which you can pass into custom/models/{modelID}/analyzeResults/{resultID} to return the extraction results.
  • Operation IDs for the Train operation are now found in the Location header of HTTP responses, not the Operation-Location header.

Receipt API changes

The APIs for reading sales receipts have been renamed.

  • Receipt data extraction is now initiated by the /prebuilt/receipt/analyze API call. This call returns an operation ID, which you can pass into /prebuilt/receipt/analyzeResults/{resultID} to return the extraction results.

Output format changes

The JSON responses for all API calls have new formats. Some keys and values have been added, removed, or renamed. See the quickstarts for examples of the current JSON formats.

Next steps

Complete a quickstart to get started writing a forms processing app with Form Recognizer in the development language of your choice.

See also