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
# 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: 1706400000const 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...
}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
}