APIキー
APIキーにより、サーバーがDailyPlay
APIで認証できます。キーはダッシュボードから作成し、API呼び出し時にx-api-keyヘッダーで使用します。
APIキーの作成
Section titled “APIキーの作成”- DailyPlayダッシュボードにログイン
- サイドバーのConnect → APIキーに移動
- APIキーを作成をクリック
- 名前(例:「本番CRM」)と任意の説明を入力
- 任意で有効期限を設定
- 作成をクリック
:::caution 生成されたキーは即座にコピーしてください — 一度しか表示されず、後から取得することはできません。:::
キーの形式はdpk_<40桁の16進文字>です。例:
dpk_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0キーのスコープ
Section titled “キーのスコープ”APIキーはアクセスできるリソースを制限するようにスコープ設定できます:
| スコープ | 説明 |
|---|---|
| すべてのゲーム&ストリーム | デフォルト — 組織内のすべてのリソースにセッション作成可能 |
| 特定のゲーム | ゲームIDのリストに制限 |
| 特定のストリーム | ストリームIDのリストに制限 |
キーのスコープ外のリソースにセッションを作成しようとすると、403 Forbiddenエラーが返されます。
各APIキーには設定可能なレート制限があります:
| 制限 | デフォルト | 説明 |
|---|---|---|
| 毎分 | 60 | 毎分の最大リクエスト数 |
| 毎日 | 10,000 | 毎日の最大リクエスト数 |
レート制限を超えると、APIは429 Too Many Requestsレスポンスを返します。
キーの取り消し
Section titled “キーの取り消し”ダッシュボードからいつでもAPIキーを取り消せます:
- Connect → APIキーに移動
- リストでキーを見つける(
dpk_****プレフィックスと名前で識別) - 取り消しアクションをクリック
取り消しの効果:
- そのキーを使用するすべてのAPI呼び出しを即座にブロック
- そのキーで既に作成されたセッショントークンは無効化されない
- 監査証跡を保持 — キーレコードは保持されるが非アクティブとしてマーク
- 必要に応じて再アクティブ化可能
セキュリティ
Section titled “セキュリティ”- キーは保存前にSHA-256でハッシュ化 — データベースから生のキーは復元不可
- 識別用に最初の8文字(
dpk_xxxx)のみプレーンテキストで保存 - キーは特定の日付で自動的に期限切れに設定可能
- すべてのキー使用は監査目的でログに記録
APIによるキー管理
Section titled “APIによるキー管理”認証済みリクエスト(Clerkベアラートークン)を使用して、プログラム的にAPIキーを管理することもできます:
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /api/org-api-keys?org_id=<id> | 組織のすべてのAPIキーを一覧 |
POST | /api/org-api-keys | 新しいAPIキーを作成 |
PATCH | /api/org-api-keys | APIキーを更新または取り消し |
DELETE | /api/org-api-keys?id=<id>&org_id=<id> | APIキーを完全に削除 |
キーの作成(API)
Section titled “キーの作成(API)”curl -X POST https://app.dailyplay.ai/api/org-api-keys \ -H "Authorization: Bearer <clerk_token>" \ -H "Content-Type: application/json" \ -d '{ "org_id": 1, "name": "本番CRM", "description": "CRMがゲームリンクを発行するために使用", "allowed_game_ids": [42, 43], "rate_limit_per_minute": 60, "rate_limit_per_day": 10000, "expires_at": "2027-01-01T00:00:00Z" }'レスポンスには生のキーが含まれます(一度だけ表示):
{ "success": true, "data": { "id": 1, "name": "本番CRM", "key_prefix": "dpk_a1b2", "key": "dpk_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0" }}