Reference

Rate limits

Free image generations are capped at 20 per rolling 24-hour window. Listing images is unlimited.

How the rolling window works

  • Each successful free generation counts against your quota for exactly 24 hours from the moment it completes.
  • Slots free up one at a time as old generations age out — there is no fixed daily reset at midnight.
  • The next_available_at field tells you when your next slot frees up (i.e. when your oldest generation in the window turns 24 hours old).
  • Failed generations don't count.

The rate_limit object

Every successful response and every 429 error includes a rate_limit object:

limitintegeroptional
Total free generations allowed in a 24h window (usually 20).
usedintegeroptional
Generations counted against the current window.
remainingintegeroptional
limit - used, never below 0.
next_available_atinteger | nulloptional
Unix epoch (seconds) when one more generation becomes free, or null if you haven't used any yet.
"rate_limit": {
  "limit": 20,
  "used": 20,
  "remaining": 0,
  "next_available_at": 1778920200
}

What happens at the limit

When remaining hits 0, requests for OpenAI models return 429 unless you've added your own OpenAI key (see below). Requests for Gemini models always return 429 at the limit — there is no bring-your-own-key fallback for Google models yet.

Bring your own OpenAI key

Add an OpenAI API key in the dashboard. Once your free quota is exhausted, requests using gpt-image-2 automatically fall back to your key. The response field key_source will switch from "free" to "user" so you can tell which one was used.

Need a higher free limit?

Reach out on Discord and we can bump your account.