@lxgicstudios/api-rate
v1.0.0
Published
Test and measure API rate limits. Send increasing request bursts, detect throttling, show requests/second before 429, retry-after values, and rate limit headers.
Downloads
97
Maintainers
Readme
@lxgicstudios/api-rate
Test and measure API rate limits. Send increasing request bursts, detect when throttling kicks in, and show requests/second before 429 along with retry-after values and rate limit headers.
Install
npm install -g @lxgicstudios/api-rateOr run directly:
npx @lxgicstudios/api-rate https://api.example.com/endpointUsage
# Basic rate limit test
api-rate https://api.example.com/endpoint
# Custom ramp-up pattern
api-rate https://api.example.com --ramp 1,5,10,50,100
# Set test duration
api-rate https://api.example.com --duration 60s
# Add authentication headers
api-rate https://api.example.com -H "Authorization: Bearer your-token"
# POST requests
api-rate https://api.example.com -m POST
# JSON output for analysis
api-rate https://api.example.com --jsonFeatures
- Zero dependencies - uses only Node.js builtins
- Sends increasing concurrent request bursts to detect rate limits
- Shows exactly when throttling kicks in (HTTP 429)
- Displays requests/second you can sustain safely
- Captures rate-limit headers (X-RateLimit-*, Retry-After)
- Warm-up request before testing starts
- Progress bar showing test advancement
- Status code distribution for each burst
- Configurable ramp-up pattern
- Configurable test duration timeout
- JSON output for automated analysis
- Colorful terminal output with clear status indicators
How It Works
- Sends a warm-up request to verify the endpoint is reachable
- Runs burst tests with increasing concurrency (1, 5, 10, 25, 50 by default)
- For each burst, sends all requests concurrently and measures responses
- Detects HTTP 429 responses and captures rate limit headers
- Reports the maximum safe request rate before throttling
Options
| Option | Description | Default |
|--------|-------------|---------|
| --ramp <n,n,n> | Concurrent request counts per burst | 1,5,10,25,50 |
| --duration, -d | Max test duration in seconds | 30s |
| --method, -m | HTTP method | GET |
| --header, -H | Add custom header (repeatable) | - |
| --verbose, -v | Show detailed output | false |
| --json | Output results as JSON | false |
| --help, -h | Show help message | - |
License
MIT
Built by LXGIC Studios
