Skip to main content
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

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.

Create an API key Read the quota reference Manage my plan