> ## 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}/stop`

work item を停止します。リクエストボディは省略可能です。空のボディまたは `{}` はデフォルトの `force=false` リクエスト（グレースフル停止とも呼ばれます）を送信します。

`starting` または `active` のアイテムに対しては、`force=false` によりアイテムが `stopping` へ移行します。worker は処理中の work をドレインした後、このエンドポイントを再度呼び出して完了を確定し、アイテムを `stopped` へ移行させる必要があります。`force=true` は、稼働中のアイテムを直接 `stopped` へ移行させます。

## パスパラメータ

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

## リクエストヘッダー

| ヘッダー            | 必須  | 説明                             |
| --------------- | --- | ------------------------------ |
| `Authorization` | はい  | `Bearer $QODER_PAT`            |
| `Content-Type`  | いいえ | ボディを送信する場合は `application/json` |

## リクエストボディ

| フィールド   | 型       | 必須  | デフォルト   | 説明                                              |
| ------- | ------- | --- | ------- | ----------------------------------------------- |
| `force` | boolean | いいえ | `false` | `true` の場合、グレースフルドレインなしでアイテムを `stopped` へ強制移行する |

## リクエスト例: `force=false`

```bash theme={null}
curl -X POST "https://api.qoder.com/api/v1/cloud/environments/env_019e64e01a137caf953ac2ac7b42ec5c/work/work_019f3be4fd2475d9a784bf2c739e1194/stop" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## リクエスト例: `force=true`

```bash theme={null}
curl -X POST "https://api.qoder.com/api/v1/cloud/environments/env_019e64e01a137caf953ac2ac7b42ec5c/work/work_019f3be4fd2475d9a784bf2c739e1194/stop" \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{"force": true}'
```

## レスポンス例

**HTTP 200 OK**

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

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

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

## エラー

| HTTP | type                    | トリガー                             |
| ---- | ----------------------- | -------------------------------- |
| 400  | `invalid_request_error` | リクエストボディが有効な JSON でない            |
| 400  | `invalid_request_error` | Environment が `self_hosted` でない  |
| 401  | `authentication_error`  | PAT が無効または期限切れ                   |
| 403  | `permission_error`      | この操作の権限がない                       |
| 404  | `not_found_error`       | Environment または work item が存在しない |

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

## 状態遷移

`force=false` は空のボディ、`{}`、または `{"force": false}` を意味します。`force=true` は `{"force": true}` を意味します。

| `force` | 現在の状態                   | 結果                    |
| ------- | ----------------------- | --------------------- |
| `false` | `queued`                | `stopped`             |
| `false` | `starting` または `active` | `stopping`            |
| `false` | `stopping`              | `stopped`             |
| `false` | `stopped`               | 既存の `stopped` アイテムを返す |
| `true`  | 稼働中のいずれかの状態             | `stopped`             |

## 関連

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