Spyke

Syndicated from the fediverse. Read and engage on the original instance.

View original on activitypub.space
technical-discussion·Technical Discussionbyevan

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.

View original on activitypub.space
1

3 replies

@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). 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.)

2
activitypub.space

Of course, you can just bang on the API until you get 429 restricted, too.

2

@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.

2

You reached the end