# API 概览

DailyPlay 提供 API，允许**第三方应用**以编程方式为其用户创建一次性游戏会话。这非常适合 CRM、营销平台、电商系统，以及任何希望以受控方式向终端用户提供 DailyPlay 游戏的应用。

:::note[需要 Business 层级]
API 功能仅适用于 **Business 层级**或更高的组织。
:::

:::caution[启用「Require API Session Token」]
要使 session tokens 生效，您必须在每个游戏或 stream 的 **Configuration** 标签中启用 **"Require API Session Token"** 设置。未启用此设置时，游戏可在无任何令牌限制的情况下游玩。
:::

## 工作原理

集成流程遵循简单模式：

1. **您的服务器**使用 API key 创建一次性会话令牌
2. **您的应用**将终端用户重定向到带令牌的游戏 URL
3. **DailyPlay** 验证并消费令牌 — 用户游玩一次
4. 令牌为一次性使用，无法重复使用

```
Your App                          DailyPlay
────────                          ─────────
   │
   │  1. Create session (x-api-key)
   ├─────────────────────────────────►  POST /api/org-api-keys/sessions
   │                                        │
   │  2. Receive one-time token             │
   ◄────────────────────────────────────────┘
   │
   │  3. Redirect user with token
   ├─────────────────────────────────►  Player opens game URL
   │                                    with ?session_token=<token>
   │
   │                                   4. Token validated & consumed
   │                                   5. User plays the game
   │                                   6. Token cannot be reused
```

## 关键概念

### API Keys

API keys 在调用 DailyPlay API 时对您的服务器进行身份验证。每个密钥：

- 属于一个组织
- 可限定到特定游戏或 streams
- 具有可配置的速率限制
- 可立即撤销

设置与管理详情见 [API Keys](/zh/api/api-keys/)。

### Session Tokens

Session tokens 是授予单次游玩的一次性令牌。它们：

- 通过您的 API key 创建
- 在可配置的时长后过期（默认：24 小时）
- 只能被消费一次
- 可携带可选元数据用于追踪

完整生命周期与 API 参考见 [Session Tokens](/zh/api/session-tokens/)。

### Stream Status（公开）

站点与应用所有者可调用**公开**可用性端点（无需 API key），以决定当前是否应显示 stream 浮层或 Play 按钮。见 [Stream Status API](/zh/api/stream-status/)。

## 用例

- **电商**：购买后奖励客户一次游戏游玩
- **CRM 活动**：向细分受众发送个性化游戏链接
- **忠诚度计划**：向忠诚度会员授予每日游戏游玩
- **活动营销**：在活动中或通过二维码分发一次性游戏访问
- **条件浮层**：仅在活动 stream 活跃时显示 stream 小部件

## 快速示例

```bash
# 1. Create a session token from your server
curl -X POST https://app.dailyplay.ai/api/org-api-keys?action=create-session \
  -H "Content-Type: application/json" \
  -H "x-api-key: dpk_YOUR_API_KEY" \
  -d '{
    "game_id": 42,
    "external_ref": "user-12345",
    "expires_in_minutes": 60
  }'

# Response:
# {
#   "success": true,
#   "data": {
#     "token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
#     "game_id": 42,
#     "expires_at": "2026-02-17T12:00:00.000Z"
#   }
# }

# 2. Redirect the user to:
# Game Page in DailyPlay
# https://app.dailyplay.ai/game/42?session_token=a1b2c3d4-e5f6-7890-abcd-ef1234567890
#
# Iframe friendly game page with no DailyPlay UI
# https://app.dailyplay.ai/embed/42?session_token=a1b2c3d4-e5f6-7890-abcd-ef1234567890
#
# Stream Page
# https://app.dailyplay.ai/stream/<org-slug>/<stream_id>?session_token=a1b2c3d4-e5f6-7890-abcd-ef1234567890
```

## 面向 AI 智能体的 MCP

相同的 API keys 可为远程 **MCP 服务器**提供支持，以便 Cursor、Claude 及其他客户端中的智能体创建游戏、管理 streams、生成素材、管理图库媒体与兑换码、阅读报告并生成会话。在密钥上启用 MCP 范围，然后将客户端指向 `https://app.dailyplay.ai/api/mcp`。

见 [MCP 服务器](/zh/api/mcp/) 与 [MCP 工具参考](/zh/api/mcp-tools/)。

若要在面板内使用相同能力（无需 API key），见[应用内助手](/zh/assistant/overview/)。

## 下一步

- 从 DailyPlay 面板[创建 API Key](/zh/api/api-keys/)
- [了解 session token 生命周期](/zh/api/session-tokens/)
- 在显示嵌入前[检查 stream 可用性](/zh/api/stream-status/)
- [通过 MCP 连接 AI 智能体](/zh/api/mcp/)
- [使用应用内助手](/zh/assistant/overview/)
- [浏览 API 参考](/zh/api/reference/)