Hello. I have three questions about Twitch’s IRC rate limits that I have not been able to resolve by reading the docs and searching existing forum threads. The two related threads I checked are these two, and they were not clear enough about the issues I ran into.
Previous forum threads seem to indicate that rate limits are by user only, and explicitly not by IP. The docs say rate limits are by user, but do not mention IP at all. However, I have run into an issue that seems to indicate the rate limits indeed are enforced by IP. I have written a bot that often gets requests in quick succession from many users. I implemented rate limiting on the bot, so if it sends 20 messages before 30 seconds have elapsed since the first message, it waits until those 30 seconds have elapsed before continuing to send messages. However, if I send one message using a separate account while the bot (running on the same network/IP) is in this cooldown mode, my entire IP gets muted for 30 minutes as if I overran the rate limit. Is there an undocumented rate limit that I am hitting, or have I missed/misunderstood something in the documentation?
Are the “Non-moderator” / “Moderator” rate limits listed here in the docs fully separate? Meaning: may an account send 100 messages in 30 seconds across all channels it is a moderator in, and also send 20 messages in those same 30 seconds across all channels in which it is not a moderator? Or does the more restrictive rate limit apply immediately once it sends a message in a channel in which it is not a moderator?
Do “message” rate limits apply to all communications sent to the server, or only
PRIVMSGs? For example, are JOIN messages, authentication attempts, tag requests, etc included in the “20 messages in 30 seconds” rate limit? (I’m aware of the separate JOIN rate limit. I only mention JOIN messages here as an example of a “message” that can be sent to the server that is not a
Thank you for any clarification that can be given!