AliasFleet limits API requests per minute by plan: Free allows 50, Pro allows 100, and Business allows 200, measured over a rolling 60-second window per account. Separate per-endpoint limits also apply, and every limit breach returns HTTP 429 with a Retry-After header. This page lists the per-plan allowances, the per-endpoint limits, the error response, and the retry steps.
An AliasFleet account is required. The general allowance depends on the plan on the account. Integrations also need an API key, generated in the dashboard under Settings, then Developer API. No special permission is needed to read the limits on this page.
Rate limits by plan#
The general allowance is measured over a rolling 60-second window and resets every 60 seconds. The limit applies per account, not per device, so requests from three open tabs on the same account count toward the same allowance. An upgrade raises the allowance.
| Plan | Requests per minute |
|---|---|
| Free | 50 |
| Pro | 100 |
| Business | 200 |
Limits by endpoint group#
The API reference states separate limits for each endpoint group, evaluated per client or API key with sliding-window limiters. These limits apply in addition to the per-plan allowance. A request must pass both the plan allowance for the account and the limit for its endpoint group. The API reference states the standard-endpoint limit as 60 requests per minute, while the plan allowances are 50 for Free, 100 for Pro and 200 for Business. Both figures are sourced, and both limits apply to each request.
| Endpoint group | Limit | Reason stated in the API reference |
|---|---|---|
| Standard requests (general reading, inspection, and update endpoints) | 60 requests per minute | General use |
Quick-Send outbound (POST /v1/quick-send) | 5 requests per minute | Outbound reputation protection |
Alias creation (POST /v1/aliases) | 10 creations per minute | Prevention of automated namespace squatting |
Analytics queries (GET /v1/analytics) | 10 requests per 10 seconds | Database query performance |
Destination creation (POST /v1/destinations) | 5 requests per minute | Prevention of destination flooding |
Availability checks (GET /v1/aliases/check) | 30 requests per minute, per client IP | Lookup volume control |
| Destination verification code resend | 1 request per 60 seconds | Cooldown between codes |
The endpoint-group limits do not vary by plan in any source. The API reference states them as fixed values per client or API key. The full endpoint reference, including scopes, is in the API Index.
429 error response#
When the request rate passes the allowance, the server answers further requests with HTTP 429 Too Many Requests until the window resets. The response has the form below, as stated in the API Index:
HTTP/1.1 429 Too Many RequestsRetry-After: 12Content-Type: application/json{ "error": "Too Many Requests", "code": "RATE_LIMIT_EXCEEDED"}The Retry-After header states how many seconds to wait before the next request. In the dashboard, the same block appears as a "Too many requests" message stating the remaining wait.
Handling a 429 response in an integration#
- Read the
Retry-Afterheader. Every 429 response includes it. The integration waits at least the stated number of seconds before the next request. - Use exponential backoff. After each 429, the delay before the next attempt doubles (for example 1, 2, 4, then 8 seconds), up to a maximum. A small random jitter keeps parallel workers from retrying in lockstep.
- Cap retry attempts. A maximum number of retries per operation keeps a runaway loop from holding the connection open and triggering longer blocks.
- Reduce the request rate at the source. Batching operations where the API allows it, caching read-heavy responses, and polling on longer intervals lower the rate. Alias creation stays under 10 per minute; Quick-Send stays under 5 per minute.
- Avoid adding parallel workers. Adding parallel workers raises the request rate and extends the block, so it does not work around a 429.
- Upgrade only when the general allowance is the constraint. A plan upgrade raises the per-minute allowance to 100 on Pro or 200 on Business. It does not raise the per-endpoint limits in the table above or the sensitive-action limits below.
Checking whether a block has cleared#
- Close extra tabs and pause polling. Scripts, extensions and other tabs that send requests to AliasFleet stop.
- Wait without retrying. The wait is 60 seconds for a general block, or up to 10 minutes for a login block, measured from the last request or failed attempt.
- Reload once. After the wait, a single page reload resumes the session at a normal pace.
- Confirm normal responses return. Pages loading and actions succeeding show the block has cleared. A 429 error returning at once shows requests are still being sent from somewhere on the account.
Limits on sensitive actions#
Sensitive actions have separate limits that apply across all plans. A plan upgrade does not raise these limits, because they slow automated guessing rather than metering usage.
| Action | Limit |
|---|---|
| Login attempts | 5 attempts per 15 minutes per IP address, followed by a block of up to 10 minutes |
| Password reset requests | 3 per hour |
| Sign-up | 5 accounts per hour per IP address |
| Verification email resends | Limited; no numeric limit is stated for this action |
The login limit is measured per IP address, not per account, so repeated failed sign-in attempts from one address trigger the block even when the attempts target different accounts. A fuller description of credential-guessing attacks is in How Credential Stuffing Works.
Requests outside the limit#
Email forwarding is server-side infrastructure and is unaffected by rate limits, so aliases keep forwarding while an API block is active. Static page navigation also issues few requests.
Repeated 429 errors#
| Symptom | Likely cause | Fix |
|---|---|---|
| 429 in the dashboard after rapid refreshes | Rolling per-minute limit exceeded | A 60-second wait, followed by a single reload, clears the block |
| 429 on the login page | Repeated failed sign-in attempts from the IP address | A wait of up to 10 minutes, followed by a single sign-in, clears the block |
| 429 from a script or integration | Requests above the plan allowance or an endpoint-group limit | Backoff, honoured Retry-After values, and a lower request rate at the source |
| 429 that never clears | Requests still being sent | Closing tabs, disabling polling extensions, and stopping scripts |
| 429 on every action after an upgrade | Requests still above the new allowance | A lower request rate; the 60-second block still applies |
When the error persists after the wait and no request is being sent from the account, a support ticket is the route for investigation. The detailed troubleshooting steps for each symptom are in Too Many Requests Error.
See also: Rate Limiting · Too Many Requests Error · API Index · Upgrading to Pro · Plan and Usage Limits