Rate limits
Per-key request limits and new-account limits
Requests per key
Each key is counted separately over a 24-hour rolling window. The tier is fixed at creation by the scopes you tick:
| Tier | Limit | Condition |
|---|---|---|
| Generate | 1000 requests / 24 hours | generate:write ticked |
| Read-only | 6000 requests / 24 hours | Only assets:read / documents:read ticked |
The window starts at the key's first request; after 24 hours the counter resets and a new window begins. Every request counts, including failures and /api/file/* downloads.
Generation itself is billed in credits; the limit only protects the API from being hammered. Read-only endpoints are polled a lot, hence the higher ceiling. Contact us if you need more.
Over the limit you get 429 rate_limited:
{
"error": {
"code": "rate_limited",
"message": "这把 API 密钥已超过 24 小时内的请求上限,请稍后再试。",
"request_id": "req_xxxxxxxxxxxxxxxxxxxx"
}
}Spend cap on new accounts
Accounts younger than 7 days can spend at most 2000 credits in any 24 hours, website and API combined. Past that you get 429 new_user_daily_limit; the cap lifts automatically after 7 days. It exists to stop abuse; normal use never reaches it.
Recommendations
- Bulk generation: run serially or with low concurrency. On
429, back off exponentially (1 minute, 2 minutes, 4 minutes...) instead of retrying at once - Polling image packs: every 60 seconds normally, backing off to 5 minutes after a few empty rounds. 6000 requests / 24 hours covers 60-second polling plus retries
- Several systems integrating: give each its own key. Limits don't overlap, and a leak means revoking one key only
Early keys
Keys created before rate-limit tiers existed keep the default of the time, 10 requests / 24 hours. For a higher limit create a new key.
Photopurr Docs