Our X-RateLimit-Reset headers are bad and we should feel bad
-
I've found at least four different formats used on the Fediverse for the X-RateLimit-Reset header:
- A datestamp (Mastodon)
- Unix epoch in seconds
- Time offset in seconds (N seconds from now)
- Unix epoch in milliseconds (Holos)
It's possible to use some heuristics for these (looks like a date, looks like an integer, range of the integer), which are pretty reliable.
The new RateLimit headers from IETF are very nice, but don't seem to be well-supported yet.
-
I've found at least four different formats used on the Fediverse for the X-RateLimit-Reset header:
- A datestamp (Mastodon)
- Unix epoch in seconds
- Time offset in seconds (N seconds from now)
- Unix epoch in milliseconds (Holos)
It's possible to use some heuristics for these (looks like a date, looks like an integer, range of the integer), which are pretty reliable.
The new RateLimit headers from IETF are very nice, but don't seem to be well-supported yet.
Of course, you can just bang on the API until you get 429 restricted, too.
-
I've found at least four different formats used on the Fediverse for the X-RateLimit-Reset header:
- A datestamp (Mastodon)
- Unix epoch in seconds
- Time offset in seconds (N seconds from now)
- Unix epoch in milliseconds (Holos)
It's possible to use some heuristics for these (looks like a date, looks like an integer, range of the integer), which are pretty reliable.
The new RateLimit headers from IETF are very nice, but don't seem to be well-supported yet.
@evan I have a Python function I've built up over time for handling rate limiting headers (no canonical location for it; I just copy it around when needed). I've come across epoch (GitHub) and ISO 8601 (Mastodon, Jira), but haven't seen the other two. I'll take a look at the RateLimit spec, thanks.
https://forge.colobox.com/rfinnie/rf-tools/src/branch/main/bin/mastodon-downloader#L50
(For the last few weeks I've been working on moving stuff to Forgejo, and I'm surprised their API doesn't have rate limit headers.)
-
Of course, you can just bang on the API until you get 429 restricted, too.
@evan 429? Amateur hour.
You need to keep banging on the API until the server is overwhelmed and times out. That's the 2026 way.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login