Skip to main content
REST and MCP share API-key request limits. The beta AI Gateway offers selected image, video, audio, and SVG models through both interfaces. Your application or agent includes relevant brand guidance in the model input.

Rate limits

API-key requests

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.

Brand onboarding

Each billing account can start 5 new brand onboardings in a rolling 60-second window across the web app, REST POST /brands, and MCP onboard_brand. Users, API keys, and OAuth tokens in the same team share this budget. An idempotent replay of an already accepted request does not consume this budget. Polling and other reads are unaffected by the onboarding limit. The API-key request limit above applies separately. At the onboarding limit, REST returns HTTP 429 with code TOO_MANY_REQUESTS and a Retry-After header in seconds. MCP returns a RATE_LIMITED tool error with retry_after_seconds. Wait for the returned delay before retrying.

AI Gateway generation

An account without an active paid plan or positive purchased top-up balance can have one unfinished billed AI Gateway generation at a time. A second REST request returns HTTP 429 with code ACTIVE_GENERATION_LIMIT_REACHED, the active generation ID, and a pricing link; an MCP generation tool returns the same guidance as text. Retry after that generation finishes or fails, or upgrade. A generation still marked unfinished stops occupying the slot after two hours.

Credits

Check your credit balance in your Billing settings or via GET /credits. Your personal account and each team you belong to have separate balances. To read a team’s balance, pass its ID as workspaceId to GET /credits; without it, you get your personal account’s balance. Use GET /workspaces to look up the IDs of the teams you can access. If GET /credits returns HTTP 500 saying the billing account isn’t set up, retrying won’t help. Contact support@rainbrand.com with the billing ID from the message.

What actions cost

Each action costs the same number of credits on every plan. Older accounts and teams use the legacy amounts instead. GET /credits also returns credit_costs, the current cost of each action for that team or personal account. Selected-model generations are priced per request under AI Gateway billing.

AI Gateway billing

When AI Gateway billing is enabled, selected-model image, video, and audio generation uses the same credit balance. Any positive, usable credits with a known value can fund a billed request, including the free credits granted to a new personal account. The account must have no outstanding debt and enough credits for the hold below. Before a billed generation starts, Rainbrand reserves its estimated charge plus a 10% buffer. The amount is calculated in USD, then converted at the rate of the credits used. You need enough available credits to cover this hold. The final charge is the generation cost plus a 50% fee, converted at the rate of the credits used. Unused credits are returned. If the charge exceeds the hold, remaining credits cover the difference; any unpaid amount becomes outstanding debt. Failed or unusable output is not charged and its hold is released. Holds left by interrupted jobs expire within four hours. Supported models outside the billing allowlist may still generate without a charge. Billing completes in the background. Completed output remains available while billing retries or recovers from an outage. Generations accepted without billing remain uncharged.

What does 402 mean?

A REST 402 response can mean one of two things — branch on code, not on the HTTP status:
  • INSUFFICIENT_CREDITS — the balance cannot cover the action or the estimated generation cost. For AI Gateway billing, this also covers outstanding debt or a balance that temporarily cannot be verified. Follow the error message: upgrade, purchase credits, settle the balance, or retry if verification is temporarily unavailable.
  • 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. AI Gateway billing rejects these requests before calling the model provider.

What does BILLING_SETUP_ERROR mean?

When AI Gateway billing is enabled, a generation request for a billed model returns HTTP 500 with code BILLING_SETUP_ERROR if Rainbrand can’t determine the value of one of the credit balances it would charge. MCP generation tools return the same message as a tool error. The generation didn’t run and nothing was charged. Retrying won’t help; contact support@rainbrand.com.

Top-ups

Need more credits without changing plans? Buy a one-off top-up of 2,000–20,000 credits at $5 per 1,000. Top-up credits never expire.

Plan tiers

Older accounts and teams keep their legacy amounts. See pricing for plan prices, annual discounts, and the full breakdown. Rainbrand does not offer a typical free plan — all full plans are paid. The first account for an email address receives 1,000 free credits and one free brand creation in its personal account. 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 Billing settings.

Legacy pricing

Each team and personal account keeps the pricing it was created with, so older ones stay on the legacy credit amounts below. The credit_costs that GET /credits returns show which amounts apply. Credits renew and top-ups work the same way.
Top-ups are 20–200 credits, and new accounts received 10 free credits.

Need more credits?

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