Rate Limit Testing
Location: Sidebar → Rate Limit Testing
The Rate Limit Tester can be used to send any saved request a configurable number of times and reporting latency metrics in real time. The main purpose of this is to test when you have applied rate limit against users. For example, you may have a rate limit set against Anonymous users where they can only make 100 requests per minute. In this case, you can send 200 requests as an Anonymous user and ensure that responses are blocked after the 100th request.
The Rate Limit Tester can be used against any of the supported request types (Tables, RPC Functions, Edge Functions, Storage Buckets).
Configuration
| Setting | Range | Description |
|---|---|---|
| Request | Any saved collection item | The request to load test. |
| Total requests | 1 – 10,000 | Total number of requests to send. |
| Concurrency | 1 – 10 | Number of simultaneous requests. |
Running a Rate Limit Test
- Select a saved request from the picker.
- Set Total Requests and Concurrency.
- If the request uses variables, enter test values in the Variables panel.
- Click Start.
Real-Time Metrics
| Metric | Description |
|---|---|
| Progress | Percentage of total requests completed. |
| Success count | Requests that completed without error. |
| Failure count | Requests that returned an error. |
| Average latency | Mean response time across all completed requests. |
| Min / Max latency | Fastest and slowest individual response times. |
| Latency distribution | Bar chart showing how response times are distributed. |
| Response log | A scrollable log of the last 500 individual responses, with expandable details. |
Auth Context Handling
For the Email User and Anonymous User contexts, the rate limit tester restores the session before the test begins. All requests in the run share the same session token.
Rate Limit Discovery
Rate limit testing is an effective way to discover rate limits. Ramp up request volume until 429 (Too Many Requests) responses appear in the log. The response log captures headers such as Retry-After and X-RateLimit-* so you can see exactly what limits are in place.