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 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.
Brand onboarding
Each billing account can start 5 new brand onboardings in a rolling 60-second window across the web app, RESTPOST /brands, and MCP onboard_brand. Users, API keys, and OAuth tokens in the same workspace 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.
Credits
Check your workspace’s credit balance in your Billing settings or viaGET /credits.
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@rainbrand.com with the billing ID from the message.
What actions cost
Each action costs the same number of credits on every plan. Older workspaces use the legacy amounts instead.GET /credits also returns credit_costs, the current cost of each action for that workspace. Selected-model generations are priced per request under Model Gateway billing.
Model Gateway billing
When Model Gateway billing is enabled, selected-model image, video, audio, and SVG generation uses this same workspace balance. The workspace needs an active paid plan or purchased credits, a positive spendable balance, and no outstanding debt. A complimentary plan alone does not qualify. Billable completed output is charged at its attributable generation cost in USD plus 50%, converted to credits using each balance’s rate; supported models outside the billing allowlist may still generate without a charge, credits are not reserved up front, and failed or unusable output is not charged. 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 workspace has no spendable credits. For Model Gateway billing, this also covers an ineligible plan, outstanding debt, or a balance that temporarily cannot be verified. Follow the error message: purchase credits or a paid plan, settle the balance, or retry if verification is temporarily unavailable.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. Model Gateway billing rejects these requests before calling the model provider.
What does BILLING_SETUP_ERROR mean?
When Model 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 workspace’s credit balances. 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 workspaces 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 workspace. 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 workspace keeps the pricing it was created with, so older workspaces stay on the legacy credit amounts below. Thecredit_costs that GET /credits returns show which amounts a workspace uses. Credits renew and top-ups work the same way.
Legacy plans and costs
Legacy plans and costs
Top-ups are 20–200 credits, and new accounts received 10 free credits.