Skip to content

Rate Limits & Quotas

Rate limits are enforced per API key using sliding window counters.

WindowDefault
Per minute60 requests
Per day10,000 requests

Every response includes:

HeaderDescription
X-RateLimit-LimitMax requests per minute
X-RateLimit-RemainingRemaining in current window
X-RateLimit-ResetSeconds until window resets

When rate limited, the API returns 429 with a Retry-After header:

{
"error": "Rate limit exceeded (per-minute)",
"retryAfter": 42
}

Quotas are per project.

ResourceDefault
Snapshots50
Files100
Storage100 MB

When exceeded, the API returns 403:

{ "error": "Snapshot quota exceeded (max 50)" }

Check current usage with GET /machine/usage.

Limits are configurable per project in the project_quotas table.