API ドキュメント

v2 API で Kick 認証フローを作成し、権限の確認やトークンの管理を行えます。

OpenAPI をダウンロード

認証フロー

  1. 権限カタログを確認し、連携に必要な有効な権限 ID を選びます。
  2. フローを作成します。取得キーを秘密に保ち、アカウント所有者のブラウザーで authorization_url を開きます。
  3. 認証後、認証情報を一度だけ取得します。アクセストークンと最新のリフレッシュトークンを保存してください。

フローは 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/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
}
このエンドポイントを試す