ComposeDocumentModelRequest

Request body to create a composed document model from component document models.

Artificial IntelligenceGenerative AIAI AgentsFoundation ModelsMachine LearningCloudMicrosoft AzureA2A

Properties

Name Type Description
modelId string Unique document model name.
description string Document model description.
classifierId string Custom classifier to split and classify the input file.
split string File splitting behavior.
docTypes object Dictionary mapping supported docTypes to the corresponding document models.
tags object List of key-value tag attributes associated with the document model.
View JSON Schema on GitHub

JSON Schema

azure-ai-foundry-compose-document-model-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ai-foundry/json-schema/azure-ai-foundry-compose-document-model-request-schema.json",
  "title": "ComposeDocumentModelRequest",
  "description": "Request body to create a composed document model from component document models.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ai-foundry-document-models-compose-api-openapi.yml#/components/schemas/ComposeDocumentModelRequest",
  "type": "object",
  "properties": {
    "modelId": {
      "type": "string",
      "description": "Unique document model name.",
      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$"
    },
    "description": {
      "type": "string",
      "description": "Document model description.",
      "maxLength": 4096
    },
    "classifierId": {
      "type": "string",
      "description": "Custom classifier to split and classify the input file."
    },
    "split": {
      "type": "string",
      "description": "File splitting behavior.",
      "default": "none",
      "enum": [
        "auto",
        "none",
        "perPage"
      ],
      "x-ms-enum": {
        "name": "SplitMode",
        "modelAsString": true,
        "values": [
          {
            "name": "auto",
            "value": "auto",
            "description": "Automatically split file into documents."
          },
          {
            "name": "none",
            "value": "none",
            "description": "Treat the entire file as a single document."
          },
          {
            "name": "perPage",
            "value": "perPage",
            "description": "Treat each page in the file as a separate document."
          }
        ]
      }
    },
    "docTypes": {
      "type": "object",
      "description": "Dictionary mapping supported docTypes to the corresponding document models.",
      "additionalProperties": {
        "$ref": "#/$defs/DocumentTypeDetails"
      }
    },
    "tags": {
      "type": "object",
      "description": "List of key-value tag attributes associated with the document model.",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "modelId",
    "classifierId",
    "docTypes"
  ],
  "$defs": {
    "DocumentAnalysisFeature": {
      "type": "string",
      "description": "Document analysis features to enable.",
      "enum": [
        "ocrHighResolution",
        "languages",
        "barcodes",
        "formulas",
        "keyValuePairs",
        "styleFont",
        "queryFields"
      ],
      "x-ms-enum": {
        "name": "DocumentAnalysisFeature",
        "modelAsString": true,
        "values": [
          {
            "name": "ocrHighResolution",
            "value": "ocrHighResolution",
            "description": "Perform OCR at a higher resolution to handle documents with fine print."
          },
          {
            "name": "languages",
            "value": "languages",
            "description": "Enable the detection of the text content language."
          },
          {
            "name": "barcodes",
            "value": "barcodes",
            "description": "Enable the detection of barcodes in the document."
          },
          {
            "name": "formulas",
            "value": "formulas",
            "description": "Enable the detection of mathematical expressions in the document."
          },
          {
            "name": "keyValuePairs",
            "value": "keyValuePairs",
            "description": "Enable the detection of general key value pairs (form fields) in the document."
          },
          {
            "name": "styleFont",
            "value": "styleFont",
            "description": "Enable the recognition of various font styles."
          },
          {
            "name": "queryFields",
            "value": "queryFields",
            "description": "Enable the extraction of additional fields via the queryFields query parameter."
          }
        ]
      }
    },
    "DocumentBuildMode": {
      "type": "string",
      "description": "Custom document model build mode.",
      "enum": [
        "template",
        "neural"
      ],
      "x-ms-enum": {
        "name": "DocumentBuildMode",
        "modelAsString": true,
        "values": [
          {
            "name": "template",
            "value": "template",
            "description": "Target documents with similar visual templates."
          },
          {
            "name": "neural",
            "value": "neural",
            "description": "Support documents with diverse visual templates."
          }
        ]
      }
    },
    "DocumentFieldSchema": {
      "type": "object",
      "description": "Description of the field semantic schema using a JSON Schema style syntax.",
      "properties": {
        "type": {
          "$ref": "#/$defs/DocumentFieldType",
          "description": "Semantic data type of the field value."
        },
        "description": {
          "type": "string",
          "description": "Field description.",
          "maxLength": 4096
        },
        "items": {
          "$ref": "#/$defs/DocumentFieldSchema",
          "description": "Field type schema of each array element."
        },
        "properties": {
          "type": "object",
          "description": "Named sub-fields of the object field.",
          "additionalProperties": {
            "$ref": "#/$defs/DocumentFieldSchema"
          }
        }
      },
      "required": [
        "type"
      ]
    },
    "DocumentFieldType": {
      "type": "string",
      "description": "Semantic data type of the field value.",
      "enum": [
        "string",
        "date",
        "time",
        "phoneNumber",
        "number",
        "integer",
        "selectionMark",
        "countryRegion",
        "signature",
        "array",
        "object",
        "currency",
        "address",
        "boolean",
        "selectionGroup"
      ],
      "x-ms-enum": {
        "name": "DocumentFieldType",
        "modelAsString": true,
        "values": [
          {
            "name": "string",
            "value": "string",
            "description": "Plain text."
          },
          {
            "name": "date",
            "value": "date",
            "description": "Date, normalized to ISO 8601 (YYYY-MM-DD) format."
          },
          {
            "name": "time",
            "value": "time",
            "description": "Time, normalized to ISO 8601 (hh:mm:ss) format."
          },
          {
            "name": "phoneNumber",
            "value": "phoneNumber",
            "description": "Phone number, normalized to E.164 (+{CountryCode}{SubscriberNumber}) format."
          },
          {
            "name": "number",
            "value": "number",
            "description": "Floating point number, normalized to double precision floating point."
          },
          {
            "name": "integer",
            "value": "integer",
            "description": "Integer number, normalized to 64-bit signed integer."
          },
          {
            "name": "selectionMark",
            "value": "selectionMark",
            "description": "Is field selected?"
          },
          {
            "name": "countryRegion",
            "value": "countryRegion",
            "description": "Country/region, normalized to ISO 3166-1 alpha-3 format (ex. USA)."
          },
          {
            "name": "signature",
            "value": "signature",
            "description": "Is signature present?"
          },
          {
            "name": "array",
            "value": "array",
            "description": "List of subfields of the same type."
          },
          {
            "name": "object",
            "value": "object",
            "description": "Named list of subfields of potentially different types."
          },
          {
            "name": "currency",
            "value": "currency",
            "description": "Currency amount with optional currency symbol and unit."
          },
          {
            "name": "address",
            "value": "address",
            "description": "Parsed address."
          },
          {
            "name": "boolean",
            "value": "boolean",
            "description": "Boolean value, normalized to true or false."
          },
          {
            "name": "selectionGroup",
            "value": "selectionGroup",
            "description": "Array of selected string values."
          }
        ]
      }
    },
    "DocumentTypeDetails": {
      "type": "object",
      "description": "Document type info.",
      "properties": {
        "description": {
          "type": "string",
          "description": "Document model description.",
          "maxLength": 4096
        },
        "buildMode": {
          "$ref": "#/$defs/DocumentBuildMode",
          "description": "Custom document model build mode."
        },
        "fieldSchema": {
          "type": "object",
          "description": "Description of the document semantic schema using a JSON Schema style syntax.",
          "additionalProperties": {
            "$ref": "#/$defs/DocumentFieldSchema"
          }
        },
        "fieldConfidence": {
          "type": "object",
          "description": "Estimated confidence for each field.",
          "additionalProperties": {
            "format": "float",
            "type": "number"
          }
        },
        "modelId": {
          "type": "string",
          "description": "Document model to use for analyzing documents with specified type.",
          "maxLength": 64,
          "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._~-]{1,63}$"
        },
        "confidenceThreshold": {
          "type": "number",
          "format": "float",
          "description": "Only perform analysis if docType confidence is above threshold."
        },
        "features": {
          "type": "array",
          "description": "List of optional analysis features.",
          "items": {
            "$ref": "#/$defs/DocumentAnalysisFeature"
          }
        },
        "queryFields": {
          "type": "array",
          "description": "List of additional fields to extract.  Ex. \"NumberOfGuests,StoreNumber\"",
          "items": {
            "type": "string"
          }
        },
        "maxDocumentsToAnalyze": {
          "type": "integer",
          "format": "int32",
          "description": "Maximum number of documents of specified type to analyze.  Default=all."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/azure-ai-foundry-compose-document-model-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.