Maxmove LogoDocs

Die Entwicklerdokumentation ist auf Englisch verfügbar.

Rate limits

Per-key request limits for live and test keys, the rate-limit headers, and how to handle 429 responses.

Als Markdown ansehen

Each API key has its own limit per minute:

KeyRequests per minute
Live (mm_live_…)600
Test (mm_test_…)120

The limit counts requests in fixed one-minute windows per key. Two keys of the same workspace have separate limits.

Headers#

Every authenticated response carries the current state of the key's limit:

HeaderContent
X-RateLimit-LimitRequests allowed per minute for this key.
X-RateLimit-RemainingRequests left in the current minute.
X-RateLimit-ResetUnix time in seconds when the current window resets.

Above the limit, the API answers 429 rate_limited with a Retry-After header in seconds.

Handle 429 responses#

Wait at least Retry-After seconds before you send the next request with that key.

async function requestWithRateLimit(url: string, init: RequestInit): Promise<Response> {
  for (;;) {
    const res = await fetch(url, init);
    if (res.status !== 429) return res;
    const waitSeconds = Number(res.headers.get('Retry-After') ?? '1');
    await new Promise((resolve) => setTimeout(resolve, waitSeconds * 1000));
  }
}

To stay below the limit, prefer webhooks over polling the tracking endpoint.

Hat das Ihre Frage beantwortet?