API DocsGetting StartedRate limits

Rate limits

GET/api/*

All API endpoints are rate limited to ensure fair usage and platform stability.

Default Limits

  • 120 requests per minute per API key
  • Rate limits reset every 60 seconds

Response Headers

Every response includes rate limit information:

  • X-RateLimit-Limit - Maximum requests allowed per window
  • X-RateLimit-Remaining - Requests remaining in current window
  • X-RateLimit-Reset - Unix timestamp when the window resets

Rate Limit Exceeded

When you exceed the limit, the API returns a 429 Too Many Requests response. Wait until the reset time before retrying.

Need Higher Limits?

Contact support at [email protected] for enterprise rate limits.

Examples

curl
# Rate limit headers are included in every response
curl -i https://flare.link/api/videos \
  -H "Authorization: Bearer flr_pat_..."

# Response headers:
# X-RateLimit-Limit: 120
# X-RateLimit-Remaining: 119
# X-RateLimit-Reset: 1706400000
node
const res = await fetch("https://flare.link/api/videos", {
  headers: { Authorization: "Bearer flr_pat_..." }
});

// Check rate limit headers
const limit = res.headers.get("X-RateLimit-Limit");
const remaining = res.headers.get("X-RateLimit-Remaining");
const reset = res.headers.get("X-RateLimit-Reset");

if (res.status === 429) {
  const waitMs = (reset * 1000) - Date.now();
  await new Promise(r => setTimeout(r, waitMs));
  // Retry request...
}
python
import requests
import time

res = requests.get(
  "https://flare.link/api/videos",
  headers={"Authorization": "Bearer flr_pat_..."}
)

# Check rate limit headers
limit = res.headers.get("X-RateLimit-Limit")
remaining = res.headers.get("X-RateLimit-Remaining")
reset = int(res.headers.get("X-RateLimit-Reset", 0))

if res.status_code == 429:
    wait_time = reset - time.time()
    time.sleep(max(0, wait_time))
    # Retry request...

Expected response

# 429 Too Many Requests
{
  "error": "Rate limit exceeded",
  "retryAfter": 42
}