[ PROMPT_NODE_24382 ]
Turn API 参考
[ SKILL_DOCUMENTATION ]
# TURN API 参考
Cloudflare TURN 服务凭据与密钥管理的完整 API 文档。
## 身份验证
所有端点都需要具有 "Calls Write" 权限的 Cloudflare API 令牌。
基础 URL: `https://api.cloudflare.com/client/v4`
## TURN 密钥管理
### 列出 TURN 密钥
GET /accounts/{account_id}/calls/turn_keys
### 获取 TURN 密钥详情
GET /accounts/{account_id}/calls/turn_keys/{key_id}
### 创建 TURN 密钥
POST /accounts/{account_id}/calls/turn_keys
Content-Type: application/json
{
"name": "my-turn-key"
}
**响应包含**:
- `uid`: 密钥标识符
- `key`: 实际的密钥(仅在创建时返回—请立即保存)
- `name`: 可读名称
- `created`: ISO 8601 时间戳
- `modified`: ISO 8601 时间戳
### 更新 TURN 密钥
PUT /accounts/{account_id}/calls/turn_keys/{key_id}
Content-Type: application/json
{
"name": "updated-name"
}
### 删除 TURN 密钥
DELETE /accounts/{account_id}/calls/turn_keys/{key_id}
## 生成临时凭据
POST https://rtc.live.cloudflare.com/v1/turn/keys/{key_id}/credentials/generate
Authorization: Bearer {key_secret}
Content-Type: application/json
{
"ttl": 86400
}
### 凭据约束
| 参数 | 最小值 | 最大值 | 默认值 | 备注 |
|-----------|-----|-----|---------|-------|
| ttl | 1 | 172800 (48小时) | 视情况而定 | API 会拒绝 >172800 的值 |
**关键提示**:最大 TTL 为 48 小时(172800 秒)。API 将拒绝超过此限制的请求。
### 响应模式
{
"iceServers": {
"urls": [
"stun:stun.cloudflare.com:3478",
"turn:turn.cloudflare.com:3478?transport=udp",
"turn:turn.cloudflare.com:3478?transport=tcp",
"turn:turn.cloudflare.com:53?transport=udp",
"turn:turn.cloudflare.com:80?transport=tcp",
"turns:turn.cloudflare.com:5349?transport=tcp",
"turns:turn.cloudflare.com:443?transport=tcp"
],
"username": "1738035200:user123",
"credential": "base64encodedhmac=="
}
}
**端口 53 警告**:请过滤掉浏览器客户端的端口 53 URL—它们会被 Chrome/Firefox 拦截。参见 [gotchas.md](./gotchas.md#using-port-53-in-browsers)。
## 撤销凭据
POST https://rtc.live.cloudflare.com/v1/turn/keys/{key_id}/credentials/revoke
Authorization: Bearer {key_secret}
Content-Type: application/json
{
"username": "1738035200:user123"
}
**响应**: 204 No Content
计费立即停止。活动连接会在短延迟(约几秒)后断开。