Rate Limit Test Service

A simple HTTP service to test rate-limiting implementations. Designed for developers, QA teams, and security engineers.

Description

This HTTP service returns status code `200` if the request is within the configured rate limits, and `429` if the request exceeds the limit. Status codes `404` and `50x` indicate incorrect usage or server errors.

The service accepts configurable parameters directly in the URL:

GET /ratelimit/{rate}/{burst}

Usage Instructions

Example request to allow 10 requests per second with a burst of 5 requests:

GET https://http429.com/ratelimit/10/5

Responses:

curl example

Test the endpoint with `curl`:

curl -i https://http429.com/ratelimit/10/5

h2load example

Test the endpoint with `h2load` to simulate rate conditions:

h2load -D 10 -c 5 -m 1 https://http429.com/ratelimit/10/3
starting benchmark...
spawning thread #0: 5 total client(s). Timing-based test with 0s of warm-up time and 10s of main duration for measurements.
Warm-up started for thread #0.
progress: 20% of clients started
progress: 40% of clients started
progress: 60% of clients started
progress: 80% of clients started
progress: 100% of clients started
Warm-up phase is over for thread #0.
Main benchmark duration is started for thread #0.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
Main benchmark duration is over for thread #0. Stopping all clients.
Stopped all clients for thread #0

finished in 10.00s, 135.50 req/s, 24.65KB/s
requests: 1355 total, 1360 started, 1355 done, 100 succeeded, 1255 failed, 0 errored, 0 timeout
status codes: 100 2xx, 0 3xx, 1255 4xx, 0 5xx
traffic: 246.53KB (252450) total, 7.94KB (8130) headers (space savings 94.22%), 214.48KB (219625) data
					min         max         mean         sd        +/- sd
time for request:    11.27ms    337.83ms     36.40ms     76.96ms    92.69%
time for connect:    25.60ms     28.80ms     26.82ms      1.35ms    80.00%
time to 1st byte:    44.26ms    345.40ms    163.81ms    130.11ms    80.00%
req/s           :      23.40       29.49       27.10        2.59    80.00%
Requests: 1355, just 100 (10 rps * 10 seconds) succeeded.

Use Cases

Rate Limit Avoidance Testing

Test your proxy or scraper configurations to see if your methods can successfully avoid or handle rate limits.

Rate Limit Compliance Testing

Validate that your respectful client software correctly adapts to external services' rate limits, properly handling throttling.

API Gateway and Proxy Development

Ensure your gateway or proxy configurations accurately enforce your intended rate-limit policies.

Benchmarking and Reliability Testing

Evaluate your software’s retry logic, backoff algorithms, and error handling when facing real-world throttling conditions.

Security and Abuse Prevention

Simulate and validate the effectiveness of your rate-limit mechanisms against abuse, bots, and malicious traffic.

Legal

Privacy Policy

No data is collected or stored, however GDPR-compliant analytics by Plausible is used to track usage.

Terms of Service

There are no guarantees of uptime or availability. Use at your own risk. No liability is accepted for any loss or damage.

Human-readable stuff

The service is provided on the best effor basis on a small VPS. Consider running tests with relatively small number of requests to avoid hitting network/VM limits.

Powered by OpenResty

There is no reason to publish the source code, as it is just one simple config based on examples from resty.limit.req.