> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Validate active horizon agent

> Success

### Request body

`ActiveHorizonAgentStartInput`

<ParamField body="brand_id" type="string (uuid)" required />

<ParamField body="request_id" type="string (uuid)" required />

<ParamField body="goal" type="string" required />

<ParamField body="release_id" type="string (uuid)" />

<ParamField body="source_draft_id" type="string (uuid)" />

<ParamField body="source_draft_version" type="integer" />

<ParamField body="recipe_key" type="string" />

<ParamField body="recipe_version" type="integer" />

<ParamField body="authorization_scope" type="CyberAuthorizationScope" />

<ParamField body="tasks" type="LongHorizonTask[]" />

<ParamField body="planner" type="ConnectorStep" />

<ParamField body="allowed_workflow_types" type="string[]" />

<ParamField body="active_window_secs" type="integer">
  0 selects the default; otherwise 300..86400.
</ParamField>

<ParamField body="max_turns" type="integer">
  0 selects the default; otherwise 1..500.
</ParamField>

<ParamField body="max_failures" type="integer">
  0 selects the default; otherwise 1..100.
</ParamField>

<ParamField body="turn_timeout_secs" type="integer">
  0 selects the default; otherwise 30..1800.
</ParamField>

<ParamField body="checkpoint_every_turns" type="integer">
  0 selects the default; otherwise 1..50.
</ParamField>

<ParamField body="paused" type="boolean" />

### Response

`ActiveHorizonPreflightResponse`

<ResponseField name="valid" type="boolean" required />

<ResponseField name="brand_id" type="string (uuid)" required />

<ResponseField name="brand_slug" type="string" required />

<ResponseField name="task_queue" type="string" required />

<ResponseField name="goal" type="string" required />

<ResponseField name="task_count" type="integer" required />

<ResponseField name="recipe_key" type="string" />

<ResponseField name="recipe_version" type="integer" />

<ResponseField name="authorization_scope" type="object" />

<ResponseField name="workflow_types" type="string[]" required />

<ResponseField name="budgets" type="object" required>
  <Expandable title="budgets">
    <ResponseField name="active_window_secs" type="integer" required />

    <ResponseField name="max_turns" type="integer" required />

    <ResponseField name="max_failures" type="integer" required />

    <ResponseField name="turn_timeout_secs" type="integer" required />

    <ResponseField name="checkpoint_every_turns" type="integer" required />
  </Expandable>
</ResponseField>

<ResponseField name="estimated_max_child_executions" type="integer" required />

<ResponseField name="requires_operator_approval" type="boolean" required />

<ResponseField name="side_effects_possible" type="boolean" required />

<ResponseField name="release_id" type="string (uuid)" required />

<ResponseField name="release_status" type="string" required />

<ResponseField name="plan_hash" type="string" required />

<ResponseField name="created_by" type="string" required />

### Status codes

| Code  | Meaning                                          |
| ----- | ------------------------------------------------ |
| `200` | Success                                          |
| `400` | Validation error                                 |
| `401` | Unauthorized                                     |
| `404` | Not found                                        |
| `409` | Workflow release lifecycle or plan-hash conflict |
| `429` | Rate limited                                     |
| `500` | Internal error                                   |

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api.workstream.stateset.com/v1/workflows/active-horizon-agent/validate' \
    --header 'Authorization: Bearer YOUR_API_KEY' \
    --header 'Content-Type: application/json' \
    --data '{
    "brand_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "request_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "goal": "string",
    "release_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "source_draft_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "source_draft_version": 1,
    "recipe_key": "string",
    "recipe_version": 1,
    "authorization_scope": {
      "engagement_id": "string",
      "authorized_assets": [
        "string"
      ],
      "permitted_actions": [
        "alert_enrichment"
      ],
      "expires_at": "2026-07-24T12:00:00Z"
    },
    "tasks": [
      {
        "task_id": "string",
        "description": "string",
        "workflow_type": "ConnectorWorkflow",
        "payload": {}
      }
    ],
    "planner": {
      "step_name": "string",
      "connector_type": "string",
      "direction": "string",
      "action": "string",
      "params": {}
    },
    "allowed_workflow_types": [
      "ConnectorWorkflow"
    ],
    "active_window_secs": 1,
    "max_turns": 1,
    "max_failures": 1,
    "turn_timeout_secs": 1,
    "checkpoint_every_turns": 1,
    "paused": true
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "valid": true,
    "brand_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "brand_slug": "string",
    "task_queue": "string",
    "goal": "string",
    "task_count": 1,
    "recipe_key": "string",
    "recipe_version": 1,
    "authorization_scope": {},
    "workflow_types": [
      "string"
    ],
    "budgets": {
      "active_window_secs": 1,
      "max_turns": 1,
      "max_failures": 1,
      "turn_timeout_secs": 1,
      "checkpoint_every_turns": 1
    },
    "estimated_max_child_executions": 1,
    "requires_operator_approval": true,
    "side_effects_possible": true,
    "release_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "release_status": "validated",
    "plan_hash": "string",
    "created_by": "string"
  }
  ```
</ResponseExample>
