Документація API

Створюйте процеси авторизації Kick, перевіряйте дозволи та керуйте токенами через API v2.

Завантажити OpenAPI

Процес авторизації

  1. Перегляньте каталог і виберіть ID активних дозволів, потрібних вашій інтеграції.
  2. Створіть процес. Зберігайте ключ отримання в таємниці та відкрийте authorization_url у браузері власника облікового запису.
  3. Після авторизації отримайте облікові дані один раз. Збережіть токен доступу та останній токен оновлення.

Процеси діють 24 години. Успішне отримання унеможливлює повторне отримання збережених даних. Між перевірками очікуваної авторизації витримуйте щонайменше п’ять секунд.

Автентифікація та обмеження

Для отримання даних використовується приватний ключ процесу як Bearer. Інші методи використовують наведені нижче поля. Ліміт API v2 — 120 запитів на хвилину з однієї IP-адреси; 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 · тіло

Необов’язкова назва клієнта ШІ: до 64 байтів UTF-8 без керівних символів. Використовується для атрибуції, а не автентифікації.

credentialsНеобов’язково

object · тіло

Використовуйте власний застосунок розробника Kick. Залишайте обидва поля порожніми лише за доступного спільного режиму. Дані залишаються в пам’яті вкладки та тимчасово шифруються на сервері під час авторизації.

is_aiНеобов’язково

boolean · тіло

Позначити процес як виконуваний за допомогою ШІ.

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

Варіант GET для клієнтів, які вміють лише читати URL-адреси. Створює процес за назвами дозволів і повертає приватну URL-адресу отримання даних. JSON передається як text/plain.

Параметри

titleНеобов’язково

string · запит

Назва застосунку, до 500 байтів UTF-8.

scopesНеобов’язково

string · запит

Назви дозволів через кому. Параметр має бути присутній; порожнє значення означає відсутність дозволів.

scope_idsНеобов’язково

string · запит

Числові ID з каталогу. Вибирайте активні дозволи; не більше 150 різних дозволів.

ai_agentНеобов’язково

string · запит

Необов’язкова назва клієнта ШІ: до 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

Приватний 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. Не вказуйте його для спільного застосунку 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 · тіло

Ім’я відправника запиту, до 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
}
Спробувати цей метод