Skip to content

Bot integration

The Chatters module exposes a plain-text bot API that external chat bots (Nightbot, StreamElements, Fossabot, and others) can call from a $(urlfetch ...) or equivalent command. The API returns a plain-text string the bot pastes directly to chat — no parsing required.

Getting your API key

  1. Open Chatters in the StreamerCatalyst dashboard.
  2. Go to Settings → API key.
  3. Copy the 64-character hex key shown. If you need to rotate it, click Regenerate.

Keep your API key private. Anyone with it can call the bot API on behalf of your channel.

Base URL

All bot API endpoints are on:

https://chatters.streamercatalyst.com

Endpoints

Random chatter

Returns a random chatter’s display name (or a comma-separated list if n > 1).

GET /api/random?apikey=<key>
GET /api/random?apikey=<key>&filter=<filter>
GET /api/random?apikey=<key>&filter=<filter>&n=<count>
GET /api/random?apikey=<key>&format=<template>
ParameterDescription
apikeyYour 64-char hex API key (required)
filterOptional chatter filter (see Filter values)
nNumber of chatters to return, 1–10 (default: 1)
formatFormat string with {0}, {1}, … placeholders replacing names

Example response:

StreamerName

Example with n=3:

Alice, Bob, Carol

FMK (Marry/Kill picker)

Returns exactly three random chatters formatted as a comparison.

GET /api/fmk?apikey=<key>
ParameterDescription
apikeyYour 64-char hex API key (required)

Example response:

Alice vs Bob vs Carol

Requires at least three chatters. Returns an error string if the stream has fewer.

Chatter list

Returns the full chatter list as plain text (comma-separated) or JSON.

GET /api/chatters?apikey=<key>
GET /api/chatters?apikey=<key>&filter=<filter>
GET /api/chatters?apikey=<key>&filter=<filter>&format=json
ParameterDescription
apikeyYour 64-char hex API key (required)
filterOptional chatter filter (see Filter values)
formatPass json to receive a JSON array instead of plain text

Example plain-text response:

Alice, Bob, Carol, Dave

Filter values

Filters are comma-separated tokens. Combine them to narrow the chatter pool — for example sub,not_follower returns subscribers who are not followers.

FilterKeeps chatters who are…
subAny subscriber
not_subNot subscribed
tier1Tier 1 subscriber
tier2Tier 2 subscriber
tier3Tier 3 subscriber
vipVIP
modModerator
followerFollowing the channel
not_followerNot following the channel

Error responses

All endpoints return a plain-text error string when something goes wrong — the bot pastes it to chat, which is useful for debugging:

ErrorCause
Invalid or missing apikeyThe apikey param is absent or not recognised
Channel not found or disabledThe Chatters module is disabled for this channel
Channel tokens expired — broadcaster must re-authenticateThe broadcaster’s Twitch OAuth has expired; they need to re-connect on the dashboard
No chatters found — is the stream live?The stream is offline or the chatter list is empty
No chatters found matching filterThe filter returned zero results
Not enough chatters for FMKFewer than three chatters in the live chatter list

Nightbot setup

In Nightbot, create a custom command with a $(urlfetch ...) response:

$(urlfetch https://chatters.streamercatalyst.com/api/random?apikey=YOUR_KEY)

To pick from subscribers only:

$(urlfetch https://chatters.streamercatalyst.com/api/random?apikey=YOUR_KEY&filter=sub)

StreamElements setup

In StreamElements, use ${customapi.URL} in a command response:

${customapi.https://chatters.streamercatalyst.com/api/random?apikey=YOUR_KEY}

Fossabot setup

In Fossabot, use $(customapi URL):

$(customapi https://chatters.streamercatalyst.com/api/random?apikey=YOUR_KEY)

Public commands page

Each channel’s public command list is available at:

https://chatters.streamercatalyst.com/c/<channel_login>/commands

This page is unauthenticated and can be linked from your !commands command. The broadcaster must enable Public commands page in Chatters settings for the page to be visible.