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

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

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

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

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

Процеси діють 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/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