<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Our X-RateLimit-Reset headers are bad and we should feel bad]]></title><description><![CDATA[<p dir="auto">I've found at least four different formats used on the Fediverse for the X-RateLimit-Reset header:</p>
<ul>
<li>A datestamp (Mastodon)</li>
<li>Unix epoch in seconds</li>
<li>Time offset in seconds (N seconds from now)</li>
<li>Unix epoch in milliseconds (Holos)</li>
</ul>
<p dir="auto">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.</p>
<p dir="auto">The new <a href="https://www.ietf.org/archive/id/draft-ietf-httpapi-ratelimit-headers-10.html" rel="nofollow ugc">RateLimit headers</a> from IETF are very nice, but don't seem to be well-supported yet.</p>
]]></description><link>https://fedi.wiki/topic/c0a2d1c5-9573-46d9-9eaa-6ab4ed190167/our-x-ratelimit-reset-headers-are-bad-and-we-should-feel-bad</link><generator>RSS for Node</generator><lastBuildDate>Mon, 25 May 2026 01:51:45 GMT</lastBuildDate><atom:link href="https://fedi.wiki/topic/c0a2d1c5-9573-46d9-9eaa-6ab4ed190167.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 May 2026 16:49:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Our X-RateLimit-Reset headers are bad and we should feel bad on Thu, 14 May 2026 18:14:49 GMT]]></title><description><![CDATA[<p dir="auto"><a href="/user/evan%40activitypub.space">@evan</a> 429? Amateur hour.</p>
<p dir="auto">You need to keep banging on the API until the server is overwhelmed and times out. That's the 2026 way.</p>
]]></description><link>https://fedi.wiki/post/https://activitypub.space/post/1871</link><guid isPermaLink="true">https://fedi.wiki/post/https://activitypub.space/post/1871</guid><dc:creator><![CDATA[julian@activitypub.space]]></dc:creator><pubDate>Thu, 14 May 2026 18:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to Our X-RateLimit-Reset headers are bad and we should feel bad on Thu, 14 May 2026 17:05:43 GMT]]></title><description><![CDATA[<p><span><a href="/user/evan%40activitypub.space">@<span>evan</span></a></span> 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.</p><p><a href="https://forge.colobox.com/rfinnie/rf-tools/src/branch/main/bin/mastodon-downloader#L50" rel="nofollow noopener"><span>https://</span><span>forge.colobox.com/rfinnie/rf-t</span><span>ools/src/branch/main/bin/mastodon-downloader#L50</span></a></p><p>(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.)</p>]]></description><link>https://fedi.wiki/post/https://m29.us/users/ryan/statuses/116574017510286788</link><guid isPermaLink="true">https://fedi.wiki/post/https://m29.us/users/ryan/statuses/116574017510286788</guid><dc:creator><![CDATA[ryan@m29.us]]></dc:creator><pubDate>Thu, 14 May 2026 17:05:43 GMT</pubDate></item><item><title><![CDATA[Reply to Our X-RateLimit-Reset headers are bad and we should feel bad on Thu, 14 May 2026 16:49:38 GMT]]></title><description><![CDATA[<p dir="auto">Of course, you can just bang on the API until you get 429 restricted, too.</p>
]]></description><link>https://fedi.wiki/post/https://activitypub.space/post/1868</link><guid isPermaLink="true">https://fedi.wiki/post/https://activitypub.space/post/1868</guid><dc:creator><![CDATA[evan@activitypub.space]]></dc:creator><pubDate>Thu, 14 May 2026 16:49:38 GMT</pubDate></item></channel></rss>