Developer plans
Quotas that are enforced.
Every plan ships with a monthly call quota, a per-minute burst ceiling and a concurrency ceiling, and
the API holds you to all three. You never find out from an invoice: a 429 carries Retry-After,
a 402 names the plan above yours, and every response tells you where you stand.
Plans
The plan catalog did not load. It is served live from /api/v1/dev-plans; reload to try again.
Reload plans
What enforcement looks like
Every response says where you stand
x-plan: builder
x-ratelimit-limit: …
x-ratelimit-remaining: 597
x-ratelimit-reset: 1760099160
x-quota-limit: …
x-quota-used: 18204
x-quota-remaining: …
x-quota-reset: 2026-11-09T00:00:00.000Z
x-concurrency-limit: …
Over the burst or concurrency ceiling: 429
HTTP/1.1 429 Too Many Requests
retry-after: 12
{ "error": "rate_limited",
"plan": "free",
"upgrade_url": "/developers" }
Back off for Retry-After seconds. The limiter is a sliding window, so a steady client never sees one.
Out of calls for the period: 402
HTTP/1.1 402 Payment Required
{ "error": "quota_exceeded",
"plan": "free",
"used": … , "limit": … ,
"reset_at": "2026-11-09T00:00:00.000Z",
"next_plan": { "id": "builder", "included_calls": … , "price_usd": … },
"upgrade_url": "/developers",
"manage_url": "/dashboard/developers#plan" }
The refused call is not counted. Upgrade from the dashboard and the next call goes through.
Pay the way you already hold value
Credits settle instantly from your balance and renew on their own.
USDC on Solana, from your own wallet. The server never signs.
$THREE at a … % discount, priced at the live quote.
Upgrades mid-period are prorated to the days left. Downgrades and cancellations take effect at period end. Every payment gets a receipt.