Skip to main content
API and MCP usage is governed by two things: the request limit for an API key and the credits available to the selected workspace.

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 either x-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

Every image generation consumes credits from your workspace’s monthly allotment. Bloom currently generates images only. We’re working on additional output formats (video, copy, and more), though we don’t have a public timeline for those yet. Every available action (generate, edit, resize, variant, recreate, remove-background, vectorize) is priced against the same image credit table below. Variants multiply the cost — variantCount: 3 at 4K costs 6 credits. Check your current balance in your account dashboard or via GET /credits. When you run out, generation requests 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.

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).
Both responses include a 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.

When credits renew

Plan credits refresh monthly on your billing anniversary — the day of the month you started (or last renewed) your subscription. Unused plan credits do not roll over. Top-up credits are separate and never expire. You can check your current balance any time from your account dashboard.

Need more credits?

If you need high concurrency, batches of thousands of generations, or white-label use, contact support@trybloom.ai. We’ll work out a custom plan for you.