APIs

Channels

Channel endpoints expose live stream state, channel analytics, audience lists, activity feeds, and editable channel metadata for the authorized user. Every https://api.blaze.stream/v1 request on this page must include client-id: YOUR_CLIENT_ID.

Get stream info

GEThttps://api.blaze.stream/v1/channels/stream-info

Checks whether the authorized channel is live, or the channelId query target when using an App Access Token. Live responses include title, preview image, start time, and category metadata.

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

Authorizations

Scopes

users.read

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/stream-info
GET /v1/channels/stream-info 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": {
    "isLive": true,
    "title": "Building with Blaze",
    "previewImgUrl": "https://cdn.blaze.stream/previews/channel.jpg",
    "startedAt": "2026-05-04T12:00:00.000Z",
    "category": {
      "id": 12,
      "title": "Just Chatting"
    }
  }
}

Get channel stats

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

Returns high-level counters for the authorized channel, or for the channelId query target when using an App Access Token.

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

Authorizations

Scopes

users.read

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/stats
GET /v1/channels/stats 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": {
    "followerCount": 1204,
    "subscriberCount": 84,
    "viewerCount": 312
  }
}

List followers

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

Returns a cursor-paginated list of users following the authorized channel, including subscription context for each row.

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

Authorizations

Scopes

users.read

Query parameters

cursorstringoptional

Pagination cursor returned from the previous response.

limitintegeroptional

Maximum number of rows to return.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/followers
GET /v1/channels/followers?limit=20 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": {
    "rows": [
      {
        "id": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
        "displayName": "Viewer",
        "slug": "viewer",
        "avatarUrl": "https://cdn.blaze.stream/avatar.png",
        "isFollower": true,
        "followedAt": "2026-05-04T12:00:00.000Z",
        "subscriptionInfo": {
          "isSubscriber": false,
          "hadSubscriptionBefore": false,
          "renewCount": null,
          "streakCount": null,
          "expiresAt": null,
          "subscribedAt": null
        }
      }
    ],
    "pagination": {
      "cursor": "NEXT_CURSOR"
    }
  }
}

List followed channels

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

Returns channels followed by the authorized user, including notification state and subscription context.

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

Authorizations

Scopes

users.read

Query parameters

cursorstringoptional

Pagination cursor returned from the previous response.

limitintegeroptional

Maximum number of rows to return.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/followed
GET /v1/channels/followed?limit=20 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": {
    "rows": [
      {
        "id": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
        "displayName": "Creator",
        "slug": "creator",
        "avatarUrl": "https://cdn.blaze.stream/channel.png",
        "isFollower": true,
        "followedAt": "2026-05-04T12:00:00.000Z",
        "isNotificationEnabled": true,
        "subscriptionInfo": {
          "isSubscriber": true,
          "hadSubscriptionBefore": true,
          "renewCount": 3,
          "streakCount": 2,
          "expiresAt": true,
          "subscribedAt": "2026-03-04T12:00:00.000Z"
        }
      }
    ],
    "pagination": {
      "cursor": "NEXT_CURSOR"
    }
  }
}

List banned users

GEThttps://api.blaze.stream/v1/channels/banned-users

Returns users banned from the authorized channel and the moderator account that applied each ban.

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

Authorizations

Scopes

users.read

Query parameters

cursorstringoptional

Pagination cursor returned from the previous response.

limitintegeroptional

Maximum number of rows to return.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/banned-users
GET /v1/channels/banned-users?limit=20 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": {
    "rows": [
      {
        "id": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
        "displayName": "Viewer",
        "slug": "viewer",
        "bannedAt": "2026-05-04T12:00:00.000Z",
        "bannedBy": {
          "id": "0f3d8a67-4d25-48f1-a3c5-1f7a9b2c6d30",
          "displayName": "Moderator",
          "slug": "moderator"
        }
      }
    ],
    "pagination": {
      "cursor": "NEXT_CURSOR"
    }
  }
}

List channel VIP users

GEThttps://api.blaze.stream/v1/channels/roles/vips

Returns users assigned to the VIP role for the authorized channel, or for the channelId query target when using an App Access Token.

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

Authorizations

Scopes

users.read

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/roles/vips
GET /v1/channels/roles/vips 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": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
      "displayName": "VIP Viewer",
      "slug": "vip-viewer",
      "avatarUrl": "https://cdn.blaze.stream/avatar.png"
    }
  ]
}

Add VIP user

POSThttps://api.blaze.stream/v1/channels/vips

Adds userId to the channel VIP role. 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. This must match the UUID of the user from the User Access Token.

userIdstring · UUIDrequired

User UUID to add to the channel role.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
POST/v1/channels/vips
POST /v1/channels/vips 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",
  "data": {
    "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
    "userId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
    "role": "vip"
  }
}

Remove VIP user

DELETEhttps://api.blaze.stream/v1/channels/vips

Removes userId from the channel VIP role. 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. This must match the UUID of the user from the User Access Token.

userIdstring · UUIDrequired

