Reference

Credits & rate limits

Free generations share a single pool of 20 credits per rolling 24-hour window. Each endpoint costs a different number of credits per call. Listing images is unlimited.

What each call costs

  • POST /v1/images/generations5 credits per image (4 images = full pool).
  • POST /v1/videos/generations10 credits per video (2 videos = full pool).
  • POST /v1/text/conversations1 credit per message (20 messages = full pool).

All three endpoints draw from the same credit pool, so the cost of one call reduces the budget available to the others.

How the rolling window works

  • Each successful free call holds its credits for exactly 24 hours from the moment it completes, at the per-endpoint cost above.
  • Credits free up as old calls age out — there is no fixed daily reset at midnight.
  • The next_available_at field tells you when your next credits free up (i.e. when your oldest call in the window turns 24 hours old).
  • Failed calls don't count.

The rate_limit object

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

limitintegeroptional
Total free credits allowed in a 24h window (usually 20).
usedintegeroptional
Credits consumed in the current window across all endpoints.
remainingintegeroptional
limit - used, never below 0.
next_available_atinteger | nulloptional
Unix epoch (seconds) when the oldest call ages out, 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, further requests return 429 until your oldest generation ages out of the 24h window.

Need a higher free limit?

Reach out on Discord and we can bump your account.