Skip to main content

Rate Limit Headers

Every API response includes rate limit information:
HeaderDescription
X-RateLimit-LimitMaximum requests allowed per hour
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

Limits by Plan

PlanRequests per Hour
Anonymous (no API key)5 per IP address
Free60
Hobby ($4/mo)200
The rate limit window is 1 hour, aligned to the top of the hour.

When You Hit the Limit

You’ll receive a 429 response:
{
  "error": "Rate limit exceeded. Try again later.",
  "code": "RATE_LIMITED",
  "status": 429
}
Check the X-RateLimit-Reset header for when you can retry.

Exempt Endpoints

File upload endpoints (PUT /api/v1/_upload/*) are not rate limited. They are already gated by upload tokens and expiry timestamps.

Tips

If you’re hitting rate limits on the Free plan, consider upgrading to Hobby ($4/mo) for 200 requests per hour — more than enough for most workflows.
  • Batch your operations where possible
  • Use hash deduplication to reduce the number of API calls when updating sites
  • The publish script handles everything in a single create → upload → finalize flow