Skip to content
TipPage Docs
Esc
navigateopen⌘Jpreview

Send a chat message

The bot says your message in the streamer’s Twitch chat, spoken by the same identity as every other bot line (TipPageBot or the linked custom bot). Sent verbatim - no template variables - and it can’t start with / or !, so the bot never runs Twitch slash commands or triggers other bots. Own rate limit on top of the global ones: 20 messages per 30 seconds per streamer, shared across all keys. Requires chat:write.

POST/chat/messages
Authorization
AuthorizationBearer token (tp_live_...) · headerrequired
A TipPage API key, created in Dashboard → Settings → Developer.
Request body
requiredapplication/json
messagestringrequired
What the bot says. Can't start with `/` or `!`.
max length 500
Responses
200Done.
successboolean
400Missing message (`bad_request`), over 500 characters (`message_too_long`), or disallowed content (`message_disallowed`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
401Missing or invalid API key (`missing_api_key` / `invalid_api_key`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
403The key lacks the required scope (`missing_scope`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
required_scopestring
409The bot can't speak right now: switched off in the dashboard (`bot_disabled`), or not connected to the channel (`bot_unavailable` - transient, retry shortly).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
429Rate limit exceeded - check the `RateLimit-*` headers.
errorstring
502The chat gateway is unreachable (`gateway_unavailable`) - retry shortly.
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
Request
curl -X POST "https://api.tippage.com/v1/chat/messages" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "message": "string"
}'
Response
{
  "success": true
}