API ドキュメント
v2 API で Kick 認証フローを作成し、権限の確認やトークンの管理を行えます。
認証フロー
- 権限カタログを確認し、連携に必要な有効な権限 ID を選びます。
- フローを作成します。取得キーを秘密に保ち、アカウント所有者のブラウザーで authorization_url を開きます。
- 認証後、認証情報を一度だけ取得します。アクセストークンと最新のリフレッシュトークンを保存してください。
フローは 24 時間で期限切れになります。取得に成功すると、保存された認証情報は再取得できなくなります。認証待ちの確認は 5 秒以上間隔を空けてください。
認証と制限
認証情報の取得では、フロー専用の非公開キーを 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
認証フローを作成
24時間有効な認証ワークフローを作成します。有効な共有モードを使うか、自分のアプリの認証情報を POST 本文で送信してください。
パラメーター
ai_agent任意string· 本文任意の AI クライアント名。制御文字を含めず、UTF-8 で最大 64 バイトです。これは利用元の識別用で、認証には使いません。
credentials任意object· 本文ご自身の Kick 開発者アプリを使用してください。両方を空欄にできるのは共有モードが利用可能な場合だけです。認証情報はこのタブのメモリと、認証中のサーバー上に一時的に暗号化して保持します。
is_ai任意boolean· 本文フローを AI 支援としてマークします。
redirect_url任意string· 本文認証後の任意の移動先。完全な HTTP または HTTPS URL を指定します。URL に認証情報は含められません。
scope_ids任意array· 本文カタログの数値 ID。有効な権限を選んでください。異なる権限は最大 150 件です。
scopes任意array· 本文カンマ区切りの権限名。パラメーター自体は必須ですが、空の値では権限を要求しません。
title任意string· 本文アプリケーション名。UTF-8 で最大 500 バイトです。
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· クエリアプリケーション名。UTF-8 で最大 500 バイトです。
scopes任意string· クエリカンマ区切りの権限名。パラメーター自体は必須ですが、空の値では権限を要求しません。
scope_ids任意string· クエリカタログの数値 ID。有効な権限を選んでください。異なる権限は最大 150 件です。
ai_agent任意string· クエリ任意の AI クライアント名。制御文字を含めず、UTF-8 で最大 64 バイトです。これは利用元の識別用で、認証には使いません。
レスポンス
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 の認証情報を取得
取得キーを含む非公開 URL です。JSON 応答で認証情報を一度だけ提供します。URL 全体をパスワード同様に保護してください。
パラメーター
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· 本文リクエスト送信者の名前。UTF-8 で最大 128 バイトです。
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 }