Two keys used from the same machine share the IP budget; the same key used from two machines shares the key budget. Limits are fixed-window: the counter resets at each window boundary rather than sliding continuously.
The 429 response
Exceeding either limit returns429 Too Many Requests:
Honor
Retry-After rather than guessing:
Checking your quota
Every authenticated response — not just 429s — includes theRateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, and Retry-After headers for your key’s bucket, so you can track quota passively from responses you’re already making.
If you want it in a body instead, GET /v1/api-keys/me returns the same information (note that this call itself counts against the limit):
Other usage constraints
Beyond request rates, individual endpoints enforce these caps:Tips for staying under the limits
- Cache reference data. Tiers, countries, and package location lists change rarely — fetch them once and refresh occasionally, don’t call them per request.
- Batch connection strings. One call with
count=100gives you 100 session-distinct connection strings; you don’t need 100 calls. - Use one key per service, not per request. Each key gets its own 5 req/s budget, but creating keys in a hot path is an anti-pattern — create them ahead of time.
These limits apply to the management API only. Proxy traffic through
proxy.soax.com:1337 is governed by your package’s own limits (concurrent connections, traffic volume), not by these API rate limits.