---
title: "Create approval workflow"
url: https://hexelstudio.com/docs/api/ciam-iam/approvals/create-approval-workflow
---

# Create approval workflow

**POST** `/approvals/workflows`

The workflow is created in the caller's organization. approver_role, when set, must be org_owner, org_admin, org_member, org_viewer or the id of a permission set of the organization (400 otherwise).

## Headers

- `Authorization: string`

  `Bearer <token>`.

## Body parameters

- `approver_role: optional string`

- `approver_user_ids: optional array of string`

- `created_at: optional string`

- `description: optional string`

- `id: optional string`

- `is_enabled: optional boolean`

- `min_approvals: optional integer`

- `name: optional string`

- `organization_id: optional string`

- `requires_approval: optional boolean`

- `scope_id: optional string`

- `scope_type: optional string`

- `updated_at: optional string`

- `workflow_type: optional string`

## Returns

`201` Created (`ApprovalWorkflow`)

- `approver_role: optional string`

- `approver_user_ids: optional array of string`

- `created_at: optional string`

- `description: optional string`

- `id: optional string`

- `is_enabled: optional boolean`

- `min_approvals: optional integer`

- `name: optional string`

- `organization_id: optional string`

- `requires_approval: optional boolean`

- `scope_id: optional string`

- `scope_type: optional string`

- `updated_at: optional string`

- `workflow_type: optional string`

## Errors

- `400` Bad Request

## Example

```bash
curl --request POST \
  --url 'https://api.hexelstudio.com/v1/approvals/workflows' \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "approver_role": "string",
  "approver_user_ids": [
    "string"
  ],
  "created_at": "2026-01-01T00:00:00Z",
  "description": "string",
  "id": "string",
  "is_enabled": true,
  "min_approvals": 0,
  "name": "string",
  "organization_id": "string",
  "requires_approval": true,
  "scope_id": "string",
  "scope_type": "string",
  "updated_at": "2026-01-01T00:00:00Z",
  "workflow_type": "string"
}'
```

### Response (201)

```json
{
  "approver_role": "string",
  "approver_user_ids": [
    "string"
  ],
  "created_at": "2026-01-01T00:00:00Z",
  "description": "string",
  "id": "string",
  "is_enabled": true,
  "min_approvals": 0,
  "name": "string",
  "organization_id": "string",
  "requires_approval": true,
  "scope_id": "string",
  "scope_type": "string",
  "updated_at": "2026-01-01T00:00:00Z",
  "workflow_type": "string"
}
```

### Response (400)

```json
{
  "key": "string"
}
```
