> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.eyelevel.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.eyelevel.ai/_mcp/server.

# validate

POST https://api.groundx.ai/api/v1/workflow/validate
Content-Type: application/json

Validate a workflow definition without creating or modifying anything — a distinct operation from create/update. Accepts the same request body as workflow create, including the `yaml` field (authored workflow YAML source, compiled server-side). Returns the compiled workflow; validation failures return the same structured errors as create.


Reference: https://docs.eyelevel.ai/reference/api-reference/workflows/validate

## Authentication

- `X-API-Key` header (required) — API Key authentication via header

## Request

### Body (application/json)

This endpoint expects a WorkflowRequest.

- `chunkStrategy` (enum, optional)
  - Allowed values: `element`, `size`
- `name` (string, optional) — The name of the workflow being created.
- `yaml` (string, optional) — Workflow YAML. GroundX validates it and creates the workflow settings. When yaml is supplied, omit extract, customSteps, outputRoutes, leafFields, and steps. A v1 workflow declares extraction_policy_version, workflow.custom_steps, workflow.agent_chain, a workflow_step and role for each group, and a workflow_output_key for each routed field. repeats: true declares an array of records; unique_attrs names fields used to identify the same record. For related lists, match_attrs names the shared fields and passthrough.from names the parent group. String matching ignores capitalization and surrounding whitespace. Blank or missing values do not match. When several parents match, GroundX uses the first. Group names and workflow_output_key values become output names.
- `extract` (WorkflowRequestExtract, optional) — Extract agent definitions.
- `template` (map from string to string, optional) — Workflow-level prompt template values used by fixed and custom workflow step prompts.
- `sectionStrategy` (enum, optional)
  - Allowed values: `chunks`, `page`
- `steps` (WorkflowSteps, optional) — A collection of workflow steps
- `customSteps` (list of CustomWorkflowStep, optional) — Workflow-level custom extraction steps. Legacy fixed steps remain under steps.
- `outputRoutes` (list of CustomWorkflowOutputRoute, optional) — Custom output routes. Each record must have exactly one matching leafFields record on finalPath, workflowGroup, workflowField, stepName, level, and outputKey.
- `leafFields` (list of CustomWorkflowLeafField, optional) — Custom leaf-field metadata used to validate route integrity and executable-step field counts.

## Response

### 200

Validation success

- `workflow` (WorkflowDetail, required) — Workflow information

## Types

### WorkflowRequestExtract

Extract agent definitions.

### WorkflowSteps

A collection of workflow steps

- `chunk-instruct` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `chunk-keys` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `chunk-summary` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `doc-keys` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `doc-summary` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `search-query` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `sect-instruct` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `sect-keys` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `sect-summary` (WorkflowStep, optional, nullable) — Configurations for an agent, including LLM information and prompts

### CustomWorkflowStep

Workflow-level custom extraction step definition. Fixed workflow steps remain under steps.

- `name` (string, required) — Canonical lower-snake custom step name. Names are globally unique and cannot collide with fixed step names or reserved workflow metadata names.
- `level` (enum, required) — Output level for the custom step.
  - Allowed values: `chunk`, `section`, `document`
- `kind` (enum, required) — Output kind for the custom step. Valid combinations are chunk/section with instruct, keys, or summary; document with keys or summary.
  - Allowed values: `instruct`, `keys`, `summary`
- `config` (CustomWorkflowStepConfig, optional) — Custom workflow step config keyed by element type. Element configs omit fixed-output field; custom output storage is derived from level, kind, outputRoutes, and leafFields.
- `requiredTemplateKeys` (list of string, optional) — Workflow template keys required by this custom step. Keys follow the same normalization and validation rules as template keys.

### CustomWorkflowOutputRoute

Public custom output route metadata. Each route must have exactly one matching leafFields record on finalPath, workflowGroup, workflowField, stepName, level, and outputKey.

- `workflowGroup` (string, required) — Workflow extraction group that owns the routed field.
- `workflowField` (string, required) — Workflow extraction field routed to the final JSON path.
- `finalPath` (string, required) — RFC 6901 JSON Pointer to the final JSON field. Repeated item paths use a literal * segment as a schema wildcard; for example, the pointer with segments fees, *, and amount represents a repeated item amount.
- `stepName` (string, required) — Canonical custom step name that produced the output.
- `level` (enum, required)
  - Allowed values: `chunk`, `section`, `document`
- `outputMap` (enum, required) — Custom X-Ray output map that stores this route's values. The map must match level.
  - Allowed values: `customChunkOutputs`, `customSectionOutputs`, `customDocumentOutputs`
- `outputKey` (string, required) — Lower-snake output key for this custom step output.
- `readbackPath` (string, required) — Canonical non-page X-Ray/readback path template for this routed output.

