Skip to content
TipPage Docs
Esc
↑↓navigate↵open⌘Jpreview

Create a reward

Creates a custom channel point reward on the streamer’s Twitch channel, owned by TipPage, so its redemptions can be resolved with fulfill / cancel. TipPage runs no actions on it - redemptions wait unfulfilled in the Twitch rewards queue and arrive on the twitch.channel_point_redemption webhook with is_managed: true. Needs a Twitch Affiliate or Partner channel.

POST/channel-points/rewards
Authorization
AuthorizationBearer token (tp_live_... or tpat_...) · headerrequired
A TipPage API key (`tp_live_...`, created in Dashboard → Settings → Developer) or an OAuth 2.0 access token (`tpat_...`, see the OAuth guide). Both carry the same scopes and are accepted on every endpoint.
Request body
requiredapplication/json
titlestringrequired
Unique among the channel's rewards.
max length 45
costintegerrequired
Channel points.
min 1
promptstring
Shown to viewers on Twitch.
max length 200
is_user_input_requiredboolean
Twitch asks the viewer for text when they redeem it.
default: false
background_colorstring
matches ^#[0-9A-Fa-f]{6}$
Responses
201Created.
rewardChannelPointReward
Show properties
idstring
twitch_reward_idstring
Matches `reward_id` on the redemption webhook.
titlestring
costinteger
promptstring | null
background_colorstring | null
is_user_input_requiredboolean
has_actionsboolean
The streamer has TipPage actions on it (dashboard Channel points page).
400Invalid body (`bad_request`), a reward with that title already exists (`duplicate_title`), Twitch refused the settings (`twitch_rejected`), or the account has no Twitch channel (`twitch_not_linked`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
401Missing or invalid credential (`missing_api_key` / `invalid_api_key`, or `invalid_token` for an expired/revoked OAuth access token).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
403The key lacks the scope (`missing_scope`), or the channel is not Affiliate or Partner (`not_eligible`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
409The streamer has to reconnect Twitch on the dashboard (`twitch_reauth`).
errorstringrequired
Human-readable message.
codestring
Machine-readable code (e.g. `missing_scope`, `not_in_queue`).
429Rate limit exceeded - check the `RateLimit-*` headers.
errorstring
502Twitch was unreachable or errored - retry shortly.
Request
curl -X POST "https://api.tippage.com/v1/channel-points/rewards" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "string",
  "cost": 1,
  "prompt": "string",
  "is_user_input_required": false,
  "background_color": "#9147FF"
}'
Response
{
  "reward": {
    "id": "cpr_0123456789abcdef",
    "twitch_reward_id": "string",
    "title": "string",
    "cost": 0,
    "prompt": "string",
    "background_color": "string",
    "is_user_input_required": true,
    "has_actions": true
  }
}