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

# Work item の確認応答

> 配信された work item を実行前に確認応答します。

`POST /api/v1/cloud/environments/{environment_id}/work/{work_id}/ack`

配信された work item を確認応答し、`queued` から `starting` へ移行させます。worker は poll の後、Session work を実行する前に ack する必要があります。

すでに `starting` または `active` のアイテムに対する ack は安全に再試行できます。`stopping` または `stopped` のアイテムに対しては競合します。

## パスパラメータ

| パラメータ            | 型      | 説明                               |
| ---------------- | ------ | -------------------------------- |
| `environment_id` | string | `env_` プレフィックス付きの Environment ID |
| `work_id`        | string | `work_` プレフィックス付きの Work item ID  |

## リクエストヘッダー

| ヘッダー            | 必須  | 説明                                                           |
| --------------- | --- | ------------------------------------------------------------ |
| `Authorization` | はい  | `Bearer $QODER_PAT`                                          |
| `Worker-ID`     | いいえ | 安定した worker 識別子。poll が別の `Worker-ID` を保存していた場合、ack は 409 を返す |

## リクエスト例

```bash theme={null}
curl -X POST "https://api.qoder.com/api/v1/cloud/environments/env_019e64e01a137caf953ac2ac7b42ec5c/work/work_019f3be4fd2475d9a784bf2c739e1194/ack" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Worker-ID: byoc-worker-01"
```

## レスポンス例

**HTTP 200 OK**

```json theme={null}
{
  "id": "work_019f3be4fd2475d9a784bf2c739e1194",
  "type": "work",
  "environment_id": "env_019e64e01a137caf953ac2ac7b42ec5c",
  "data": {
    "type": "session",
    "id": "sess_019f3be3fa66750bb9a1fbcde85b5fe1"
  },
  "state": "starting",
  "created_at": "2026-07-01T08:15:01Z",
  "acknowledged_at": "2026-07-01T08:15:04Z",
  "started_at": null,
  "latest_heartbeat_at": null,
  "stop_requested_at": null,
  "stopped_at": null,
  "metadata": {}
}
```

## レスポンスフィールド

確認応答された [Work item オブジェクト](/ja/cloud-agents/api/environments/work/schemas#work-item-object) を返します。

## エラー

| HTTP | type                    | トリガー                                                                     |
| ---- | ----------------------- | ------------------------------------------------------------------------ |
| 400  | `invalid_request_error` | Environment が `self_hosted` でない                                          |
| 401  | `authentication_error`  | PAT が無効または期限切れ                                                           |
| 403  | `permission_error`      | この操作の権限がない                                                               |
| 404  | `not_found_error`       | Environment または work item が存在しない                                         |
| 409  | `invalid_request_error` | Work item が別の worker に取得された、同時に state が変化した、または `stopping`/`stopped` である |

完全なエラーエンベロープについては [エラーリファレンス](/ja/cloud-agents/api/conventions/errors) を参照してください。

## 備考

* ack 後の最初の heartbeat は通常 `expected_last_heartbeat=NO_HEARTBEAT` を使用します。
* ack は即座にディスパッチパスをトリガーするため、次のディスパッチャーティックを待たずに work を進められます。

## 関連

<CardGroup cols={2}>
  <Card title="クラウド環境" icon="server" href="/ja/cloud-agents/environments">
    Agent が実行されるコンテナ、ネットワーク、依存関係を選択する。
  </Card>
</CardGroup>
