swagger: '2.0'
info:
title: Document Intelligence (formerly Form Recognizer) DocumentClassifiers API
version: '2024-11-30'
description: Extracts content, layout, and structured data from documents.
x-typespec-generated:
- emitter: '@azure-tools/typespec-autorest'
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- ApiKeyAuth: []
- OAuth2Auth:
- https://cognitiveservices.azure.com/.default
tags:
- name: DocumentClassifiers
paths:
/documentClassifiers:
get:
operationId: DocumentClassifiers_ListClassifiers
description: List all document classifiers.
parameters:
- $ref: '#/parameters/Azure.Core.Foundations.ApiVersionParameter'
- $ref: '#/parameters/Azure.Core.ClientRequestIdHeader'
responses:
'200':
description: The request has succeeded.
schema:
$ref: '#/definitions/PagedDocumentClassifierDetails'
headers:
x-ms-client-request-id:
type: string
format: uuid
description: An opaque, globally-unique, client-generated string identifier for the request.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DocumentIntelligenceErrorResponse'
x-ms-examples:
Get Document Classifiers:
$ref: ./examples/GetDocumentClassifiers.json
x-ms-pageable:
nextLinkName: nextLink
tags:
- DocumentClassifiers
/documentClassifiers/{classifierId}:
get:
operationId: DocumentClassifiers_GetClassifier
description: Gets detailed document classifier information.
parameters:
- $ref: '#/parameters/Azure.Core.Foundations.ApiVersionParameter'
- name: classifierId
in: path
description: Unique document classifier name.
required: true
type: string
maxLength: 64
pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$
- $ref: '#/parameters/Azure.Core.ClientRequestIdHeader'
responses:
'200':
description: The request has succeeded.
schema:
$ref: '#/definitions/DocumentClassifierDetails'
headers:
x-ms-client-request-id:
type: string
format: uuid
description: An opaque, globally-unique, client-generated string identifier for the request.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DocumentIntelligenceErrorResponse'
x-ms-examples:
Get Document Classifier:
$ref: ./examples/GetDocumentClassifier.json
tags:
- DocumentClassifiers
delete:
operationId: DocumentClassifiers_DeleteClassifier
description: Deletes document classifier.
parameters:
- $ref: '#/parameters/Azure.Core.Foundations.ApiVersionParameter'
- name: classifierId
in: path
description: Unique document classifier name.
required: true
type: string
maxLength: 64
pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$
- $ref: '#/parameters/Azure.Core.ClientRequestIdHeader'
responses:
'204':
description: 'There is no content to send for this request, but the headers may be useful. '
headers:
x-ms-client-request-id:
type: string
format: uuid
description: An opaque, globally-unique, client-generated string identifier for the request.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DocumentIntelligenceErrorResponse'
x-ms-examples:
Delete Document Classifier:
$ref: ./examples/DeleteDocumentClassifier.json
tags:
- DocumentClassifiers
/documentClassifiers/{classifierId}:analyze:
post:
operationId: DocumentClassifiers_ClassifyDocumentFromStream
description: Classifies document with document classifier.
consumes:
- application/octet-stream
- application/pdf
- image/jpeg
- image/png
- image/tiff
- image/bmp
- image/heif
- text/html
- application/vnd.openxmlformats-officedocument.wordprocessingml.document
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- application/vnd.openxmlformats-officedocument.presentationml.presentation
parameters:
- $ref: '#/parameters/Azure.Core.Foundations.ApiVersionParameter'
- $ref: '#/parameters/DocumentClassifierAnalyzeRequestParams.classifierId'
- $ref: '#/parameters/DocumentClassifierAnalyzeRequestParams.stringIndexType'
- $ref: '#/parameters/DocumentClassifierAnalyzeRequestParams.split'
- $ref: '#/parameters/DocumentClassifierAnalyzeRequestParams.pages'
- $ref: '#/parameters/AnalyzeFromStreamRequestParams.input'
responses:
'202':
description: The request has been accepted for processing, but processing has not yet completed.
headers:
Operation-Location:
type: string
format: uri
description: The location of an instance of AnalyzeOperation
Retry-After:
type: integer
format: int32
description: The Retry-After header can indicate how long the client should wait before polling the operation status.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DocumentIntelligenceErrorResponse'
x-ms-examples:
Classify Document from Url:
$ref: ./examples/ClassifyDocument_Stream.json
x-ms-long-running-operation: true
tags:
- DocumentClassifiers
/documentClassifiers/{classifierId}:copyTo:
post:
operationId: DocumentClassifiers_CopyClassifierTo
description: Copies document classifier to the target resource, region, and classifierId.
parameters:
- $ref: '#/parameters/Azure.Core.Foundations.ApiVersionParameter'
- name: classifierId
in: path
description: Unique document classifier name.
required: true
type: string
maxLength: 64
pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$
- name: copyToRequest
in: body
description: Copy to request parameters.
required: true
schema:
$ref: '#/definitions/ClassifierCopyAuthorization'
responses:
'202':
description: The request has been accepted for processing, but processing has not yet completed.
headers:
Operation-Location:
type: string
format: uri
description: The location of an instance of DocumentClassifierCopyToOperationDetails
Retry-After:
type: integer
format: int32
description: The Retry-After header can indicate how long the client should wait before polling the operation status.
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DocumentIntelligenceErrorResponse'
x-ms-examples:
Copy Document Classifier To:
$ref: ./examples/CopyDocumentClassifierTo.json
x-ms-long-running-operation: true
tags:
- DocumentClassifiers
/documentClassifiers/{classifierId}/analyzeResults/{resultId}:
get:
operationId: DocumentClassifiers_GetClassifyResult
description: Gets the result of document classifier.
parameters:
- $ref: '#/parameters/Azure.Core.Foundations.ApiVersionParameter'
- name: classifierId
in: path
description: Unique document classifier name.
required: true
type: string
maxLength: 64
pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$
- name: resultId
in: path
description: Analyze operation result ID.
required: true
type: string
format: uuid
responses:
'200':
description: The request has succeeded.
schema:
$ref: '#/definitions/AnalyzeOperation'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/DocumentIntelligenceErrorResponse'
x-ms-examples:
Get Classify Document Result:
$ref: ./examples/GetClassifyDocumentResult.json
tags:
- DocumentClassifiers
definitions:
ParagraphRole:
type: string
description: Semantic role of the paragraph.
enum:
- pageHeader
- pageFooter
- pageNumber
- title
- sectionHeading
- footnote
- formulaBlock
x-ms-enum:
name: ParagraphRole
modelAsString: true
values:
- name: pageHeader
value: pageHeader
description: Text near the top edge of the page.
- name: pageFooter
value: pageFooter
description: Text near the bottom edge of the page.
- name: pageNumber
value: pageNumber
description: Page number.
- name: title
value: title
description: Top-level title describing the entire document.
- name: sectionHeading
value: sectionHeading
description: Sub heading describing a section of the document.
- name: footnote
value: footnote
description: A note usually placed after the main content on a page.
- name: formulaBlock
value: formulaBlock
description: A block of formulas, often with shared alignment.
DocumentIntelligenceErrorResponse:
type: object
description: Error response object.
properties:
error:
$ref: '#/definitions/DocumentIntelligenceError'
description: Error info.
required:
- error
DocumentSelectionMarkState:
type: string
description: State of the selection mark.
enum:
- selected
- unselected
x-ms-enum:
name: DocumentSelectionMarkState
modelAsString: true
values:
- name: selected
value: selected
description: 'The selection mark is selected, often indicated by a check ✓ or cross X inside
the selection mark.'
- name: unselected
value: unselected
description: The selection mark is not selected.
DocumentKeyValueElement:
type: object
description: An object representing the field key or value in a key-value pair.
properties:
content:
type: string
description: Concatenated content of the key-value element in reading order.
boundingRegions:
type: array
description: Bounding regions covering the key-value element.
items:
$ref: '#/definitions/BoundingRegion'
spans:
type: array
description: Location of the key-value element in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
required:
- content
- spans
DocumentLine:
type: object
description: 'A content line object consisting of an adjacent sequence of content elements,
such as words and selection marks.'
properties:
content:
type: string
description: Concatenated content of the contained elements in reading order.
polygon:
type: array
description: 'Bounding polygon of the line, with coordinates specified relative to the
top-left of the page. The numbers represent the x, y values of the polygon
vertices, clockwise from the left (-180 degrees inclusive) relative to the
element orientation.'
items:
type: number
format: float
spans:
type: array
description: Location of the line in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
required:
- content
- spans
DocumentLanguage:
type: object
description: An object representing the detected language for a given text span.
properties:
locale:
type: string
description: 'Detected language. Value may an ISO 639-1 language code (ex. "en", "fr")
or BCP 47 language tag (ex. "zh-Hans").'
spans:
type: array
description: 'Location of the text elements in the concatenated content the language applies
to.'
items:
$ref: '#/definitions/DocumentSpan'
confidence:
type: number
format: float
description: Confidence of correctly identifying the language.
minimum: 0
maximum: 1
required:
- locale
- spans
- confidence
DocumentFootnote:
type: object
description: A footnote object describing a table or figure.
properties:
content:
type: string
description: Content of the footnote.
boundingRegions:
type: array
description: Bounding regions covering the footnote.
items:
$ref: '#/definitions/BoundingRegion'
spans:
type: array
description: Location of the footnote in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
elements:
type: array
description: Child elements of the footnote.
items:
$ref: '#/definitions/DocumentElement'
required:
- content
- spans
BoundingRegion:
type: object
description: Bounding polygon on a specific page of the input.
properties:
pageNumber:
type: integer
format: int32
description: 1-based page number of page containing the bounding region.
minimum: 1
polygon:
type: array
description: 'Bounding polygon on the page, or the entire page if not specified.
Coordinates specified relative to the top-left of the page. The numbers
represent the x, y values of the polygon vertices, clockwise from the left
(-180 degrees inclusive) relative to the element orientation.'
items:
type: number
format: float
required:
- pageNumber
- polygon
DocumentTableCell:
type: object
description: An object representing the location and content of a table cell.
properties:
kind:
type: string
description: Table cell kind.
default: content
enum:
- content
- rowHeader
- columnHeader
- stubHead
- description
x-ms-enum:
name: DocumentTableCellKind
modelAsString: true
values:
- name: content
value: content
description: Contains the main content/data.
- name: rowHeader
value: rowHeader
description: Describes the content of the row.
- name: columnHeader
value: columnHeader
description: Describes the content of the column.
- name: stubHead
value: stubHead
description: Describes the row headers, usually located at the top left corner of a table.
- name: description
value: description
description: Describes the content in (parts of) the table.
rowIndex:
type: integer
format: int32
description: Row index of the cell.
columnIndex:
type: integer
format: int32
description: Column index of the cell.
rowSpan:
type: integer
format: int32
description: Number of rows spanned by this cell.
default: 1
minimum: 1
columnSpan:
type: integer
format: int32
description: Number of columns spanned by this cell.
default: 1
minimum: 1
content:
type: string
description: Concatenated content of the table cell in reading order.
boundingRegions:
type: array
description: Bounding regions covering the table cell.
items:
$ref: '#/definitions/BoundingRegion'
spans:
type: array
description: Location of the table cell in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
elements:
type: array
description: Child elements of the table cell.
items:
$ref: '#/definitions/DocumentElement'
required:
- rowIndex
- columnIndex
- content
- spans
CurrencyValue:
type: object
description: Currency field value.
properties:
amount:
type: number
format: double
description: Currency amount.
currencySymbol:
type: string
description: Currency symbol label, if any.
currencyCode:
type: string
description: Resolved currency code (ISO 4217), if any.
required:
- amount
DocumentCaption:
type: object
description: A caption object describing a table or figure.
properties:
content:
type: string
description: Content of the caption.
boundingRegions:
type: array
description: Bounding regions covering the caption.
items:
$ref: '#/definitions/BoundingRegion'
spans:
type: array
description: Location of the caption in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
elements:
type: array
description: Child elements of the caption.
items:
$ref: '#/definitions/DocumentElement'
required:
- content
- spans
DocumentSelectionMark:
type: object
description: 'A selection mark object representing check boxes, radio buttons, and other
elements indicating a selection.'
properties:
state:
$ref: '#/definitions/DocumentSelectionMarkState'
description: State of the selection mark.
polygon:
type: array
description: 'Bounding polygon of the selection mark, with coordinates specified relative
to the top-left of the page. The numbers represent the x, y values of the
polygon vertices, clockwise from the left (-180 degrees inclusive) relative
to the element orientation.'
items:
type: number
format: float
span:
$ref: '#/definitions/DocumentSpan'
description: Location of the selection mark in the reading order concatenated content.
confidence:
type: number
format: float
description: Confidence of correctly extracting the selection mark.
minimum: 0
maximum: 1
required:
- state
- span
- confidence
DocumentIntelligenceWarning:
type: object
description: The error object.
properties:
code:
type: string
description: One of a server-defined set of warning codes.
message:
type: string
description: A human-readable representation of the warning.
target:
type: string
description: The target of the error.
required:
- code
- message
DocumentField:
type: object
description: An object representing the content and location of a field value.
properties:
type:
$ref: '#/definitions/DocumentFieldType'
description: Data type of the field value.
valueString:
type: string
description: String value.
valueDate:
type: string
format: date
description: Date value in YYYY-MM-DD format (ISO 8601).
valueTime:
type: string
format: time
description: Time value in hh:mm:ss format (ISO 8601).
valuePhoneNumber:
type: string
description: Phone number value in E.164 format (ex. +19876543210).
valueNumber:
type: number
format: double
description: Floating point value.
valueInteger:
type: integer
format: int64
description: Integer value.
valueSelectionMark:
$ref: '#/definitions/DocumentSelectionMarkState'
description: Selection mark value.
valueSignature:
$ref: '#/definitions/DocumentSignatureType'
description: Presence of signature.
valueCountryRegion:
type: string
description: 3-letter country code value (ISO 3166-1 alpha-3).
valueArray:
type: array
description: Array of field values.
items:
$ref: '#/definitions/DocumentField'
valueObject:
type: object
description: Dictionary of named field values.
additionalProperties:
$ref: '#/definitions/DocumentField'
valueCurrency:
$ref: '#/definitions/CurrencyValue'
description: Currency value.
valueAddress:
$ref: '#/definitions/AddressValue'
description: Address value.
valueBoolean:
type: boolean
description: Boolean value.
valueSelectionGroup:
type: array
description: Selection group value.
items:
type: string
content:
type: string
description: Field content.
boundingRegions:
type: array
description: Bounding regions covering the field.
items:
$ref: '#/definitions/BoundingRegion'
spans:
type: array
description: Location of the field in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
confidence:
type: number
format: float
description: Confidence of correctly extracting the field.
minimum: 0
maximum: 1
required:
- type
DocumentSignatureType:
type: string
description: Presence of signature.
enum:
- signed
- unsigned
x-ms-enum:
name: DocumentSignatureType
modelAsString: true
values:
- name: signed
value: signed
description: A signature is detected.
- name: unsigned
value: unsigned
description: No signatures are detected.
AddressValue:
type: object
description: Address field value.
properties:
houseNumber:
type: string
description: House or building number.
poBox:
type: string
description: Post office box number.
road:
type: string
description: Street name.
city:
type: string
description: Name of city, town, village, etc.
state:
type: string
description: First-level administrative division.
postalCode:
type: string
description: Postal code used for mail sorting.
countryRegion:
type: string
description: Country/region.
streetAddress:
type: string
description: Street-level address, excluding city, state, countryRegion, and postalCode.
unit:
type: string
description: Apartment or office number
cityDistrict:
type: string
description: 'Districts or boroughs within a city, such as Brooklyn in New York City or City
of Westminster in London.'
stateDistrict:
type: string
description: Second-level administrative division used in certain locales.
suburb:
type: string
description: Unofficial neighborhood name, like Chinatown.
house:
type: string
description: Build name, such as World Trade Center.
level:
type: string
description: Floor number, such as 3F.
DocumentElement:
type: string
description: 'An JSON pointer referencing an element of the document, such as paragraph,
table, section, etc.'
ContentSourceKind:
type: string
description: Type of content source.
enum:
- url
- base64
- azureBlob
- azureBlobFileList
x-ms-enum:
name: ContentSourceKind
modelAsString: true
values:
- name: url
value: url
description: Content at a specific URL.
- name: base64
value: base64
description: Content represented via Base64 encoding.
- name: azureBlob
value: azureBlob
description: Files in a path within an Azure Blob Storage container.
- name: azureBlobFileList
value: azureBlobFileList
description: A file list specifying individual files in an Azure Blob Storage container.
LengthUnit:
type: string
description: The unit used by the width, height, and polygon properties. For images, the unit is "pixel". For PDF, the unit is "inch".
enum:
- pixel
- inch
x-ms-enum:
name: LengthUnit
modelAsString: true
values:
- name: pixel
value: pixel
description: Length unit for image files.
- name: inch
value: inch
description: Length unit for PDF files.
AzureBlobFileListContentSource:
type: object
description: File list in Azure Blob Storage.
properties:
containerUrl:
type: string
format: uri
description: Azure Blob Storage container URL.
fileList:
type: string
description: Path to a JSONL file within the container specifying a subset of documents.
required:
- containerUrl
- fileList
DocumentFormula:
type: object
description: A formula object.
properties:
kind:
$ref: '#/definitions/DocumentFormulaKind'
description: Formula kind.
value:
type: string
description: LaTex expression describing the formula.
polygon:
type: array
description: 'Bounding polygon of the formula, with coordinates specified relative to the
top-left of the page. The numbers represent the x, y values of the polygon
vertices, clockwise from the left (-180 degrees inclusive) relative to the
element orientation.'
items:
type: number
format: float
span:
$ref: '#/definitions/DocumentSpan'
description: Location of the formula in the reading order concatenated content.
confidence:
type: number
format: float
description: Confidence of correctly extracting the formula.
minimum: 0
maximum: 1
required:
- kind
- value
- span
- confidence
ClassifierDocumentTypeDetails:
type: object
description: Classifier document type info.
properties:
sourceKind:
$ref: '#/definitions/ContentSourceKind'
description: Type of training data source.
azureBlobSource:
$ref: '#/definitions/AzureBlobContentSource'
description: 'Azure Blob Storage location containing the training data for a classifier
document type. Either azureBlobSource or azureBlobFileListSource must be
specified.'
azureBlobFileListSource:
$ref: '#/definitions/AzureBlobFileListContentSource'
description: 'Azure Blob Storage file list specifying the training data for a classifier
document type. Either azureBlobSource or azureBlobFileListSource must be
specified.'
AnalyzeOperation:
type: object
description: Status and result of the analyze operation.
properties:
status:
$ref: '#/definitions/DocumentIntelligenceOperationStatus'
description: Operation status. notStarted, running, succeeded, or failed
createdDateTime:
type: string
format: date-time
description: Date and time (UTC) when the analyze operation was submitted.
lastUpdatedDateTime:
type: string
format: date-time
description: Date and time (UTC) when the status was last updated.
error:
$ref: '#/definitions/DocumentIntelligenceError'
description: Encountered error during document analysis.
analyzeResult:
$ref: '#/definitions/AnalyzeResult'
description: Document analysis result.
required:
- status
- createdDateTime
- lastUpdatedDateTime
DocumentPage:
type: object
description: Content and layout elements extracted from a page from the input.
properties:
pageNumber:
type: integer
format: int32
description: 1-based page number in the input document.
minimum: 1
angle:
type: number
format: float
description: 'The general orientation of the content in clockwise direction, measured in
degrees between (-180, 180].'
maximum: 180
width:
type: number
format: float
description: The width of the image/PDF in pixels/inches, respectively.
minimum: 0
height:
type: number
format: float
description: The height of the image/PDF in pixels/inches, respectively.
minimum: 0
unit:
$ref: '#/definitions/LengthUnit'
description: 'The unit used by the width, height, and polygon properties. For images, the
unit is "pixel". For PDF, the unit is "inch".'
spans:
type: array
description: Location of the page in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
words:
type: array
description: Extracted words from the page.
items:
$ref: '#/definitions/DocumentWord'
selectionMarks:
type: array
description: Extracted selection marks from the page.
items:
$ref: '#/definitions/DocumentSelectionMark'
lines:
type: array
description: 'Extracted lines from the page, potentially containing both textual and visual
elements.'
items:
$ref: '#/definitions/DocumentLine'
barcodes:
type: array
description: Extracted barcodes from the page.
items:
$ref: '#/definitions/DocumentBarcode'
formulas:
type: array
description: Extracted formulas from the page.
items:
$ref: '#/definitions/DocumentFormula'
required:
- pageNumber
- spans
DocumentParagraph:
type: object
description: 'A paragraph object consisting with contiguous lines generally with common
alignment and spacing.'
properties:
role:
$ref: '#/definitions/ParagraphRole'
description: Semantic role of the paragraph.
content:
type: string
description: Concatenated content of the paragraph in reading order.
boundingRegions:
type: array
description: Bounding regions covering the paragraph.
items:
$ref: '#/definitions/BoundingRegion'
spans:
type: array
description: Location of the paragraph in the reading order concatenated content.
items:
$ref: '#/definitions/DocumentSpan'
required:
- content
- spans
DocumentIntelligenceOperationStatus:
type: string
description: Operation status.
enum:
- notStarted
- running
- failed
- succeeded
- canceled
- skipped
x-ms-enum:
name: DocumentIntelligenceOperationStatus
modelAsString: true
values:
- name: notStarted
value: notStarted
description: The operation has not started yet.
- name: running
value: running
description: The operation is in progress.
- name: failed
value: failed
description: The operation has failed.
- name: succeeded
value: succeeded
description: The operation has succeeded.
- name: canceled
value: canceled
description: The operation has been canceled.
- name: skipped
value: skipped
description: The operation has been skipped.
DocumentSpan:
type: object
description: 'Contiguous region of the concatenated content property, specified as an offset
and length.'
properties:
offset:
type: integer
format: int32
description: Zero-based index of the content represented by the span.
minimum: 0
length:
type: integer
format: int32
description: Number of characters in the content represented by the span.
minimum: 0
required:
- offset
- length
DocumentStyle:
type: object
description: An object representing observed text styles.
properties:
isHandwritten:
type: boolean
description: Is content handwritten?
similarFontFamily:
type: string
description: 'Visually most similar font
# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/azure-document-intelligence/refs/heads/main/openapi/azure-document-intelligence-documentclassifiers-api-openapi.yml