APIs

Moderation

Moderation endpoints let clients list, add, and remove channel moderators, ban users, remove bans, and temporarily mute users in a channel. Every https://api.blaze.stream/v1 request on this page must include client-id: YOUR_CLIENT_ID.

List moderated channels

GEThttps://api.blaze.stream/v1/moderation/channels

Returns channels where the target user has the moderator role. User Access Token requires users.read and userId must match the token user UUID. App Access Token is accepted when the userId user granted users.read to the application.

Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.

Authorizations

Use when listing channels moderated by the signed-in user. userId must match the token user UUID.

Scopes

users.read

Query parameters

userIdstring · UUIDrequired

Target user UUID whose moderated channels should be listed.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/moderation/channels
GET /v1/moderation/channels?userId=2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f HTTP/1.1
Host: api.blaze.stream
Authorization: Bearer YOUR_ACCESS_TOKEN
client-id: YOUR_CLIENT_ID
Accept: application/json
200OK
{
  "success": true,
  "message": "success",
  "data": [
    {
      "uuid": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
      "username": "creator",
      "avatarUrl": "https://cdn.blaze.stream/avatar.png"
    }
  ]
}

List moderators

GEThttps://api.blaze.stream/v1/moderation/moderators

Returns moderators for the target channel. This endpoint accepts both User Access Token and App Access Token with the same required channelId query parameter.

Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.

Authorizations

Use either User Access Token or App Access Token. Both token types use the same required channelId query parameter.

Query parameters

channelIdstring · UUIDrequired

Target channel UUID to list moderators for.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/moderation/moderators
GET /v1/moderation/moderators?channelId=9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90 HTTP/1.1
Host: api.blaze.stream
Authorization: Bearer YOUR_ACCESS_TOKEN
client-id: YOUR_CLIENT_ID
Accept: application/json
200OK
{
  "success": true,
  "message": "success",
  "data": [
    {
      "id": "0f3d8a67-4d25-48f1-a3c5-1f7a9b2c6d30",
      "displayName": "Moderator",
      "slug": "moderator",
      "avatarUrl": "https://cdn.blaze.stream/avatar.png"
    }
  ]
}

Add moderator

POSThttps://api.blaze.stream/v1/moderation/moderators

Adds userId as a moderator for channelId. Only User Access Token is accepted. channelId and userId must both be UUID values, and the token user's UUID must match the body channelId.

Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.

Authorizations

Only User Access Token is accepted. The token user's UUID must match channelId in the request body.

Scopes

channel.moderate

The token user must be the channel owner: token user UUID and body channelId must be the same UUID.

Request body

channelIdstring · UUIDrequired

Target channel UUID where the moderation action should run.

userIdstring · UUIDrequired

User UUID to add to or remove from the channel moderator list.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
POST/v1/moderation/moderators
POST /v1/moderation/moderators HTTP/1.1
Host: api.blaze.stream
Authorization: Bearer YOUR_ACCESS_TOKEN
client-id: YOUR_CLIENT_ID
Accept: application/json
content-type: application/json

{
  "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
  "userId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f"
}
200OK
{
  "success": true,
  "message": "success"
}

Remove moderator

DELETEhttps://api.blaze.stream/v1/moderation/moderators

Removes userId from the moderator list for channelId. Only User Access Token is accepted. channelId and userId must both be UUID values, and the token user's UUID must match the body channelId.

Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.

Authorizations

Only User Access Token is accepted. The token user's UUID must match channelId in the request body.

Scopes

channel.moderate

The token user must be the channel owner: token user UUID and body channelId must be the same UUID.

Request body

channelIdstring · UUIDrequired

Target channel UUID where the moderation action should run.

userIdstring · UUIDrequired

User UUID to add to or remove from the channel moderator list.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
DELETE/v1/moderation/moderators
DELETE /v1/moderation/moderators HTTP/1.1
Host: api.blaze.stream
Authorization: Bearer YOUR_ACCESS_TOKEN
client-id: YOUR_CLIENT_ID
Accept: application/json
content-type: application/json

