Chat endpoints let clients list recent channel messages, read the pinned message, send a message as the authorized user or a configured bot user, delete messages, and pin or unpin a message using the shared /v1/chats resource. Every https://api.blaze.stream/v1 request on this page must include client-id: YOUR_CLIENT_ID.
List chat messages
GEThttps://api.blaze.stream/v1/chats/messages
Returns recent non-deleted messages for the target channel. Results are limited to the current live session window, or roughly the last 8 hours when the channel is offline, and support cursor pagination up to 100 messages per request. Text messages include stored emotes with id, name, and imageUrl for rendering [emote:UUID] tokens. This array is empty when no emote metadata was stored.
Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.
Authorizations
Scopes
users.read
Query parameters
channelIdstringrequired
Target channel UUID to read messages from.
cursorstringoptional
Pagination cursor returned from the previous response.
Creates a text chat message in the target channel. With a User Access Token, send channelId and message; Blaze uses the token user as the sender, requires channel.moderate OAuth scope, and no channel moderator role is required. With an App Access Token, also send senderId; that user must have granted users.bot to the application. Blaze sanitizes the message text and returns the created message id as a UUID. Sending is rate limited server-side to 20 messages per 30 seconds; exceeding the limit returns 429 with Rate limit exceeded. Please slow down. Messages support [emote:UUID] tokens. Use active public Blaze emotes or emotes belonging to the target channel; subscriber-only emotes require the sender to be the channel owner or an active subscriber, including bot senders. Unknown, inactive, or other-channel emote IDs return 400; missing subscriber permission returns 403. Blaze resolves metadata from its own records and includes a deduplicated emotes array with id, name, and imageUrl in the response, chat history, live chat, and channel.chat.message events. Replace the example emote ID with an ID from the emotes endpoints.
Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.
Authorizations
The message is sent by the signed-in user from the access token. Do not send senderId; Blaze uses the token user as the sender and does not require a channel moderator role.
Scopes
channel.moderate
This is an OAuth scope requirement, not a channel moderator role requirement.
Request body
channelIdstringrequired
Target channel UUID where the chat action should run.
messagestring · max: 500required
Plain text chat message. Supports [emote:<uuid>] tokens using UUID v4 IDs from the emotes endpoints. The 500-character limit includes the full tokens. Emote metadata is resolved by the server; do not send an emotes array or image URLs.
Deletes a chat message from the target channel. This endpoint accepts both User Access Token and App Access Token. With a User Access Token, send channelId and messageId only; Blaze uses the token user as the delete actor, requires channel.moderate scope, and senderId is not required. The token user must own the channel or have the moderator role. With an App Access Token, send channelId, messageId, and senderId; Blaze uses senderId as the delete actor. senderId must have granted users.bot and must own the channel or have the moderator role.
Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.
Authorizations
Use when the signed-in token user is deleting the message. Send channelId and messageId only; do not send senderId. The token user must own the channel or have the moderator role.
Scopes
channel.moderate
Request body
channelIdstringrequired
Target channel UUID where the chat action should run.
messageIdstringrequired
Chat message UUID to remove from the target channel.
Returns the current pinned chat message for the target channel. Send channelId as a query string parameter. User Access Token and App Access Token are both accepted. User Access Token requires users.read scope; App Access Token does not require an additional scope. If there is no active pinned message, data is null.
Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.
Authorizations
Use when reading the pinned message with a signed-in user token.
Scopes
users.read
Query parameters
channelIdstring · UUIDrequired
Target channel UUID to read the pinned chat message from.
Pins a text chat message in the target channel. This endpoint only accepts a User Access Token and does not require an additional OAuth scope. Send channelId, moderatorId, and messageId. moderatorId must match the token user UUID, and moderatorId must be the same as channelId for the owner or have the moderator role in the channel.
Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.
Authorizations
Use when the signed-in token user is pinning or unpinning a message. Send channelId, moderatorId, and messageId. moderatorId must match the token user UUID, and that user must be the channel owner or have the moderator role in the channel.
Scopes
No additional OAuth scope required. moderatorId and the token user UUID must be the same UUID, and the user must be the channel owner or a channel moderator.
Request body
channelIdstring · UUIDrequired
Target channel UUID where the pin or unpin action should run.
Removes the pinned state for a chat message in the target channel. This endpoint only accepts a User Access Token and does not require an additional OAuth scope. Send channelId, moderatorId, and messageId. moderatorId must match the token user UUID, and moderatorId must be the same as channelId for the owner or have the moderator role in the channel.
Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.
Authorizations
Use when the signed-in token user is pinning or unpinning a message. Send channelId, moderatorId, and messageId. moderatorId must match the token user UUID, and that user must be the channel owner or have the moderator role in the channel.
Scopes
No additional OAuth scope required. moderatorId and the token user UUID must be the same UUID, and the user must be the channel owner or a channel moderator.
Request body
channelIdstring · UUIDrequired
Target channel UUID where the pin or unpin action should run.