### CustomWorkflowLeafField

Public custom leaf-field metadata used for route integrity and executable-step field-count validation.

- `finalPath` (string, required) — RFC 6901 JSON Pointer to the prompted final schema leaf. Repeated item paths use a literal * segment and count once per prompted schema leaf.
- `workflowGroup` (string, required)
- `workflowField` (string, required)
- `stepName` (string, required)
- `level` (enum, required)
  - Allowed values: `chunk`, `section`, `document`
- `outputKey` (string, required)
- `fieldType` (string, required) — Final schema field type for this prompted leaf.
- `isRepeated` (boolean, required) — Whether this leaf belongs to a repeated/list field definition.
- `repetitionScope` (enum, required) — none is valid only for non-repeated leaves; field counts a repeated value as one prompted leaf; item uses literal * path segments for prompted item leaves.
  - Allowed values: `none`, `field`, `item`

### WorkflowDetail

Workflow information

- `chunkStrategy` (enum, optional)
  - Allowed values: `element`, `size`
- `documentId` (string, optional) — The documentId associated with the workflow
- `id` (integer, optional) — The bucketId or groupId associated with the workflow
- `name` (string, optional) — The human-readable name of the workflow
- `updatedAt` (string, optional) — The UTC timestamp when the workflow row was last updated.
- `extract` (WorkflowDetailExtract, optional) — Extract agent definitions.
- `template` (map from string to string, optional) — Workflow-level prompt template values used by fixed and custom workflow step prompts.
- `sectionStrategy` (enum, optional)
  - Allowed values: `chunks`, `page`
- `steps` (WorkflowSteps, optional) — A collection of workflow steps
- `customSteps` (list of CustomWorkflowStep, optional) — Workflow-level custom extraction steps. Legacy fixed steps remain under steps.
- `outputRoutes` (list of CustomWorkflowOutputRoute, optional) — Custom output routes. Each record must have exactly one matching leafFields record on finalPath, workflowGroup, workflowField, stepName, level, and outputKey.
- `leafFields` (list of CustomWorkflowLeafField, optional) — Custom leaf-field metadata used to validate route integrity and executable-step field counts.
- `relationships` (WorkflowDetailRelationships, optional) — Information describing what the workflow is associated with
- `workflowId` (string, optional) — Unique system generated ID for the workflow

### WorkflowStep

Configurations for an agent, including LLM information and prompts

