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

# 概要

> Client APIの概要と認証方式

## Client APIについて

Client APIは、セッショントークン認証を使用してクライアントアプリから呼び出すAPIです。
エンドユーザーがチャットアプリを利用する際の、メッセージ送信やチャンネル操作などに使用します。

## 主な用途

<CardGroup cols={2}>
  <Card title="メッセージ操作" icon="message">
    メッセージの送信・編集・削除、既読管理
  </Card>

  <Card title="チャンネル操作" icon="comments">
    チャンネルの作成・参加・退出、メンバー管理
  </Card>

  <Card title="リアクション" icon="heart">
    メッセージへのリアクション追加・削除
  </Card>

  <Card title="ユーザー情報" icon="user">
    ユーザー一覧の取得、プロフィール確認
  </Card>
</CardGroup>

## 認証方式

Client APIでは、セッショントークン発行APIで取得したセッショントークンを使用します。

```bash theme={null}
curl -X POST https://<application_id>.chat.rheel.net/v1/channels \
  -H "Authorization: Bearer <SESSION_TOKEN>" \
  -H "Content-Type: application/json"
```

<Note>
  セッショントークンは、Server APIの「セッショントークン発行」エンドポイントで取得します。
</Note>

## セッショントークンの取得

1. **Server APIでユーザーを作成**

```bash theme={null}
curl -X POST https://<application_id>.chat.rheel.net/v1/users \
  -H "X-Rheel-API-Key: <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "user123",
    "name": "山田太郎"
  }'
```

2. **セッショントークンを発行**

```bash theme={null}
curl -X POST https://<application_id>.chat.rheel.net/v1/users/user123/token \
  -H "X-Rheel-API-Key: <API_KEY>"
```

レスポンス:

```json theme={null}
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expired_at": "2025-03-21T10:00:00Z"
}
```

3. **Client APIで使用**

取得した`token`をAuthorizationヘッダーで使用します。

## ベースURL

```
https://<application_id>.chat.rheel.net/v1
```

`<application_id>`は管理画面で作成したアプリケーションのIDに置き換えてください。

## レスポンス形式

すべてのレスポンスはJSON形式で返されます。

### 成功レスポンス

```json theme={null}
{
  "id": "ch_123",
  "name": "一般チャット",
  "created_at": "2025-03-21T10:00:00Z"
}
```

### エラーレスポンス

```json theme={null}
{
  "error": {
    "code": "ERROR_CODE",
    "message": "エラーの詳細メッセージ"
  }
}
```

## HTTPステータスコード

| コード   | 説明                        |
| ----- | ------------------------- |
| `200` | 成功                        |
| `400` | リクエストが不正です                |
| `401` | 認証に失敗しました（トークンが無効または期限切れ） |
| `403` | アクセス権がありません               |
| `404` | リソースが存在しません               |
| `500` | サーバーエラー                   |

## 次のステップ

<CardGroup cols={2}>
  <Card title="チャンネル操作" icon="comments" href="/api-reference/endpoint/client-api/client-channels/チャンネルの作成">
    チャンネルの作成と管理
  </Card>

  <Card title="メッセージ送信" icon="message" href="/api-reference/endpoint/client-api/client-messages/メッセージの投稿-メッセージの投稿（ファイル付き）">
    メッセージの投稿と管理
  </Card>

  <Card title="WebSocket接続" icon="plug" href="/websocket">
    リアルタイム通信の実装
  </Card>

  <Card title="全体ドキュメント" icon="home" href="/">
    Rheel Chat APIドキュメントトップへ
  </Card>
</CardGroup>
