DocumentationAPI v1
HTTP 429 · Quota and rate

rate_limited

Too many requests

HTTP status429
Retry Yesthe same request may succeed
FamilyQuota and rate

What the API answers

Too many requests. Slow down and retry after the delay in Retry-After.

The message stays in English, like every API response: branch your script on error.code, which never changes.

What to do

Too many requests in a minute. Wait the number of seconds given by the Retry-After header, which every route sends, then try again. The native API also gives error.details.retry_after_seconds, the same wait rounded down (Retry-After is one second more), and error.details.limit, the number of requests allowed per minute.

Quota and rate. The storage quota is full, or the key sent too many requests in a minute. Fixed by making room, raising the quota or slowing down.

For a media upload, retry with the same Idempotency-Key: if the first attempt had gone through, you get the same media back instead of a duplicate.

Full response

JSON
{
    "status": "error",
    "error": {
        "code": "rate_limited",
        "message": "Too many requests. Slow down and retry after the delay in Retry-After.",
        "docs": "https://aperture-app.preview.moncompanion.cloud/docs/errors/rate_limited"
    },
    "meta": {
        "request_id": "01K2R7M8QF3V9XZ4B6NCDT0YAH",
        "api_version": "v1",
        "duration_ms": 12,
        "timestamp": "2026-10-27T14:32:08+00:00"
    }
}

The meta values are a sample. meta also carries app_version and commit, and a refusal may add error.details with the value at fault.

Codes of the same family

HTTP Code What to do Retry
413 quota_exceededQuota reached The organisation's storage quota is full. Free some space or ask for a larger quota: files already online keep being served. No
429 rate_limitedToo many requests Too many requests in a minute. Wait the number of seconds given by the Retry-After header, which every route sends, then try again. The native API also gives error.details.retry_after_seconds, the same wait rounded down (Retry-After is one second more), and error.details.limit, the number of requests allowed per minute. Yes

Every error code