- `all` (WorkflowStepConfig, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `figure` (WorkflowStepConfig, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `json` (WorkflowStepConfig, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `paragraph` (WorkflowStepConfig, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `table` (WorkflowStepConfig, optional, nullable) — Configurations for an agent, including LLM information and prompts
- `table-figure` (WorkflowStepConfig, optional, nullable) — Configurations for an agent, including LLM information and prompts

### CustomWorkflowStepConfig

Custom workflow step config keyed by element type. Element configs omit fixed-output field; custom output storage is derived from level, kind, outputRoutes, and leafFields.

- `all` (CustomWorkflowStepElementConfig, optional, nullable) — Element-level custom workflow step config. It supports existing prompt, engine, and include settings; fixed-output field is omitted because custom output routing is defined by outputRoutes and leafFields.
- `figure` (CustomWorkflowStepElementConfig, optional, nullable) — Element-level custom workflow step config. It supports existing prompt, engine, and include settings; fixed-output field is omitted because custom output routing is defined by outputRoutes and leafFields.
- `json` (CustomWorkflowStepElementConfig, optional, nullable) — Element-level custom workflow step config. It supports existing prompt, engine, and include settings; fixed-output field is omitted because custom output routing is defined by outputRoutes and leafFields.
- `paragraph` (CustomWorkflowStepElementConfig, optional, nullable) — Element-level custom workflow step config. It supports existing prompt, engine, and include settings; fixed-output field is omitted because custom output routing is defined by outputRoutes and leafFields.
- `table` (CustomWorkflowStepElementConfig, optional, nullable) — Element-level custom workflow step config. It supports existing prompt, engine, and include settings; fixed-output field is omitted because custom output routing is defined by outputRoutes and leafFields.
- `table-figure` (CustomWorkflowStepElementConfig, optional, nullable) — Element-level custom workflow step config. It supports existing prompt, engine, and include settings; fixed-output field is omitted because custom output routing is defined by outputRoutes and leafFields.

### WorkflowDetailExtract

Extract agent definitions.

### WorkflowDetailRelationships

Information describing what the workflow is associated with

- `account` (boolean, optional) — A boolean indicating whether the workflow is associated with the account
- `documents` (list of string, optional) — An array of documentIds associated with the workflow
- `ids` (list of integer, optional) — An array of bucketIds or groupIds associated with the workflow

### WorkflowStepConfig

Configurations for an agent, including LLM information and prompts

- `engine` (WorkflowEngine, optional) — Configurations for the LLM an agent uses in a workflow
- `field` (enum, optional) — The field where agent output will be saved
  - Allowed values: `doc-sum`, `doc-keys`, `sect-sum`, `sect-keys`, `chunk-sum`, `chunk-keys`, `chunk-instruct`, `text`
- `includes` (map from string to boolean, optional)
- `prompt` (WorkflowPromptGroup, optional, nullable) — Prompt group for this step config. On workflow update, omit prompt or send an empty object to use the default prompt group, send an object to customize supplied prompt members, and send null to use no prompt group.

### CustomWorkflowStepElementConfig

Element-level custom workflow step config. It supports existing prompt, engine, and include settings; fixed-output field is omitted because custom output routing is defined by outputRoutes and leafFields.

- `engine` (WorkflowEngine, optional) — Configurations for the LLM an agent uses in a workflow
- `includes` (map from string to boolean, optional)
- `prompt` (WorkflowPromptGroup, optional, nullable) — Prompt group for this custom step element config. On workflow update, omit prompt or send an empty object to use the default prompt group, send an object to customize supplied prompt members, and send null to use no prompt group.

### WorkflowEngine

Configurations for the LLM an agent uses in a workflow

- `apiKey` (string, optional) — Credential sent using the selected service's authentication scheme
- `baseURL` (string, optional) — The provider base URL used for requests by the selected service
- `engineID` (string, optional) — The model name that will be included in the request
- `maxImages` (integer, optional) — Maximum number of image attachments sent in one request using this workflow engine. GroundX removes earlier images when the request exceeds the limit, while preserving text and later images. Omit to use the default limit of 50. An explicit value takes precedence. Workflow and step engine settings follow normal engine precedence; no separate route-specific image-count value overrides the selected engine. The independent openai-base64 serialized request-size guard still applies.
- `reasoningEffort` (enum, optional) — An enumerated value that conforms to OpenAI '/chat/completion' specifications
  - Allowed values: `minimal`, `low`, `medium`, `high`
- `requestHeaders` (map from string to string, optional) — Headers added to the LLM request, for example 'OpenAI-Project' to attribute usage. Values must be strings. Your header wins if it collides with one GroundX sets. Requires apiKey on the same engine: without it the request uses GroundX's credential, so a workflow create or update that sets requestHeaders and omits apiKey is rejected. Headers are sent as-is; GroundX does not guarantee a provider acts on any given header.
- `requestPassthrough` (map from string to any, optional) — A JSON object merged into the LLM request body after GroundX builds the standard request. Values in this object override generated request fields on key conflicts.
- `service` (enum, optional) — Selects how requests are configured for the provider. Anthropic uses the native Messages API with baseURL, apiKey, engineID, requestHeaders, and requestPassthrough.
  - Allowed values: `openai`, `openai-base64`, `azure`, `deep-infra`, `hosted`, `bedrock`, `anthropic`

### WorkflowPromptGroup

A grouping of system task and request prompts. On workflow update, omitted prompt members use defaults and explicit null removes that member.

- `request` (WorkflowPrompt, optional, nullable) — The request prompt. On workflow update, omit this member to use the default and send null to remove it.
- `task` (WorkflowPrompt, optional, nullable) — The task prompt. On workflow update, omit this member to use the default and send null to remove it.

### WorkflowPrompt

Configurations for the prompt an agent uses in a workflow

- `abbreviated` (string, optional) — A short version of the prompt that is included in historical chat transcripts as part of the prompt context
- `additionalContext` (string, optional) — Supplemental context appended to the default full request or task prompt. Server validation authoritatively limits this value to 4096 UTF-8 bytes. When omitted, rendered prompt output is unchanged. Workflow-level template.CUSTOM_INSTRUCTIONS remains a global fallback, and a prompt-member additionalContext takes precedence for that member. It is supported only on fixed workflow default request/task prompt members for GPT and EyeLevel workflows; because this shared schema also appears under custom workflow prompt shapes, server validation rejects additionalContext under customSteps, useExtras, or prompt members that replace the full prompt.
- `prompt` (string, optional) — The prompt that is sent to the LLM
- `role` (enum, optional) — An enumerated value that conforms to OpenAI '/chat/completion' specifications
  - Allowed values: `assistant`, `developer`, `system`, `user`

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "workflow": {
    "chunkStrategy": "element",
    "documentId": "string",
    "id": 1,
    "name": "string",
    "updatedAt": "2024-01-15T09:30:00Z",
    "extract": {},
    "template": {},
    "sectionStrategy": "chunks",
    "steps": {
      "chunk-instruct": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "chunk-keys": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "chunk-summary": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "doc-keys": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "doc-summary": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "search-query": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "sect-instruct": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "sect-keys": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      },
      "sect-summary": {
        "all": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "json": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "paragraph": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        },
        "table-figure": {
          "engine": {
            "apiKey": "string",
            "baseURL": "string",
            "engineID": "string",
            "maxImages": 1,
            "reasoningEffort": "minimal",
            "requestHeaders": {},
            "requestPassthrough": {},
            "service": "openai"
          },
          "field": "doc-sum",
          "includes": {},
          "prompt": {
            "request": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            },
            "task": {
              "abbreviated": "string",
              "additionalContext": "string",
              "prompt": "string",
              "role": "assistant"
            }
          }
        }
      }
    },
    "customSteps": [
      {
        "name": "string",
        "level": "chunk",
        "kind": "instruct",
        "config": {
          "all": {
            "engine": {
              "apiKey": "string",
              "baseURL": "string",
              "engineID": "string",
              "maxImages": 1,
              "reasoningEffort": "minimal",
              "requestHeaders": {},
              "requestPassthrough": {},
              "service": "openai"
            },
            "includes": {},
            "prompt": {
              "request": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              },
              "task": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              }
            }
          },
          "figure": {
            "engine": {
              "apiKey": "string",
              "baseURL": "string",
              "engineID": "string",
              "maxImages": 1,
              "reasoningEffort": "minimal",
              "requestHeaders": {},
              "requestPassthrough": {},
              "service": "openai"
            },
            "includes": {},
            "prompt": {
              "request": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              },
              "task": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              }
            }
          },
          "json": {
            "engine": {
              "apiKey": "string",
              "baseURL": "string",
              "engineID": "string",
              "maxImages": 1,
              "reasoningEffort": "minimal",
              "requestHeaders": {},
              "requestPassthrough": {},
              "service": "openai"
            },
            "includes": {},
            "prompt": {
              "request": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              },
              "task": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              }
            }
          },
          "paragraph": {
            "engine": {
              "apiKey": "string",
              "baseURL": "string",
              "engineID": "string",
              "maxImages": 1,
              "reasoningEffort": "minimal",
              "requestHeaders": {},
              "requestPassthrough": {},
              "service": "openai"
            },
            "includes": {},
            "prompt": {
              "request": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              },
              "task": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              }
            }
          },
          "table": {
            "engine": {
              "apiKey": "string",
              "baseURL": "string",
              "engineID": "string",
              "maxImages": 1,
              "reasoningEffort": "minimal",
              "requestHeaders": {},
              "requestPassthrough": {},
              "service": "openai"
            },
            "includes": {},
            "prompt": {
              "request": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              },
              "task": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              }
            }
          },
          "table-figure": {
            "engine": {
              "apiKey": "string",
              "baseURL": "string",
              "engineID": "string",
              "maxImages": 1,
              "reasoningEffort": "minimal",
              "requestHeaders": {},
              "requestPassthrough": {},
              "service": "openai"
            },
            "includes": {},
            "prompt": {
              "request": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              },
              "task": {
                "abbreviated": "string",
                "additionalContext": "string",
                "prompt": "string",
                "role": "assistant"
              }
            }
          }
        },
        "requiredTemplateKeys": [
          "string"
        ]
      }
    ],
    "outputRoutes": [
      {
        "workflowGroup": "string",
        "workflowField": "string",
        "finalPath": "string",
        "stepName": "string",
        "level": "chunk",
        "outputMap": "customChunkOutputs",
        "outputKey": "string",
        "readbackPath": "string"
      }
    ],
    "leafFields": [
      {
        "finalPath": "string",
        "workflowGroup": "string",
        "workflowField": "string",
        "stepName": "string",
        "level": "chunk",
        "outputKey": "string",
        "fieldType": "string",
        "isRepeated": true,
        "repetitionScope": "none"
      }
    ],
    "relationships": {
      "account": true,
      "documents": [
        "string"
      ],
      "ids": [
        1
      ]
    },
    "workflowId": "string"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.groundx.ai/api/v1/workflow/validate"

payload = {}
headers = {
    "X-API-Key": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.groundx.ai/api/v1/workflow/validate';
const options = {
  method: 'POST',
  headers: {'X-API-Key': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.groundx.ai/api/v1/workflow/validate"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-API-Key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.groundx.ai/api/v1/workflow/validate")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.groundx.ai/api/v1/workflow/validate")
  .header("X-API-Key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.groundx.ai/api/v1/workflow/validate', [
  'body' => '{}',
  'headers' => [
    'Content-Type' => 'application/json',
    'X-API-Key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.groundx.ai/api/v1/workflow/validate");
var request = new RestRequest(Method.POST);
request.AddHeader("X-API-Key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "X-API-Key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.groundx.ai/api/v1/workflow/validate")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```