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

# Session リソースの追加

> 既存の Session にファイルリソースをアタッチします。

`POST /api/v1/cloud/sessions/{session_id}/resources`

既存の Session にファイルリソースを 1 つアタッチします。GitHub リポジトリと Memory Store のリソースは Session 作成時にアタッチされます。この add エンドポイントは `type: "file"` のみを受け付けます。

## パスパラメータ

| パラメータ        | 型      | 説明                            |
| ------------ | ------ | ----------------------------- |
| `session_id` | string | `sess_` プレフィックス付きの Session ID |

## ヘッダー

| ヘッダー            | 必須 | 説明                  |
| --------------- | -- | ------------------- |
| `Authorization` | はい | `Bearer $QODER_PAT` |
| `Content-Type`  | はい | `application/json`  |

## リクエストボディ

| フィールド        | 型              | 必須  | 説明                                                |
| ------------ | -------------- | --- | ------------------------------------------------- |
| `type`       | string         | はい  | `"file"` である必要があります                               |
| `file_id`    | string         | はい  | Files API から取得した File ID。ファイルは ready 状態である必要があります |
| `mount_path` | string \| null | いいえ | マウントパス。デフォルトは `/mnt/session/uploads/<file_id>`    |

## リクエスト例

```bash theme={null}
curl -X POST https://api.qoder.com/api/v1/cloud/sessions/sess_019e392c0d1e74e095d21ea4c6b41def/resources \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "file",
    "file_id": "file_abc123def456",
    "mount_path": "/data/inputs/spec.md"
  }'
```

## レスポンス例

**HTTP 200 OK**

```json theme={null}
{
  "id": "sesr_0e4323e8f47ba34853f5409e",
  "type": "file",
  "file_id": "file_019ef2a07a06704fb899908c29eed779",
  "mount_path": "/mnt/session/uploads/file_019ef2a07a06704fb899908c29eed779",
  "created_at": "2026-06-23T05:53:19.77484Z",
  "updated_at": "2026-06-23T05:53:38.185714Z"
}
```

## エラー

| HTTP | type                    | トリガー条件                                                              |
| ---- | ----------------------- | ------------------------------------------------------------------- |
| 400  | `invalid_request_error` | リクエスト形式エラー、サポートされていない type、`file_id` の欠落、または無効なマウントパス               |
| 401  | `authentication_error`  | PAT が無効または期限切れ                                                      |
| 404  | `not_found_error`       | Session またはファイルが存在しない                                               |
| 409  | `invalid_request_error` | Session がアーカイブまたは終了済み、ファイルが ready でない、またはファイルがこの Session にすでにアタッチ済み |

**HTTP 400 Bad Request**

```json theme={null}
{
  "type": "error",
  "request_id": "cb80235f-76a2-4ff3-9e28-5aa2da12dc14",
  "error": {
    "type": "invalid_request_error",
    "message": "Field 'type' must be 'file'."
  }
}
```

**HTTP 400 Bad Request**

```json theme={null}
{
  "type": "error",
  "request_id": "cb80235f-76a2-4ff3-9e28-5aa2da12dc14",
  "error": {
    "type": "invalid_request_error",
    "message": "Field 'file_id' is required."
  }
}
```

**HTTP 404 Not Found**

```json theme={null}
{
  "type": "error",
  "request_id": "cb80235f-76a2-4ff3-9e28-5aa2da12dc14",
  "error": {
    "type": "not_found_error",
    "message": "File 'file_fake_test_id' was not found."
  }
}
```

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

## 関連項目

<CardGroup cols={2}>
  <Card title="Session の起動" icon="play" href="/ja/cloud-agents/sessions">
    Agent を環境で実行し、ステートフルな対話を行う。
  </Card>
</CardGroup>
