Skip to main content

Rate limits

Limits are per API key, per minute, on a sliding window.

EnvironmentDefault
Sandbox10,000 requests/minute
Production1,000 requests/minute

Sandbox is higher on purpose — see Environments.

Every response includes the current state:

x-ratelimit-limit: 1000
x-ratelimit-remaining: 847
x-ratelimit-reset: 1735689660

Exceeding it returns 429 with Retry-After in seconds.

Staying within the limit

Use webhooks instead of polling. A poll loop is the most common cause of exhausting a limit, and it is almost always replaceable with an event.

Raise limit rather than making more calls. One request for 100 records costs one unit, not 100.

Spread scheduled work. If a nightly job starts exactly on the hour, it competes with every other integration doing the same. Add a random offset.

Use a separate key per workload. Limits are per key, so a batch import cannot starve your interactive traffic if they use different keys.

Handling 429

The SDK retries automatically, honours Retry-After, and applies jitter so a fleet of clients does not retry in lockstep and recreate the spike:

const client = new MineTech({
apiKey,
maxRetries: 3,
onRetry: ({ attempt, delayMs }) => log.warn(`retry ${attempt} in ${delayMs}ms`),
});

If you handle it yourself, honour Retry-After and add jitter. A fixed-interval retry from many workers is indistinguishable from the original overload.

Need a higher limit? Email engineering@minetech.rw with your key prefix and expected volume.