Документація API
Створюйте процеси авторизації Kick, перевіряйте дозволи та керуйте токенами через API v2.
Процес авторизації
- Перегляньте каталог і виберіть ID активних дозволів, потрібних вашій інтеграції.
- Створіть процес. Зберігайте ключ отримання в таємниці та відкрийте authorization_url у браузері власника облікового запису.
- Після авторизації отримайте облікові дані один раз. Збережіть токен доступу та останній токен оновлення.
Процеси діють 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/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 }