Limits
| Endpoint | Rate limit |
|---|---|
POST /api/v1/chat | 60 req/min |
POST /api/v1/search | 60 req/min |
POST /api/v1/images | 30 req/min |
POST /api/v1/video | 2 req/min |
GET /api/v1/video/status | Unlimited (free) |
Response headers
Every response includes:| Header | What it tells you |
|---|---|
X-RateLimit-Limit | Max requests in current window |
X-RateLimit-Remaining | How many you have left |
X-RateLimit-Reset | Seconds until window resets |
Retry-After | Seconds to wait (only on 429s) |
When you hit a limit
You get a429 response:
Retry code
Tips
- Space out batch requests — add a small delay between calls instead of firing them all at once
- Video polling doesn’t count — poll as often as you want (every 10s recommended)
- Images have a lower limit (30/min) because they’re more expensive to generate
- Video is 2/min because each generation uses significant compute