{
  "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
  "userId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f"
}
200OK
{
  "success": true,
  "message": "success"
}

Ban user

POSThttps://api.blaze.stream/v1/moderation/ban

Bans a user from the target channel. Send either banUserId or banUsername to identify the user. Blaze prevents banning the channel itself, marks the user as banned, deletes that user's existing channel messages, and emits the related moderation updates.

Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.

Authorizations

Use when the signed-in token user is acting as the moderator. The token user must own the channel or have the channel moderator role.

Scopes

channel.moderate

The OAuth scope is required in addition to channel ownership or channel moderator permission.

Request body

channelIdstring · UUIDrequired

Target channel UUID where the moderation action should run.

banUserIdstringoptional

Target user UUID. Provide either banUserId or banUsername.

banUsernamestringoptional

Target username. Provide either banUsername or banUserId.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
POST/v1/moderation/ban
POST /v1/moderation/ban HTTP/1.1
Host: api.blaze.stream
Authorization: Bearer YOUR_ACCESS_TOKEN
client-id: YOUR_CLIENT_ID
Accept: application/json
content-type: application/json

{
  "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
  "banUserId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f"
}
200OK
{
  "success": true,
  "message": "success",
  "data": {
    "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
    "moderatorId": "0f3d8a67-4d25-48f1-a3c5-1f7a9b2c6d30",
    "bannedUserId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
    "bannedUserDisplayName": "Viewer",
    "bannedAt": "2026-05-04T12:00:00.000Z"
  }
}

Remove ban

DELETEhttps://api.blaze.stream/v1/moderation/ban

Deletes the ban for a user who is currently banned in the target channel. Send either banUserId or banUsername to identify the user. If the user is not currently banned, Blaze returns 404.

Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.

Authorizations

Use when the signed-in token user is acting as the moderator. The token user must own the channel or have the channel moderator role.

Scopes

channel.moderate

The OAuth scope is required in addition to channel ownership or channel moderator permission.

Request body

channelIdstring · UUIDrequired

Target channel UUID where the moderation action should run.

banUserIdstringoptional

Target user UUID. Provide either banUserId or banUsername.

banUsernamestringoptional

Target username. Provide either banUsername or banUserId.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
DELETE/v1/moderation/ban
DELETE /v1/moderation/ban HTTP/1.1
Host: api.blaze.stream
Authorization: Bearer YOUR_ACCESS_TOKEN
client-id: YOUR_CLIENT_ID
Accept: application/json
content-type: application/json

{
  "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
  "banUserId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f"
}
200OK
{
  "success": true,
  "message": "success"
}

Mute user

POSThttps://api.blaze.stream/v1/moderation/mute

Mutes the target user in the channel for 10 minutes and deletes that user's existing channel messages. If the user already has an active mute, Blaze returns 409 with the existing mute expiration.

Required header for every https://api.blaze.stream/v1 request: client-id: YOUR_CLIENT_ID.

Authorizations

Use when the signed-in token user is acting as the moderator. The token user must own the channel or have the channel moderator role.

Scopes

channel.moderate

The OAuth scope is required in addition to channel ownership or channel moderator permission.

Request body

channelIdstring · UUIDrequired

Target channel UUID where the moderation action should run.

mutedUserIdstringrequired

Target user UUID to mute for 10 minutes.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
POST/v1/moderation/mute
POST /v1/moderation/mute HTTP/1.1
Host: api.blaze.stream
Authorization: Bearer YOUR_ACCESS_TOKEN
client-id: YOUR_CLIENT_ID
Accept: application/json
content-type: application/json

{
  "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
  "mutedUserId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f"
}
200OK
{
  "success": true,
  "message": "success",
  "data": {
    "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
    "moderatorId": "0f3d8a67-4d25-48f1-a3c5-1f7a9b2c6d30",
    "mutedUserId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
    "mutedUserDisplayName": "Viewer",
    "muteExpiresAt": "2026-05-04T12:10:00.000Z"
  }
}