# Twitch Chat API Reference

Canonical: https://monsterapi.co/docs/api/twitch-chat

Read the Twitch Chat reference. Review parameters, response fields, examples, and current credit prices.

OpenAPI specification: [Twitch](https://monsterapi.co/docs/openapi/platforms/twitch.yaml).

---

Current operation prices: [public catalog](https://monsterapi.co/account/api/v1/public/api-prices). Prices use credits per request.

---

# Twitch: Global chat badges

`GET /twitch/api/badges`

Documentation: https://monsterapi.co/docs/api/twitch#global-chat-badges

Operation ID: `twitch_global_badges`

Returns the badges every channel of the site shares, with their images.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

## Responses

- 200: Global badges

- 400: Refusal envelope

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: Refusal envelope

Refused at the gateway: the `Authorization` header carries no API key, or a malformed one

- 402: Refusal envelope

Refused at the gateway: the credits of the account do not cover the price of the operation

- 403: Refusal envelope

Refused at the gateway: the API key is unknown or revoked

- 404: not_found: all primary lists are empty

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: Refusal envelope

Refused at the gateway: a repeat of a request the gateway already checked differs from the original

- 429: Refusal envelope

Refused at the gateway: the account calls faster than its rate limit allows

- 500: upstream_shape: Twitch returned an unreadable or unexpected response; this does not indicate the end of a listing

- 501: requires_auth: requested information is unavailable to anonymous viewers

- 503: rate_limited: retry after Retry-After; upstream_error: retry after Retry-After; upstream_stale: Twitch access temporarily unavailable; no_proxies: Twitch access temporarily unavailable; overloaded: capacity unavailable

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

- default: Refusal envelope

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitch/api/badges' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Twitch: Chat room settings

`GET /twitch/api/channel/{login}/chatroom`

Documentation: https://monsterapi.co/docs/api/twitch#chat-room-settings

Operation ID: `twitch_chat_room`

Returns a channel’s chat settings, rules, badges and identifiers of pinned messages.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `login` (path, required): Required account username: 1 to 25 ASCII letters, digits or underscores. Use `users[].username` from [GET /twitch/api/users](https://monsterapi.co/docs/api/twitch-channel#accounts-by-identifier).

## Responses

- 200: Chat room settings

- 400: bad_request: invalid path or query parameter

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: Refusal envelope

Refused at the gateway: the `Authorization` header carries no API key, or a malformed one

- 402: Refusal envelope

Refused at the gateway: the credits of the account do not cover the price of the operation

- 403: Refusal envelope

Refused at the gateway: the API key is unknown or revoked

- 404: not_found: requested resource does not exist or is unavailable

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: Refusal envelope

Refused at the gateway: a repeat of a request the gateway already checked differs from the original

- 429: Refusal envelope

Refused at the gateway: the account calls faster than its rate limit allows

- 500: upstream_shape: Twitch returned an unreadable or unexpected response; this does not indicate the end of a listing

- 501: requires_auth: requested information is unavailable to anonymous viewers

- 503: rate_limited: retry after Retry-After; upstream_error: retry after Retry-After; upstream_stale: Twitch access temporarily unavailable; no_proxies: Twitch access temporarily unavailable; overloaded: capacity unavailable

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

- default: Refusal envelope

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitch/api/channel/{login}/chatroom' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Twitch: Cheer emotes

`GET /twitch/api/channel/{login}/cheermotes`

Documentation: https://monsterapi.co/docs/api/twitch#cheer-emotes

Operation ID: `twitch_channel_cheermotes`

Returns the cheer emotes of one channel and the ones every channel shares, with their bit thresholds.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `login` (path, required): Required account username: 1 to 25 ASCII letters, digits or underscores. Use `users[].username` from [GET /twitch/api/users](https://monsterapi.co/docs/api/twitch-channel#accounts-by-identifier).

## Responses

- 200: Cheer emotes

- 400: bad_request: invalid path or query parameter

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: Refusal envelope

Refused at the gateway: the `Authorization` header carries no API key, or a malformed one

- 402: Refusal envelope

Refused at the gateway: the credits of the account do not cover the price of the operation

- 403: Refusal envelope

Refused at the gateway: the API key is unknown or revoked

- 404: not_found: resource absent or all primary lists are empty

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: Refusal envelope

Refused at the gateway: a repeat of a request the gateway already checked differs from the original

- 429: Refusal envelope

Refused at the gateway: the account calls faster than its rate limit allows

- 500: upstream_shape: Twitch returned an unreadable or unexpected response; this does not indicate the end of a listing

- 501: requires_auth: requested information is unavailable to anonymous viewers

- 503: rate_limited: retry after Retry-After; upstream_error: retry after Retry-After; upstream_stale: Twitch access temporarily unavailable; no_proxies: Twitch access temporarily unavailable; overloaded: capacity unavailable

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

- default: Refusal envelope

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitch/api/channel/{login}/cheermotes' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Twitch: Channel emotes

`GET /twitch/api/channel/{login}/emotes`

Documentation: https://monsterapi.co/docs/api/twitch#channel-emotes

Operation ID: `twitch_channel_emotes`

Returns the emotes a channel grants, split by the subscription tier or the cheering that unlocks them.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `login` (path, required): Required account username: 1 to 25 ASCII letters, digits or underscores. Use `users[].username` from [GET /twitch/api/users](https://monsterapi.co/docs/api/twitch-channel#accounts-by-identifier).

## Responses

- 200: Emotes of the channel

- 400: bad_request: invalid path or query parameter

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: Refusal envelope

Refused at the gateway: the `Authorization` header carries no API key, or a malformed one

- 402: Refusal envelope

Refused at the gateway: the credits of the account do not cover the price of the operation

- 403: Refusal envelope

Refused at the gateway: the API key is unknown or revoked

- 404: not_found: resource absent or all primary lists are empty

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: Refusal envelope

Refused at the gateway: a repeat of a request the gateway already checked differs from the original

- 429: Refusal envelope

Refused at the gateway: the account calls faster than its rate limit allows

- 500: upstream_shape: Twitch returned an unreadable or unexpected response; this does not indicate the end of a listing

- 501: requires_auth: requested information is unavailable to anonymous viewers

- 503: rate_limited: retry after Retry-After; upstream_error: retry after Retry-After; upstream_stale: Twitch access temporarily unavailable; no_proxies: Twitch access temporarily unavailable; overloaded: capacity unavailable

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

- default: Refusal envelope

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitch/api/channel/{login}/emotes' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```

---

# Twitch: Live chat snapshot

`GET /twitch/api/stream/{login}/chat`

Documentation: https://monsterapi.co/docs/api/twitch#live-chat-snapshot

Operation ID: `twitch_live_chat_snapshot`

Returns chat messages received during the requested window. Returns not_found (404) when the channel is absent or suspended, or no messages are received.

## Authentication

Send your billing API key in the `Authorization: Bearer <YOUR_API_KEY>` header. Your account login is separate.

## Inputs

- `login` (path, required): Required account username: 1 to 25 ASCII letters, digits or underscores. Use `users[].username` from [GET /twitch/api/users](https://monsterapi.co/docs/api/twitch-channel#accounts-by-identifier).

- `seconds` (query, optional): Snapshot duration in seconds, from 1 to 30. Defaults to 8.

- `limit` (query, optional): Maximum messages in the snapshot, from 1 to 1000. Defaults to 200.

## Responses

- 200: Messages collected in the window

- 400: bad_request: invalid path or query parameter

Refused at the gateway: the request target, path and query string together, is longer than 8,192 bytes; or the headers, the target counted among them, exceed 16,384 bytes or 64 fields

- 401: Refusal envelope

Refused at the gateway: the `Authorization` header carries no API key, or a malformed one

- 402: Refusal envelope

Refused at the gateway: the credits of the account do not cover the price of the operation

- 403: Refusal envelope

Refused at the gateway: the API key is unknown or revoked

- 404: not_found: channel absent or suspended, or an empty snapshot with no messages in the requested window

- 405: `method_not_allowed`: the endpoint answers GET alone, and any other method, HEAD included, is refused

Refused at the gateway: the path exists, but no operation on it takes the method of the request, HEAD included; `Allow` names the methods that do

- 409: Refusal envelope

Refused at the gateway: a repeat of a request the gateway already checked differs from the original

- 429: Refusal envelope

Refused at the gateway: the account calls faster than its rate limit allows

- 503: overloaded: no collection capacity; upstream_error: chat connection failed, including disconnection before joining; retry after Retry-After

Refused at the gateway: the check could not complete, the account is suspended, or the platform did not answer; each may pass later, and `Retry-After` comes only when the platform did not answer

- default: Refusal envelope

## Credits

Check the live price in the documentation before sending. Platform 2xx and 4xx responses can use credits, including empty data. Gateway refusals and 5xx responses do not use credits. Each pagination request is a separate call.

https://monsterapi.co/docs/pricing

## Request template

Replace path placeholders and add the required query parameters from the Inputs section before sending.

```shell

curl --get 'https://api.monsterapi.co/twitch/api/stream/{login}/chat' \
  -H 'Authorization: Bearer <YOUR_API_KEY>'

```