User UUID to add to the channel role.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
DELETE/v1/channels/vips
DELETE /v1/channels/vips 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"
}

List channel mod users

GEThttps://api.blaze.stream/v1/channels/roles/mods

Returns users assigned to the moderator role for the authorized channel, or for the channelId query target when using an App Access Token.

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

Authorizations

Scopes

users.read

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/roles/mods
GET /v1/channels/roles/mods 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"
    }
  ]
}

List channel OG users

GEThttps://api.blaze.stream/v1/channels/roles/ogs

Returns users assigned to the OG role for the authorized channel, or for the channelId query target when using an App Access Token.

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

Authorizations

Scopes

users.read

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/roles/ogs
GET /v1/channels/roles/ogs 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": "6c7e0b4d-3a21-4a7f-8c91-25d4f9b8e0a1",
      "displayName": "OG Viewer",
      "slug": "og-viewer",
      "avatarUrl": "https://cdn.blaze.stream/avatar.png"
    }
  ]
}

Add OG user

POSThttps://api.blaze.stream/v1/channels/ogs

Adds userId to the channel OG role. 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. This must match the UUID of the user from the User Access Token.

userIdstring · UUIDrequired

User UUID to add to the channel role.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
POST/v1/channels/ogs
POST /v1/channels/ogs 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",
  "data": {
    "channelId": "9b7f3c2a-2f41-4f5e-9f54-6c1d8a2b7e90",
    "userId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
    "role": "og"
  }
}

Remove OG user

DELETEhttps://api.blaze.stream/v1/channels/ogs

Removes userId from the channel OG role. 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. This must match the UUID of the user from the User Access Token.

userIdstring · UUIDrequired

User UUID to add to the channel role.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
DELETE/v1/channels/ogs
DELETE /v1/channels/ogs 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"
}

List subscribers

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

Returns active subscribers for the authorized channel with follower and subscription details.

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

Authorizations

Scopes

users.read

Query parameters

cursorstringoptional

Pagination cursor returned from the previous response.

limitintegeroptional

Maximum number of rows to return.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/subscribers
GET /v1/channels/subscribers?limit=20 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": {
    "rows": [
      {
        "id": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
        "displayName": "Subscriber",
        "slug": "subscriber",
        "avatarUrl": "https://cdn.blaze.stream/avatar.png",
        "isFollower": true,
        "followedAt": "2026-05-04T12:00:00.000Z",
        "subscriptionInfo": {
          "isSubscriber": true,
          "hadSubscriptionBefore": true,
          "renewCount": 3,
          "streakCount": 2,
          "expiresAt": "2026-06-04T12:00:00.000Z",
          "subscribedAt": "2026-03-04T12:00:00.000Z"
        }
      }
    ],
    "pagination": {
      "cursor": "NEXT_CURSOR"
    }
  }
}

List recent activities

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

Returns recent activity notifications such as followers, subscribers, gifts, thanks, and votes.

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

Authorizations

Scopes

users.read

Query parameters

cursorstringoptional

Pagination cursor returned from the previous response.

limitintegeroptional

Maximum number of rows to return.

typestringoptional

Filter the activity feed by a supported activity type.

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/activities
GET /v1/channels/activities?limit=20&type=follow 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": {
    "rows": [
      {
        "id": 12345,
        "type": "new_follower",
        "createdAt": "2026-05-04T12:00:00.000Z",
        "info": {
          "userId": "2f4c6d9a-8e2b-4d77-9f0d-3a1b2c4d5e6f",
          "displayName": "Viewer",
          "slug": "viewer"
        },
        "action": {}
      }
    ],
    "pagination": {
      "cursor": "NEXT_CURSOR"
    }
  }
}

Get live stats

GEThttps://api.blaze.stream/v1/channels/live-stats

Returns live-session counters for the authorized channel, or for the channelId query target when using an App Access Token.

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

Authorizations

Scopes

users.read

Responses

  • 200OKapplication/json
  • 400Bad Requestapplication/json
  • 401Unauthorizedapplication/json
  • 403Forbiddenapplication/json
  • 500Internal Server Errorapplication/json
GET/v1/channels/live-stats
GET /v1/channels/live-stats 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": {
    "startedAt": "2026-05-04T12:00:00.000Z",
    "isLive": true,
    "newFollowerCount": 42,
    "newSubscriberCount": 8,
    "viewerCount": 312
  }
}

Update channel info

POSThttps://api.blaze.stream/v1/channels/info

Updates channel title, language, and optional category. When a live stream is active, matching stream fields are updated too.

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

Authorizations

Scopes

channel.moderate

Request body

titlestringrequired

Channel or live stream title.

langstringrequired

Channel language code.

categoryIdintegeroptional

Category id to assign to the channel.

Responses

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

{
  "title": "Building with Blaze",
  "lang": "en",
  "categoryId": 12
}
200OK
{
  "success": true,
  "message": "success",
  "data": {
    "title": "Building with Blaze",
    "lang": "en",
    "categoryId": 12,
    "categoryTitle": "Just Chatting"
  }
}