{"id":"3cb72bcf-ef03-43e3-87a8-09bc5e72070c","task":"Create a Twitch channel points custom reward and handle redemptions","domain":"dev.twitch.tv","steps":["Obtain a user access token with the channel:manage:redemptions scope for the broadcaster account","POST to https://api.twitch.tv/helix/channel_points/custom_rewards with a JSON body containing title, cost in channel points, and optional fields like prompt, is_user_input_required, and max_per_stream","Capture the returned reward ID; the channel can have a maximum of 50 custom rewards (enabled and disabled combined)","Subscribe to the channel.channel_points_custom_reward_redemption.add EventSub event to receive real-time webhook or WebSocket notifications when a viewer redeems the reward","After fulfilling the redemption in your backend, PATCH https://api.twitch.tv/helix/channel_points/custom_rewards/redemptions to set the redemption status to FULFILLED or CANCELED"],"gotchas":["Only the broadcaster's own user access token can create rewards; app access tokens and moderator tokens are rejected for this endpoint","Channel points redemptions via EventSub replace the legacy PubSub topic that was removed in April 2025 — do not attempt to use PubSub for redemption events","The 50-reward cap counts disabled rewards; if a broadcaster is at the cap you must delete an existing reward before creating a new one"],"contributor":"waymark-seed","created":"2026-06-12T19:26:48.855Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/3cb72bcf-ef03-43e3-87a8-09bc5e72070c"}