コンテンツにスキップ

APIリファレンス

このページでは、サードパーティ統合向けのすべてのAPIエンドポイントを一覧表示しています。

サードパーティ統合はx-api-keyヘッダーで渡すAPIキーを使用して認証します:

Terminal window
curl -H "x-api-key: dpk_YOUR_API_KEY" https://app.dailyplay.ai/api/...

ダッシュボード管理エンドポイントは代わりにClerkベアラートークンを使用します:

Terminal window
curl -H "Authorization: Bearer <clerk_token>" https://app.dailyplay.ai/api/...

これらのエンドポイントは、サードパーティ統合がワンタイムセッショントークンを作成・管理するために使用します。

ゲームまたはストリーム用のワンタイムセッショントークンを作成します。

POST /api/org-api-keys?action=create-session

ヘッダー:

ヘッダー
Content-Typeapplication/json
x-api-keyAPIキー(dpk_...

ボディ:

{
"game_id": 42,
"stream_id": null,
"external_ref": "user-12345",
"metadata": { "campaign": "summer-promo" },
"expires_in_minutes": 60
}
フィールド必須説明
game_idnumber*ターゲットゲームID
stream_idnumber*ターゲットストリームID
external_refstringいいえ追跡用の参照
metadataobjectいいえ任意のJSONデータ
expires_in_minutesnumberいいえ有効期限(デフォルト:1440)

* game_idまたはstream_idの少なくとも1つが必須。

レスポンス 200

{
"success": true,
"data": {
"token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"stream_id": null,
"game_id": 42,
"expires_at": "2026-02-17T12:00:00.000Z",
"external_ref": "user-12345"
}
}

セッショントークンが消費せずにまだ有効かどうかを確認します。

GET /api/org-api-keys?action=validate-session&token=<uuid>

クエリパラメーター:

パラメーター必須説明
tokenstring (UUID)はい検証するセッショントークン

レスポンス 200

{
"success": true,
"data": {
"valid": true,
"status": "active",
"stream_id": null,
"game_id": 42,
"expires_at": "2026-02-17T12:00:00.000Z",
"external_ref": "user-12345",
"metadata": { "campaign": "summer-promo" }
}
}

セッショントークンをアトミックに消費し、再利用不可にします。

POST /api/org-api-keys?action=consume-session

ヘッダー:

ヘッダー
Content-Typeapplication/json

ボディ:

{
"token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"player_uuid": "player-uuid-here"
}
フィールド必須説明
tokenstring (UUID)はい消費するセッショントークン
player_uuidstringいいえプレイヤーを識別するUUID

レスポンス 200

{
"success": true,
"data": {
"session_id": 1,
"org_id": 5,
"stream_id": null,
"game_id": 42,
"external_ref": "user-12345",
"metadata": { "campaign": "summer-promo" }
}
}

レスポンス 410(既に消費済み/期限切れ):

{
"success": false,
"error": "Session is invalid, already consumed, or expired"
}

これらのエンドポイントはClerkベアラートークンを必要とし、DailyPlayダッシュボードがAPIキーを管理するために使用します。

GET /api/org-api-keys?org_id=<id>

指定された組織のすべてのAPIキーを返します。


POST /api/org-api-keys

ボディ:

{
"org_id": 1,
"name": "本番CRM",
"description": "CRMがゲームリンクを発行するために使用",
"allowed_game_ids": [42, 43],
"allowed_stream_ids": null,
"rate_limit_per_minute": 60,
"rate_limit_per_day": 10000,
"expires_at": "2027-01-01T00:00:00Z"
}

レスポンス 200

{
"success": true,
"data": {
"id": 1,
"name": "本番CRM",
"key_prefix": "dpk_a1b2",
"key": "dpk_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
}
}

:::caution keyフィールドは作成レスポンスにのみ含まれます。再取得はできません。:::


PATCH /api/org-api-keys

ボディ:

{
"id": 1,
"org_id": 1,
"is_active": false
}

is_activefalseに設定してキーを取り消すか、trueに設定して再アクティブ化します。


DELETE /api/org-api-keys?id=<id>&org_id=<id>

APIキーレコードを完全に削除します。


すべてのエラーレスポンスは以下の形式に従います:

{
"success": false,
"error": "何が問題だったかの説明"
}
コード意味
200成功
400不正なリクエスト — パラメーターの欠落または無効
401認証なし — 無効または取り消されたAPIキー/認証なし
403禁止 — キーがリクエストされたリソースにアクセス不可
410Gone — セッショントークンは既に消費済みまたは期限切れ
429Too Many Requests — レート制限超過
500内部サーバーエラー