> ## 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.

# Run dispatch guard

> Guard evaluation: planned (and, with apply, applied) routing-mode rollbacks for unhealthy brands.

### Request body

`object`

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

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

<ParamField body="minimum_health_status" type="string">
  Defaults to 'critical'
</ParamField>

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

### Response

`object`

<ResponseField name="generated_at" type="string (date-time)" required />

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

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

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

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

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

<ResponseField name="summary" type="object" required>
  <Expandable title="summary">
    <ResponseField name="total_brands_scanned" type="integer" required />

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

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

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

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

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

<ResponseField name="actions" type="object[]" required>
  <Expandable title="actions">
    <ResponseField name="tenant_id" type="string (uuid)" required />

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

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

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

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

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

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

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

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

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

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

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

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

    <ResponseField name="error" type="string" />
  </Expandable>
</ResponseField>

### Status codes

| Code  | Meaning                                                                                             |
| ----- | --------------------------------------------------------------------------------------------------- |
| `200` | Guard evaluation: planned (and, with `apply`, applied) routing-mode rollbacks for unhealthy brands. |
| `400` | Validation error                                                                                    |
| `401` | Unauthorized                                                                                        |
| `404` | Not found                                                                                           |
| `429` | Rate limited                                                                                        |
| `500` | Internal error                                                                                      |

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api.workstream.stateset.com/v1/dispatch/guard' \
    --header "x-api-key: $STATESET_TEMPORAL_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
    "tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "apply": true,
    "minimum_health_status": "string",
    "max_actions": 1
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "generated_at": "2026-08-31T14:22:05Z",
    "tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "apply": true,
    "minimum_health_status": "string",
    "max_actions": 1,
    "window_minutes": 1,
    "summary": {
      "total_brands_scanned": 1,
      "candidate_brands": 1,
      "planned_actions": 1,
      "applied_actions": 1,
      "failed_actions": 1,
      "truncated_candidates": 1
    },
    "actions": [
      {
        "tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "tenant_name": "string",
        "brand_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "brand_slug": "acme-outdoors",
        "health_status": "string",
        "current_stage": "string",
        "current_routing_mode": "string",
        "target_stage": "string",
        "target_routing_mode": "string",
        "action": "string",
        "reason": "Two-person tent, green — replacement for damaged pole set.",
        "alerts": [],
        "applied": true,
        "error": "string"
      }
    ]
  }
  ```
</ResponseExample>
