Skip to main content
Requests share an allowance per account. All users and tokens of your account draw from the same allowance; rotating a token or changing an IP address does not reset it.

Allowances

Each allowance is a token bucket: it permits an initial burst and then refills at a steady rate. The burst is not a per-minute quota - after a burst, you can keep sending at the refill rate indefinitely. Every accepted request uses one unit. Placing outbound calls has fixed windows instead: 20 single-call requests per 5 minutes and 5 bulk requests per 10 minutes per account. Independently of the API, at most 20 calls may be started per 5 minutes across API, dashboard and campaign calls. A bulk request counts as one request; your account’s call limits still govern how many calls it places.

When you exceed an allowance

The API returns 429 with a Retry-After header (seconds) and the standard error envelope. The operation has not executed.
Wait at least Retry-After seconds before retrying, and add a small random delay when several clients retry together. Other requests can consume the refilled allowance in the meantime, so a retry can still receive 429. Outbound call placement returns its own error shape on 429 (see the endpoint pages); the Retry-After header is sent only when a request window was hit. If the API cannot check the allowance it returns 503 with mf-core:rate-limiter-unavailable and no reset time. Retry with bounded exponential backoff.

Request time limit

Every API call must finish within 30 seconds. A request that takes longer is aborted and returns 503:
Narrow the request (fewer items, a tighter filter) and retry.