Rate Limiter Simulator
Get a free URL backed by a real token bucket. Hit it with curl and watch it drain and refill live.
Frequently Asked Questions
How does the rate limiter simulator work?
Create a bucket URL and it starts full. Every request sent to that URL — from curl, a script, or the Send test hit button — draws one token. If a token is available you get a 200 and the bucket empties by one; if not you get a 429 with a Retry-After header. Tokens refill continuously at the rate you set, and the gauge on the page shows the level rising and falling live.
Is this a real token bucket, or just a visual?
It runs a real token-bucket algorithm on the server (a Cloudflare Durable Object), so concurrent hits from multiple terminals or scripts are handled correctly, the same way a production API gateway would. The animation reflects the actual server-side token count, not a client-side simulation.
Can I test it with a curl loop?
Yes — copy the ready-made curl loop under the bucket URL and paste it into a terminal. It fires a quick burst of requests so you can watch the bucket drain past its capacity and start returning 429s, then refill once you stop.
What can I configure?
Capacity, which is the burst size (how many requests can go through instantly from a full bucket), and refill as "N tokens every M seconds" — for example 10 tokens every 60 seconds for a slow, minute-scale limit, or 2 tokens every second for something snappier. Applying new settings refills the bucket to full.
Does it show how many requests the bucket has received?
Yes. The hit log header shows the true lifetime count — total requests received, split into allowed and denied — even once the visible list is capped at the last 40. Clearing the log resets both the list and that count.
Is everyone hitting the URL sharing the same bucket?
Yes — this simulates a single shared rate limit, the way a basic API gateway limit works before you add per-key or per-IP buckets. Anyone with the URL can draw a token, but only this browser holds the key to change settings or delete the bucket.
How long does a bucket last?
A bucket is deleted after 6 hours with no hits and no open tab watching it, or immediately if you delete it yourself.
Related Tools
Webhook Tester
Get a free temporary webhook URL and inspect every request it receives, live: method, headers, query, and body.
API Rate Limit Calculator
Calculate and visualize API rate limits across different time windows.
HTTP Status Codes
Complete reference for all HTTP status codes with descriptions, use cases, and MDN links.