Документація API
Створюйте процеси авторизації Twitch, перевіряйте дозволи та керуйте токенами через API v2.
Процес авторизації
- Перегляньте каталог і виберіть ID активних дозволів, потрібних вашій інтеграції.
- Створіть процес. Зберігайте ключ отримання в таємниці та відкрийте authorization_url у браузері власника облікового запису.
- Після авторизації отримайте облікові дані один раз. Збережіть токен доступу та останній токен оновлення.
Процеси діють 24 години. Успішне отримання унеможливлює повторне отримання збережених даних. Між перевірками очікуваної авторизації витримуйте щонайменше п’ять секунд.
Автентифікація та обмеження
Для отримання даних використовується приватний ключ процесу як Bearer. Інші методи використовують наведені нижче поля. Ліміт API v2 — 180 запитів на хвилину з однієї IP-адреси; HTTP 429 означає досягнення ліміту.
Довідник методів
GET /api/v2/scopes
Доступні дозволи токена
Отримайте поточні ID, назви, описи та доступність дозволів. Облікові дані для цього запиту не потрібні.
Параметри
include_sensitiveНеобов’язковоboolean· запитДодати до каталогу дозволи, позначені як чутливі.
Відповідь
HTTP 200- Успішна відповідь
application/jsonПриклад відповіді
{ "scopes": [ { "active": true, "api_set": "helix", "description": "View live Stream Chat and Rooms messages.", "id": 28, "scope": "chat:read", "secret": false } ], "success": true } HTTP 429- Досягнуто ліміту запитів
application/jsonПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 503- Сервіс тимчасово недоступний
application/jsonПриклад відповіді
{ "message": "service temporarily unavailable", "success": false }
POST /api/v2/workflows
Створити процес авторизації
Створює процес на 24 години у спільному застосунку Twitch від TTG. Відповідь містить окремі публічну URL-адресу авторизації та приватний ключ отримання даних.
Параметри
ai_agentНеобов’язковоstring· тілоНеобов’язкова назва клієнта ШІ: до 64 байтів UTF-8 без керівних символів. Використовується для атрибуції, а не автентифікації.
is_aiНеобов’язковоboolean· тілоПозначити процес як виконуваний за допомогою ШІ.
redirect_urlНеобов’язковоstring· тілоНеобов’язкова абсолютна HTTP- або HTTPS-адреса для переходу після авторизації. Облікові дані в URL-адресі заборонені.
scope_idsНеобов’язковоarray· тілоЧислові ID з каталогу. Вибирайте активні дозволи; не більше 150 різних дозволів.
titleНеобов’язковоstring· тілоНазва застосунку, до 500 байтів UTF-8.
Тіло запиту JSON
{
"scope_ids": [
28,
29
],
"title": "Example integration"
}
Відповідь
HTTP 201- Створено
application/jsonПриклад відповіді
{ "authorization_url": "https://twitchtokengenerator.com/api/example0000000000000", "expires_at": "2030-01-01T12:00:00Z", "id": "example0000000000000", "retrieval_key": "example000000000000000000000000000000000", "status_url": "https://twitchtokengenerator.com/api/v2/workflows/example0000000000000", "success": true } HTTP 400- Некоректний запит
application/jsonПриклад відповіді
{ "message": "invalid request", "success": false } HTTP 429- Досягнуто ліміту запитів
application/jsonПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 500- Не вдалося обробити запит
application/jsonПриклад відповіді
{ "message": "unable to process request", "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", "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:read", "chat:edit" ], "status": "authorized", "success": true, "user_id": "123456789", "username": "exampleuser" } HTTP 202- Авторизація ще очікується
application/jsonПриклад відповіді
{ "expires_at": "2030-01-01T12:00:00Z", "status": "pending", "success": false } HTTP 401- Недійсний токен або ключ отримання
application/jsonПриклад відповіді
{ "message": "invalid retrieval key", "success": false } HTTP 404- Процес не знайдено
application/jsonПриклад відповіді
{ "message": "workflow not found", "success": false } HTTP 410- Дані прострочені або вже отримані
application/jsonПриклад відповіді
{ "message": "workflow credentials are no longer available", "status": "expired", "success": false } HTTP 429- Досягнуто ліміту запитів
application/jsonПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 500- Не вдалося обробити запит
application/jsonПриклад відповіді
{ "message": "unable to process request", "success": false } HTTP 503- Сервіс тимчасово недоступний
application/jsonПриклад відповіді
{ "message": "service temporarily unavailable", "success": false }
GET /api/v2/ai/workflows/create
Створити процес ШІ через GET
Варіант GET для клієнтів, які вміють лише читати URL-адреси. Створює процес за назвами дозволів і повертає приватну URL-адресу отримання даних. JSON передається як text/plain.
Параметри
scopesОбов’язковоstring· запитНазви дозволів через кому. Параметр має бути присутній; порожнє значення означає відсутність дозволів.
ai_agentНеобов’язковоstring· запитНеобов’язкова назва клієнта ШІ: до 64 байтів UTF-8 без керівних символів. Використовується для атрибуції, а не автентифікації.
nonceНеобов’язковоstring· запитНеобов’язкове значення для обходу кешу, до 128 байтів UTF-8. Це не ключ ідемпотентності.
Відповідь
HTTP 200- Успішна відповідь
text/plainПриклад відповіді
{ "authorization_url": "https://twitchtokengenerator.com/api/example0000000000000", "expires_at": "2030-01-01T12:00:00Z", "id": "example0000000000000", "retrieval_notice": "Keep retrieval_url private: it grants one-time access to the generated credentials. Give the user only authorization_url. Retrieve after they finish authorizing.", "retrieval_url": "https://twitchtokengenerator.com/api/v2/ai/workflows/example0000000000000/example000000000000000000000000000000000", "success": true } HTTP 400- Некоректний запит
text/plainПриклад відповіді
{ "message": "invalid request", "success": false } HTTP 429- Досягнуто ліміту запитів
text/plainПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 500- Не вдалося обробити запит
text/plainПриклад відповіді
{ "message": "unable to process request", "success": false }
GET /api/v2/ai/workflows/{id}/{key}
Отримати облікові дані ШІ через GET
Варіант GET із ключем отримання в URL-адресі. JSON передається як text/plain. Успішне читання унеможливлює повторне отримання збережених даних.
Параметри
idОбов’язковоstring· шляхID процесу, повернутий під час створення.
keyОбов’язковоstring· шляхПриватний ключ отримання даних, повернутий під час створення процесу. Не додавайте його до публічних посилань.
Відповідь
HTTP 200- Успішна відповідь
text/plainПриклад відповіді
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:read", "chat:edit" ], "status": "authorized", "success": true, "user_id": "123456789", "username": "exampleuser" } HTTP 202- Авторизація ще очікується
text/plainПриклад відповіді
{ "expires_at": "2030-01-01T12:00:00Z", "status": "pending", "success": false } HTTP 401- Недійсний токен або ключ отримання
text/plainПриклад відповіді
{ "message": "invalid retrieval key", "success": false } HTTP 404- Процес не знайдено
text/plainПриклад відповіді
{ "message": "workflow not found", "success": false } HTTP 410- Дані прострочені або вже отримані
text/plainПриклад відповіді
{ "message": "workflow credentials are no longer available", "status": "expired", "success": false } HTTP 429- Досягнуто ліміту запитів
text/plainПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 500- Не вдалося обробити запит
text/plainПриклад відповіді
{ "message": "unable to process request", "success": false } HTTP 503- Сервіс тимчасово недоступний
text/plainПриклад відповіді
{ "message": "service temporarily unavailable", "success": false }
POST /api/v2/tokens/refresh
Оновити токен доступу
Оновлює токен доступу за допомогою токена оновлення. Для токена власного застосунку Twitch вкажіть і client_id, і client_secret.
Параметри
client_idНеобов’язковоstring· тілоІдентифікатор клієнта застосунку Twitch. Не вказуйте його для спільного застосунку TTG.
client_secretНеобов’язковоstring· тілоСекрет клієнта застосунку Twitch. Під час оновлення передавайте разом із client_id.
refresh_tokenОбов’язковоstring· тілоОстанній токен оновлення для облікового запису та застосунку Twitch.
Тіло запиту JSON
{
"refresh_token": "EXAMPLE_REFRESH_TOKEN"
}
Відповідь
HTTP 200- Успішна відповідь
application/jsonПриклад відповіді
{ "access_token": "EXAMPLE_ACCESS_TOKEN", "client_id": "EXAMPLE_CLIENT_ID", "expires_in": 3600, "refresh_token": "EXAMPLE_REFRESH_TOKEN", "scopes": [ "chat:read", "chat:edit" ], "success": true } HTTP 400- Некоректний запит
application/jsonПриклад відповіді
{ "message": "invalid request", "success": false } HTTP 429- Досягнуто ліміту запитів
application/jsonПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 502- Помилка запиту до Twitch
application/jsonПриклад відповіді
{ "message": "Twitch request failed", "success": false }
POST /api/v2/tokens/revoke
Відкликати токен доступу
Робить наданий токен доступу недійсним. Вкажіть client_id його застосунку, якщо це не спільний застосунок TTG.
Параметри
access_tokenОбов’язковоstring· тілоТокен доступу Twitch для перевірки або відкликання, без префікса oauth:.
client_idНеобов’язковоstring· тілоІдентифікатор клієнта застосунку Twitch. Не вказуйте його для спільного застосунку TTG.
Тіло запиту JSON
{
"access_token": "EXAMPLE_ACCESS_TOKEN"
}
Відповідь
HTTP 200- Успішна відповідь
application/jsonПриклад відповіді
{ "success": true } HTTP 400- Некоректний запит
application/jsonПриклад відповіді
{ "message": "invalid request", "success": false } HTTP 429- Досягнуто ліміту запитів
application/jsonПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 502- Помилка запиту до Twitch
application/jsonПриклад відповіді
{ "message": "Twitch request failed", "success": false }
POST /api/v2/tokens/validate
Перевірити токен
Показує обліковий запис, застосунок, надані дозволи та залишок терміну дії токена.
Параметри
access_tokenОбов’язковоstring· тілоТокен доступу Twitch для перевірки або відкликання, без префікса oauth:.
Тіло запиту JSON
{
"access_token": "EXAMPLE_ACCESS_TOKEN"
}
Відповідь
HTTP 200- Успішна відповідь
application/jsonПриклад відповіді
{ "client_id": "EXAMPLE_CLIENT_ID", "expires_in": 3600, "scope_details": [ { "active": true, "api_set": "helix", "description": "View live Stream Chat and Rooms messages.", "id": 28, "scope": "chat:read", "secret": false } ], "scopes": [ "chat:read" ], "success": true, "user_id": "123456789", "username": "exampleuser" } 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 502- Помилка запиту до Twitch
application/jsonПриклад відповіді
{ "message": "Twitch request failed", "success": false }
POST /api/v2/quick-links
Генератор швидких посилань
Створює багаторазове посилання з вибраними ID дозволів. auth=stay відкриває генератор; auth=authorize запускає авторизацію Twitch.
Параметри
authНеобов’язковоstring· тілоstay відкриває генератор. authorize та сумісний псевдонім auth_auth одразу запускають авторизацію.
scope_idsНеобов’язковоarray· тілоЧислові ID з каталогу. Вибирайте активні дозволи; не більше 150 різних дозволів.
Тіло запиту JSON
{
"auth": "stay",
"scope_ids": [
28,
29
]
}
Відповідь
HTTP 201- Створено
application/jsonПриклад відповіді
{ "id": "example000", "success": true, "url": "https://twitchtokengenerator.com/quick/example000" } HTTP 400- Некоректний запит
application/jsonПриклад відповіді
{ "message": "invalid request", "success": false } HTTP 429- Досягнуто ліміту запитів
application/jsonПриклад відповіді
{ "message": "rate limit exceeded", "success": false } HTTP 500- Не вдалося обробити запит
application/jsonПриклад відповіді
{ "message": "unable to process request", "success": false }
POST /api/v2/token-requests
Запросити токен у користувача
Створює посилання запиту авторизації. Після авторизації власника облікового запису облікові дані надсилаються на my_email.
Параметри
my_emailОбов’язковоstring· тілоАдреса електронної пошти для отримання облікових даних після завершення запиту.
my_nameОбов’язковоstring· тілоІм’я відправника запиту, до 128 байтів UTF-8.
scope_idsНеобов’язковоarray· тілоЧислові ID з каталогу. Вибирайте активні дозволи; не більше 150 різних дозволів.
Тіло запиту JSON
{
"my_email": "developer@example.com",
"my_name": "Example developer",
"scope_ids": [
28,
29
]
}
Відповідь
HTTP 201- Створено
application/jsonПриклад відповіді
{ "id": "example-request", "success": true, "url": "https://twitchtokengenerator.com/request/example-request" } HTTP 400- Некоректний запит
application/jsonПриклад відповіді
{ "message": "invalid request", "success": false } HTTP 429- Досягнуто ліміту запитів
application/jsonПриклад відповіді
{ "message": "rate limit exceeded", "success": false }
Сумісність зі старим API
Наявні маршрути /api/ залишаються доступними. Для нових інтеграцій використовуйте v2: формати відповідей та автентифікація отримання даних відрізняються.
| Старий маршрут | Заміна у v2 |
|---|---|
GET /api/scopes/{type} | GET /api/v2/scopes |
GET /api/create/{title}/{scopes} | POST /api/v2/workflows |
GET /api/status/{id} | GET /api/v2/workflows/{id} |
GET /api/forgot/{token} | POST /api/v2/tokens/validate |
GET /api/refresh/{token} | POST /api/v2/tokens/refresh |
GET /api/revoke/{token} | POST /api/v2/tokens/revoke |