Every WhoisFreaks API enforces a per-minute request limit that protects platform stability and keeps response times fast for everyone. This guide explains how those limits work, how they differ across plans and endpoints, and how to read the rate limit data we return on every response, so you never have to guess.
Rate limiting controls how many API requests you can make within a one-minute window. It is separate from your API credits; credits are your overall query quota, while the rate limit governs how quickly you may spend them. A request that is throttled by the rate limit does not consume a credit.
Two things determine your limit:
ⓘ Tip
You do not need to count requests yourself. Every API response includes a set of rate limit headers that tell you your limit, how many requests remain, and when the window resets. Read those headers instead of tracking usage on your end.
Limits are expressed in requests per minute (RPM). Each request you make within the current minute decrements your remaining allowance. When the window resets, your full allowance is restored.
If you send more requests than your plan permits for a given endpoint category within that window, the API stops fulfilling further requests and responds with HTTP status 429 Too Many Requests until the window resets. To know exactly when that happens, read the x-ratelimit-remaining-time header, which reports the time left until your limit is fully restored.
Because the limit is enforced per endpoint category rather than as one shared pool, spending your live-lookup allowance does not reduce what is available for bulk or historical queries, and vice versa.
Every response from a rate-limited endpoint, including both successful responses and 429 responses, carries three headers describing your current rate limit state. Read these to make informed decisions about pacing your requests.
A successful request that still has headroom returns headers like these:
HTTP/1.1200 OKcontent-type: application/jsonx-ratelimit-allowed-requests: 80x-ratelimit-remaining-requests: 79x-ratelimit-remaining-time: 58273000000
In this example the plan allows 80 live requests per minute, 79 remain in the current window, and the window fully resets in 58,273,000,000 nanoseconds, which is about 58.3 seconds.
ⓘ Tip
The x-ratelimit-remaining-time value is in nanoseconds, not seconds. This is a common source of confusion. Always convert before using it for delays or display.
Use these conversions, where n is the raw header value:
When you exceed your limit, the API responds with 429 Too Many Requests. The same rate limit headers are still present, so you can read x-ratelimit-remaining-time to know exactly how long to wait before retrying.
HTTP/1.1 429 Too Many Requestscontent-type: application/jsonx-ratelimit-allowed-requests: 80x-ratelimit-remaining-requests: 0x-ratelimit-remaining-time: 41822000000
Here, remaining-requests is 0 and the limit resets in about 41.8 seconds. The correct response is to pause new requests until that time has elapsed, then resume.
ⓘ Warning
Recommended pattern: on a 429, sleep for the converted remaining-time (plus a small buffer of 100–250 ms to account for clock differences), then retry. Avoid tight retry loops that hammer the API while still limited.
A few habits keep your integration smooth and avoid unnecessary 429 responses.
If your workload consistently needs more throughput than your plan allows, upgrading to a larger plan raises your RPM, and Enterprise plans offer a fully customized limit.
Common questions about API rate limiting, headers, and 429 responses.