Twitch OAuth authorization URL fails for moderator:read:chatters scope while CLI token generation works

I’m having trouble getting a bearer token for the moderator:read:chatters scope through the browser authorization flow, even though it works perfectly with the CLI tool.

What works:

  • I have mod permissions in the target channel
  • Other scopes like moderator:manage:announcements work fine through URL authorization
  • CLI command twitch token -u -s 'moderator:read:chatters' generates a valid token that works for API calls like Get Chatters

What doesn’t work:
Using the OAuth URL with the encoded scope parameter fails and shows a “site can’t be reached” error.

https://id.twitch.tv/oauth2/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost:3000&scope=moderator%3Aread%3Achatters

Could this be related to the beta status of this particular scope? Has anyone else encountered similar issues with browser-based OAuth for this specific permission?

Had the same issue a few months ago when building a web app. Turns out the redirect URI in my Twitch app settings was the problem. Even though localhost worked fine for other scopes, moderator:read:chatters is way pickier about exact URI matching. Check your Twitch Developer Console and make sure the redirect URI matches exactly what you’re using. Also, the user needs to be a moderator when they authorize - not just when you call the API later. The CLI handles this validation differently than browser flow. One more thing - double-check you’re using the right client ID and that it’s set up for web applications, not desktop/mobile.