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

# タスク承認

> 承認待ちタスクを承認

## エンドポイント

```
POST http://localhost:8080/api/v1/approvals/decision
```

## 説明

人間の承認を待機しているワークフローに対して、承認または拒否を送信します。成功すると、決定がワークフローに通知され、実行が続行されるか（または終了します）。

## 認証

**必要**: はい

ヘッダーにAPIキーを含めてください:

```
X-API-Key: sk_test_123456
```

## リクエスト

### ヘッダー

| ヘッダー           | 必要  | 説明                 |
| -------------- | --- | ------------------ |
| `X-API-Key`    | はい  | API認証キー            |
| `Content-Type` | はい  | `application/json` |
| `traceparent`  | いいえ | W3Cトレースコンテキスト      |

### ボディパラメータ

| パラメータ             | 型       | 必要  | 説明                 |
| ----------------- | ------- | --- | ------------------ |
| `workflow_id`     | string  | はい  | 対象ワークフローID         |
| `approval_id`     | string  | はい  | 承認識別子              |
| `approved`        | boolean | はい  | 承認または拒否            |
| `feedback`        | string  | いいえ | オプションのフィードバック/コメント |
| `modified_action` | string  | いいえ | オプションの修正アクション      |
| `run_id`          | string  | いいえ | 特定の実行ID（オプション）     |
| `approved_by`     | string  | いいえ | 認証されたユーザーがデフォルト    |

### リクエストボディスキーマ

```json theme={null}
{
  "workflow_id": "task-123",
  "approval_id": "appr-456",
  "approved": true,
  "feedback": "Looks good",
  "modified_action": "",
  "run_id": ""
}
```

## レスポンス

### 200 OK

```json theme={null}
{
  "status": "sent",
  "success": true,
  "message": "Approval appr-456 processed successfully",
  "workflow_id": "task-123",
  "run_id": "",
  "approval_id": "appr-456"
}
```

### 400 / 401 / 403 / 404

```json theme={null}
{ "error": "..." }
```

## 例

### 承認 (curl)

```bash theme={null}
curl -X POST "http://localhost:8080/api/v1/approvals/decision" \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "task-123",
    "approval_id": "appr-456",
    "approved": true,
    "feedback": "Proceed"
  }'
```

### 拒否 (Python / httpx)

```python theme={null}
import httpx

httpx.post(
  "http://localhost:8080/api/v1/approvals/decision",
  headers={"X-API-Key": api_key, "Content-Type": "application/json"},
  json={"workflow_id": wid, "approval_id": appr, "approved": False, "feedback": "Not safe"}
)
```

## 注意事項

* `http://localhost:8081/approvals/decision` のレガシー管理エンドポイントを置き換えます（非推奨）。
