Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Document AI Ontology API
description: Extract structured data including named fields, tables, barcodes, classifications, and summaries from common document formats, scanned documents, and photos of documents using AI. Also supports handwriting and low quality photos and scans, as well as digital document input. Supports a wide range of languages, and is able to analyze and infer semantic structure from the visual layout for documents.
termsOfService: https://portal.cloudmersive.com/terms-of-service
contact:
name: Cloudmersive
url: https://www.cloudmersive.com
email: support@cloudmersive.com
version: v1
servers:
- url: https://api.cloudmersive.com
security:
- Apikey: []
tags:
- name: Ontology
paths:
/document-ai/document/ontology/taxonomy/list:
get:
tags:
- Ontology
summary: Enumerate the Business Document Taxonomy
description: Returns the full hierarchical business document taxonomy (domains, categories, and subtypes) with display labels and codes.
operationId: GetDocumentTaxonomy
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/DocumentTaxonomyResult'
application/json:
schema:
$ref: '#/components/schemas/DocumentTaxonomyResult'
text/json:
schema:
$ref: '#/components/schemas/DocumentTaxonomyResult'
'401':
description: Unauthorized
content:
text/plain:
schema:
$ref: '#/components/schemas/ProblemDetails'
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
text/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/document-ai/document/ontology/taxonomy:
post:
tags:
- Ontology
summary: Classify a Document into the Business Document Taxonomy using Advanced AI
description: Classify a document into the standard business document taxonomy (a hierarchical set of domain.category.subtype categories such as finance.invoice.vendor_invoice, legal.contract.nda, or logistics.shipping.bill_of_lading) using Advanced AI. Input document formats supported include DOCX, PDF, XLSX, PPTX, EML, MSG, JPG, PNG and WEBP. Consumes 100 API calls per page.
operationId: ClassifyDocumentTaxonomy
parameters:
- in: header
name: includeAnalysisRationale
description: Optional; Include a plain-language rationale for the classification in the response. Default is true.
schema:
type: boolean
- in: header
name: preprocessing
description: Optional; Set the level of image pre-processing to enhance accuracy. Possible values are 'Auto', 'SmoothEdges', 'SmoothEdgesPlus', 'Compatability' and 'None'. Default is Auto.
schema:
type: string
- in: header
name: resultCrossCheck
description: Optional; Set the level of output accuracy cross-checking to perform on the input. Possible values are 'None', 'Advanced', 'Ultra' and 'Hyper'. Default is None. Ultra and Hyper will produce the highest accuracy but at the cost of longer processing times.
schema:
type: string
- in: header
name: maximumPagesProcessed
description: Optional; Limit the number of pages processed
schema:
type: integer
format: int32
- in: header
name: rotateImageDegrees
description: Optional; Rotate the input image before recognition by the specified number of degrees; valid values range from -360 to +360.
schema:
type: number
format: double
- in: header
name: recognitionMode
description: Optional; Recognition mode - Advanced (default) provides the highest accuracy but slower speed, Normal provides faster response but lower accuracy for low quality images, FastPlus provides even faster processing at somewhat reduced accuracy, Fast provides faster processing at reduced accuracy, and FastMini provides the fastest processing at significantly reduced accuracy
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/ClassifyDocumentTaxonomyResult'
application/json:
schema:
$ref: '#/components/schemas/ClassifyDocumentTaxonomyResult'
text/json:
schema:
$ref: '#/components/schemas/ClassifyDocumentTaxonomyResult'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
InputFile:
type: string
description: Input document, or photo of a document, to classify
format: binary
/document-ai/document/ontology/entity:
post:
tags:
- Ontology
summary: Extract Structured Data from a Document using the Business Document Ontology
description: Classify a document into the business document taxonomy (when no classification is supplied), look up the data template for that document type, and use Advanced AI to populate the template with values extracted from the document. Optionally also returns a one-paragraph summary of the document. Input document formats supported include DOCX, PDF, XLSX, PPTX, EML, MSG, JPG, PNG and WEBP. Consumes 100 API calls per page per AI pass; automatic classification and document summarization each add one pass.
operationId: ExtractOntology
parameters:
- in: header
name: ontologyCode
description: Optional; the taxonomy classification of the document (for example, finance.invoice.vendor_invoice). If omitted, the document is classified automatically first.
schema:
type: string
- in: header
name: includeAnalysisRationale
description: Optional; include a plain-language rationale for the automatic classification in the response. Default is true.
schema:
type: boolean
- in: header
name: includeSummary
description: Optional; also summarize the document and return the summary in DocumentSummary. Default is true.
schema:
type: boolean
- in: header
name: preprocessing
description: Optional; Set the level of image pre-processing to enhance accuracy. Possible values are 'Auto', 'SmoothEdges', 'SmoothEdgesPlus', 'Compatability' and 'None'. Default is Auto.
schema:
type: string
- in: header
name: resultCrossCheck
description: Optional; Set the level of output accuracy cross-checking to perform during automatic classification. Possible values are 'None', 'Advanced', 'Ultra' and 'Hyper'. Default is None.
schema:
type: string
- in: header
name: maximumPagesProcessed
description: Optional; Limit the number of pages processed
schema:
type: integer
format: int32
- in: header
name: rotateImageDegrees
description: Optional; Rotate the input image before recognition by the specified number of degrees; valid values range from -360 to +360.
schema:
type: number
format: double
- in: header
name: recognitionMode
description: Optional; Recognition mode - Advanced (default) provides the highest accuracy but slower speed, Normal provides faster response but lower accuracy for low quality images, FastPlus provides even faster processing at somewhat reduced accuracy, Fast provides faster processing at reduced accuracy, and FastMini provides the fastest processing at significantly reduced accuracy
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
$ref: '#/components/schemas/OntologyExtractionResult'
application/json:
schema:
$ref: '#/components/schemas/OntologyExtractionResult'
text/json:
schema:
$ref: '#/components/schemas/OntologyExtractionResult'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
InputFile:
type: string
description: Input document, or photo of a document, to extract data from
format: binary
components:
schemas:
ClassifyDocumentTaxonomyResult:
description: Result of classifying a document against the business document taxonomy
type: object
properties:
Successful:
description: True if successful, false otherwise
type: boolean
DocumentCategoryResult:
description: Taxonomy category applied to the document, in domain.category.subtype form (for example, finance.invoice.vendor_invoice). If a category could not be confidently identified, then "unknown._unknown._unknown" will be used.
type: string
ConfidenceScore:
format: double
description: Confidence score between 0.0 and 1.0, where values > 0.8 indicate high confidence
type: number
AnalysisRationale:
description: Plain-language rationale explaining why this category was selected; populated when IncludeAnalysisRationale is enabled
type: string
additionalProperties: false
DocumentTaxonomyResult:
description: The business document taxonomy, as nested domains, categories, and subtypes
type: object
properties:
Successful:
description: True if successful, false otherwise
type: boolean
Domains:
description: Top-level domains of the taxonomy (for example, finance, legal, logistics)
type: array
items:
$ref: '#/components/schemas/TaxonomyDomainNode'
additionalProperties: false
ProblemDetails:
type: object
properties:
type:
type: string
title:
type: string
status:
format: int32
type: integer
detail:
type: string
instance:
type: string
additionalProperties: {}
TaxonomyDomainNode:
description: A top-level domain of the business document taxonomy
type: object
properties:
Code:
description: Domain code, the first segment of an ontology code (for example, finance)
type: string
Label:
description: Human-readable display label (for example, Finance)
type: string
Categories:
description: Categories within this domain
type: array
items:
$ref: '#/components/schemas/TaxonomyCategoryNode'
additionalProperties: false
TaxonomySubtypeNode:
description: A document subtype (a full taxonomy leaf code)
type: object
properties:
Code:
description: The full ontology code (for example, finance.invoice.vendor_invoice)
type: string
Label:
description: Human-readable display label (the subtype description, for example, "Vendor / supplier invoice (AP)")
type: string
additionalProperties: false
OntologyExtractionResult:
description: Result of extracting structured data from a document using its business document ontology
type: object
properties:
Successful:
description: True if a populated ontology was produced, false otherwise
type: boolean
DocumentSummary:
description: One-paragraph plain-language summary of the document; populated when IncludeSummary is enabled
type: string
OntologyCode:
description: The taxonomy category applied to the document, in domain.category.subtype form (for example, finance.invoice.vendor_invoice)
type: string
OntologyTitle:
description: Human-readable title of the document type (for example, "Vendor Invoice")
type: string
WasAutoClassified:
description: True if the category was determined automatically because no classification was supplied in the request
type: boolean
ClassificationConfidenceScore:
format: double
description: Classification confidence score between 0.0 and 1.0; populated only when the category was determined automatically
type: number
AnalysisRationale:
description: Plain-language rationale for the classification; populated when the category was determined automatically and IncludeAnalysisRationale is enabled
type: string
OntologyTemplateFound:
description: True if a data template was available for the document type
type: boolean
PopulatedOntology:
description: The extracted data as a JSON object of field values (field name to value; nested objects for object fields, arrays of objects for array fields). Fields not found in the document are null. Null when no template was available for the document type.
additionalProperties: false
TaxonomyCategoryNode:
description: A category within a domain (the first two segments of an ontology code)
type: object
properties:
Code:
description: Category code, the first two segments of an ontology code (for example, finance.invoice)
type: string
Label:
description: Human-readable display label (for example, Invoices)
type: string
Subtypes:
description: Document subtypes within this category
type: array
items:
$ref: '#/components/schemas/TaxonomySubtypeNode'
additionalProperties: false
securitySchemes:
Apikey:
type: apiKey
name: Apikey
in: header
description: API Key Authentication
x-provenance:
method: harvested
publisher: Cloudmersive
source: https://api.cloudmersive.com/document-ai/docs/v1/swagger
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)