API 文档
使用 v2 API 创建 Kick 授权流程、查看权限并管理令牌。
授权流程
- 查看权限目录,选择集成所需的有效权限 ID。
- 创建流程。妥善保管私密检索密钥,并在账号所有者的浏览器中打开 authorization_url。
- 授权后仅检索一次凭据。保存访问令牌和最新的刷新令牌。
流程在 24 小时后过期。成功检索后,已存储的凭据无法再次检索。等待授权时,两次检查之间至少间隔五秒。
身份验证与限制
检索凭据时,将流程的私密密钥用作 Bearer 凭据。其他端点使用下方列出的输入。v2 API 每个 IP 每分钟允许 120 次请求;HTTP 429 表示已达到限制。
端点参考
GET /api/v2/scopes
可用的令牌权限范围
获取当前权限 ID、名称、描述和可用状态。此请求无需凭据。
此端点没有请求参数。
响应
HTTP 200- 响应成功
application/json示例响应
{ "scopes": [ { "description": "Send chat messages as the authorized account.", "id": 6, "scope": "chat:write", "secret": false } ], "success": true } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
POST /api/v2/workflows
创建授权流程
创建二十四小时有效的授权流程。可使用已启用的共享模式,或在 POST 请求体中提供自己的应用凭据。
参数
ai_agent可选string· 请求体可选的 AI 客户端名称,最多 64 个 UTF-8 字节,不能包含控制字符。此值用于来源归属,而非身份验证。
credentials可选object· 请求体请使用自己的 Kick 开发者应用。只有共享模式可用时才能将两项留空。凭据仅保留在当前标签页内存中,并在授权期间临时加密保存在服务器。
is_ai可选boolean· 请求体将流程标记为 AI 辅助流程。
redirect_url可选string· 请求体可选的授权后跳转地址,必须是完整 HTTP 或 HTTPS URL,且不能包含用户名或密码。
scope_ids可选array· 请求体目录中的数字 ID。请选择有效权限,最多 150 个不同权限。
scopes可选array· 请求体以逗号分隔的权限名称。必须包含此参数;空值表示不请求权限。
title可选string· 请求体应用名称,最多 500 个 UTF-8 字节。
JSON 请求体
{
"credentials": {
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
},
"scope_ids": [
6
],
"title": "Example integration"
}
响应
HTTP 201- 已创建
application/json示例响应
{ "authorization_url": "https://kicktokengen.com/authorize/EXAMPLE_ID", "expires_at": "2030-01-02T12:00:00Z", "id": "EXAMPLE_ID", "retrieval_key": "EXAMPLE_PRIVATE_KEY", "status_url": "https://kicktokengen.com/api/v2/workflows/EXAMPLE_ID", "success": true } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
GET /api/v2/workflows/{id}
检索流程凭据
授权后仅返回一次凭据。请将流程检索密钥作为 Bearer 凭据发送。成功读取后,已存储的凭据无法再次检索。
参数
id必填string· 路径创建流程时返回的流程 ID。
Authorization必填Bearer· 请求头创建流程时返回的私密检索密钥。请勿将其放入公开链接。
响应
HTTP 200- 响应成功
application/json示例响应
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "expires_at": "2030-01-01T13:00:00Z", "expires_in": 3600, "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:write" ], "status": "authorized", "success": true, "token_type": "Bearer" } HTTP 202- 仍在等待授权
application/json示例响应
{ "status": "pending", "success": false } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 410- 凭据已过期或已被检索
application/json示例响应
{ "message": "workflow credentials are no longer available", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
GET /api/v2/ai/workflows/create
通过 GET 创建 AI 流程
为只能读取 URL 的客户端提供 GET 方式。使用权限名称创建流程并返回私密检索 URL。JSON 响应以 text/plain 提供。
参数
title可选string· 查询应用名称,最多 500 个 UTF-8 字节。
scopes可选string· 查询以逗号分隔的权限名称。必须包含此参数;空值表示不请求权限。
scope_ids可选string· 查询目录中的数字 ID。请选择有效权限,最多 150 个不同权限。
ai_agent可选string· 查询可选的 AI 客户端名称,最多 64 个 UTF-8 字节,不能包含控制字符。此值用于来源归属,而非身份验证。
响应
HTTP 201- 已创建
application/json示例响应
{ "authorization_url": "https://kicktokengen.com/authorize/EXAMPLE_ID", "id": "EXAMPLE_ID", "retrieval_url": "https://kicktokengen.com/api/v2/ai/workflows/EXAMPLE_ID/EXAMPLE_PRIVATE_KEY", "success": true } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
GET /api/v2/ai/workflows/{id}/{key}
通过 GET 检索 AI 凭据
私密链接包含提取密钥。JSON 响应仅交付一次凭据;请像密码一样保护整个链接。
参数
id必填string· 路径创建流程时返回的流程 ID。
key必填string· 路径创建流程时返回的私密检索密钥。请勿将其放入公开链接。
响应
HTTP 200- 响应成功
application/json示例响应
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "expires_at": "2030-01-01T13:00:00Z", "expires_in": 3600, "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:write" ], "status": "authorized", "success": true, "token_type": "Bearer" } HTTP 202- 仍在等待授权
application/json示例响应
{ "status": "pending", "success": false } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 410- 凭据已过期或已被检索
application/json示例响应
{ "message": "workflow credentials are no longer available", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
POST /api/v2/tokens/validate
验证令牌
检查令牌是否有效,并显示 Kick 返回的应用、令牌类型、已授予权限和到期时间。
参数
access_token必填string· 请求体要查看或撤销的 Kick 访问令牌,不包含 oauth: 前缀。
JSON 请求体
{
"access_token": "EXAMPLE_ACCESS_TOKEN"
}
响应
HTTP 200- 响应成功
application/json示例响应
{ "active": true, "client_id": "EXAMPLE_CLIENT_ID", "exp": 1893502800, "expires_in": 3600, "scope_details": [ { "description": "Send chat messages.", "scope": "chat:write" } ], "scopes": [ "chat:write" ], "success": true, "token_type": "user" } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid access token", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
POST /api/v2/tokens/refresh
刷新令牌
使用刷新令牌更新访问令牌。刷新自己 Kick 应用的令牌时,请同时提供 client_id 和 client_secret。
参数
client_id可选string· 请求体Kick 应用客户端 ID。省略此值即可使用 KTG 的共享应用。
client_secret可选string· 请求体Kick 应用客户端密钥。刷新请求中需与 client_id 同时提供。
refresh_token必填string· 请求体账号及 Kick 应用的最新刷新令牌。
JSON 请求体
{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"refresh_token": "EXAMPLE_REFRESH_TOKEN"
}
响应
HTTP 200- 响应成功
application/json示例响应
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "expires_at": "2030-01-01T13:00:00Z", "expires_in": 3600, "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:write" ], "status": "authorized", "success": true, "token_type": "Bearer" } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid refresh token or client credentials", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
POST /api/v2/tokens/revoke
撤销令牌
在 POST 请求体中提供一个访问令牌或刷新令牌并将其撤销。
参数
access_token可选string· 请求体要查看或撤销的 Kick 访问令牌,不包含 oauth: 前缀。
refresh_token可选string· 请求体账号及 Kick 应用的最新刷新令牌。
JSON 请求体
{
"access_token": "EXAMPLE_ACCESS_TOKEN"
}
响应
HTTP 200- 响应成功
application/json示例响应
{ "revoked": true, "success": true } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid token request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
POST /api/v2/quick-links
快捷链接
使用所选权限 ID 创建可重复使用的链接。auth=stay 打开生成器;auth=authorize 启动 Kick 授权。
参数
auth可选string· 请求体stay 打开生成器。authorize 及兼容别名 auth_auth 会立即开始授权。
scope_ids可选array· 请求体目录中的数字 ID。请选择有效权限,最多 150 个不同权限。
scopes可选array· 请求体以逗号分隔的权限名称。必须包含此参数;空值表示不请求权限。
JSON 请求体
{
"auth": "stay",
"scope_ids": [
6
]
}
响应
HTTP 201- 已创建
application/json示例响应
{ "success": true, "url": "https://kicktokengen.com/quick/Ab3dEf8_" } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }
POST /api/v2/token-requests
请求令牌
创建授权请求链接。账号所有者完成授权后,凭据将发送到 my_email。
参数
credentials可选object· 请求体请使用自己的 Kick 开发者应用。只有共享模式可用时才能将两项留空。凭据仅保留在当前标签页内存中,并在授权期间临时加密保存在服务器。
my_email必填string· 请求体请求完成后接收凭据的电子邮箱地址。
my_name必填string· 请求体请求者名称,最多 128 个 UTF-8 字节。
scope_ids可选array· 请求体目录中的数字 ID。请选择有效权限,最多 150 个不同权限。
scopes可选array· 请求体以逗号分隔的权限名称。必须包含此参数;空值表示不请求权限。
JSON 请求体
{
"credentials": {
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
},
"my_email": "developer@example.com",
"my_name": "Example developer",
"scope_ids": [
6
]
}
响应
HTTP 201- 已创建
application/json示例响应
{ "expires_at": "2030-01-02T12:00:00Z", "success": true, "url": "https://kicktokengen.com/request/EXAMPLE_ID" } HTTP 400- 请求无效
application/json示例响应
{ "message": "invalid request", "success": false } HTTP 401- 令牌或检索密钥无效
application/json示例响应
{ "message": "invalid retrieval key", "success": false } HTTP 429- 已达到请求限制
application/json示例响应
{ "message": "rate limit exceeded", "success": false } HTTP 503- 服务暂时不可用
application/json示例响应
{ "message": "Service unavailable", "success": false }