- open Devtools -> Network
- filter requests by
gql.twitch
- clear requests list and redeem a channel points reward
- right click the request and
copy as fetch
- go to the Console tab and paste the fetch request
- find
transactionIDfield in thebodyproperty and replace it with a random number (otherwise twitch will reject your request due to a duplicate request)
\"transactionID\":\""+Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)+"\"- remove the following properties to pass the twitch control test (poopoo CORS):
- credentials
- cache-control
- pragma
- priority
- press enter, up arrow, repeat to spam
You can also change the
transactionIDto some variable in a loop and spam, but only with a certain delay, because some requests will get lost/rejected.
You can automate this by grabbing all rewardID fields for certain channel and creating custom UI with buttons.
To grab all custom channel points reward IDs, look for the gql request that contains ChannelPointsContext in the payload. The response will have a customRewards property somewhere in the structure ¯\_(ツ)_/¯



Doesn't seem like this works anymore, tried this on firefox.
Edit: works perfectly on chrome, when changing the transaction id to a random number, deleting priority, and credentials.