Rate limits
Each API key can make 120 accepted requests before a 60-second reset. REST and MCP requests made with the same key share this budget, including keys sent as eitherx-api-key or Authorization: Bearer bloom_sk_.... The limit is per API key, so another key has its own budget. OAuth access tokens do not use this limiter.
The 60-second reset period starts again after every accepted request. Rejected requests do not extend it. A rate-limited API-key request returns 429 Too Many Requests; REST responses use code TOO_MANY_REQUESTS, while MCP responses use rate_limit_exceeded. When the limiter can calculate the remaining delay, both include a Retry-After header with that delay in seconds. Wait for that delay before retrying, or wait 60 seconds if the header is absent.
If your integration sustains higher volume than that or batches generations in spikes, contact us so we can raise the ceiling for your key.
Credits
Brand-aware image generation and image transformations consume credits from the selected workspace. These image operations (generate, edit, resize, variant, recreate, remove-background, vectorize) use the table below.
Variants multiply the cost:
variantCount: 3 at 4K costs 6 credits. Check your current balance in your Billing settings or via GET /credits. When you run out, requests for these image operations return HTTP 402 until you top up or your plan refreshes. The error response includes a deep link to the pricing page in data.action_url.
If you belong to a team, every workspace has its own balance. Pass workspaceId to GET /credits to read the balance on a specific workspace — your personal one (the default) or any team workspace you can access. Use GET /workspaces to look up every workspace ID you can see.
If GET /credits returns HTTP 500 saying the workspace’s billing account isn’t set up, retrying won’t help. Contact support@trybloom.ai with the billing ID from the message.
What does 402 mean?
A 402 response can mean one of two things — branch on code, not on the HTTP status:
INSUFFICIENT_CREDITS— the workspace’s balance is zero. Top up or wait for the plan to refresh.PAYMENT_REQUIRED— the subscription is paused (typically a failed or pending payment).
data.action_url that lets the caller purchase credits, make a payment to resume their subscription, or upgrade their plan.
Top-ups
Need more credits without changing plans? Buy a one-off top-up of 20–200 credits. Top-up credits never expire.Plan tiers
See pricing for plan prices, annual discounts, and the full breakdown.
Bloom does not offer a typical free plan — all full plans are paid. New accounts receive 10 free credits on account creation to try the API. API and MCP access are included in every paid plan.