{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/docupanda/main/json-schema/docupanda-standardize-v2-batch-request-schema.json",
  "title": "StandardizeV2BatchRequest",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/docupanda-docupipe-openapi.yml#/components/schemas/StandardizeV2BatchRequest",
  "properties": {
    "documentIds": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Document IDs",
      "description": "List of document IDs to be standardized, up to 100 per batch."
    },
    "schemaId": {
      "type": "string",
      "title": "Schema ID",
      "description": "Unique identifier of the schema to be used for standardization - if not provided, one will be inferred."
    },
    "guidelines": {
      "type": "string",
      "title": "Guidelines",
      "description": "Guidelines to apply to the schema when standardizing. If this is provided, it will override the schema guidelines."
    },
    "useMetadata": {
      "type": "boolean",
      "title": "Use Metadata",
      "description": "Whether to use metadata during standardization.",
      "default": false
    },
    "displayMode": {
      "$ref": "#/$defs/DisplayMode",
      "title": "Display Mode",
      "description": "*Advanced Feature*\nMode of display to run. The options are:\n`auto`: AI decides how to display the document (default)\n`spatial`: Display text spatially, as it appears in the document\n`sections`: Display text from top to bottom as sections, with tables appearing as markdown\n`image`: Display as an image, accompanied by section view",
      "default": "auto"
    },
    "splitMode": {
      "$ref": "#/$defs/SplitMode",
      "title": "Split Mode",
      "description": "*Advanced Feature*\nMode of splitting to run. Splitting is used to extract array fields efficiently. The options are:\n`auto`: AI decides how to split the document (default)\n`never`: Never split the document (this could lead to errors or poor performance for large documents)\n`all`: Split the document into individual pages",
      "default": "auto"
    },
    "effortLevel": {
      "$ref": "#/$defs/EffortLevel",
      "title": "Effort Level",
      "description": "*Advanced Feature*\nLevel of effort to run. The options are:\n`standard`: Standard effort level (default)\n`high`: High effort level, for more difficult documents",
      "default": "standard"
    },
    "stdVersion": {
      "$ref": "#/$defs/StdVersionV2",
      "title": "Standardization Version",
      "description": "Version of the standardization job. Options: 2.0, 2.1, 2.2 (default, stable), 2.3 (experimental, higher quality but may have runtime instability).",
      "default": 2.2
    },
    "pages": {
      "items": {
        "items": {
          "type": "integer"
        },
        "type": "array"
      },
      "type": "array",
      "title": "Target Page Ranges",
      "description": "*Advanced Feature*\nFor every document, list the zero indexed page numbers to standardize. If omitted, the entire document is standardized. For XLS/XLSX files, each number selects a worksheet by its zero indexed position. Page targeting is ignored for CSV, TXT, XML, and JSON files, which are always standardized in full."
    },
    "transformationIds": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "title": "Transformation IDs",
      "description": "Transformations to apply, in order, to each finished standardization. The result is stored as transformedData next to the original data, and each run costs 1 credit."
    },
    "timeout": {
      "type": "integer",
      "title": "Timeout",
      "description": "The job timeout (in seconds) for webhook error reporting"
    }
  },
  "type": "object",
  "required": [
    "documentIds"
  ],
  "$defs": {
    "DisplayMode": {
      "type": "string",
      "enum": [
        "auto",
        "spatial",
        "sections",
        "image"
      ],
      "title": "DisplayMode"
    },
    "EffortLevel": {
      "type": "string",
      "enum": [
        "standard",
        "high",
        "extended"
      ],
      "title": "EffortLevel"
    },
    "SplitMode": {
      "type": "string",
      "enum": [
        "auto",
        "all",
        "never"
      ],
      "title": "SplitMode"
    },
    "StdVersionV2": {
      "type": "number",
      "enum": [
        2,
        2.1,
        2.2,
        2.3
      ],
      "title": "StdVersionV2"
    }
  }
}