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

# Approve workflow release

> Success

### Path parameters

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

### Response

`WorkflowRecipeRelease`

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

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

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

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

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

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

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

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

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

<ResponseField name="validation" type="object" required />

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

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

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

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

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

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

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

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

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

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

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

### Status codes

| Code  | Meaning                                                     |
| ----- | ----------------------------------------------------------- |
| `200` | Success                                                     |
| `400` | Validation error                                            |
| `401` | Unauthorized                                                |
| `403` | Platform administrator or global workflow approver required |
| `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/workflow-releases/{release_id}/approve' \
    --header 'Authorization: Bearer YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "brand_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "recipe_key": "string",
    "recipe_version": 1,
    "validation_request_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "source_draft_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "source_draft_version": 1,
    "status": "validated",
    "plan_hash": "string",
    "validation": {},
    "test_workflow_id": "string",
    "test_run_id": "string",
    "test_evidence": {},
    "created_by": "string",
    "approved_by": "string",
    "approved_at": "2026-07-24T12:00:00Z",
    "approval_expires_at": "2026-07-24T12:00:00Z",
    "launch_request_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "launched_at": "2026-07-24T12:00:00Z",
    "created_at": "2026-07-24T12:00:00Z",
    "updated_at": "2026-07-24T12:00:00Z"
  }
  ```
</ResponseExample>
