CRIUS Docs
API status Get API key
Get started

Plans, limits & credits

Crius API plans (Free, Starter, Pro, Business, Enterprise), monthly credits, requests per second, WebSocket limits, credit cost per endpoint and the rate-limit response headers.

Updated 3 min read

Every plan has a rate limit (requests per second, with a burst of twice that), a monthly credit quota, WebSocket limits and a set of endpoints. Each request costs a number of credits depending on the endpoint; cheap calls such as prices cost 1.

How the rate limit works: each key (or, without a key, each IP address) has a bucket that holds up to twice its per-second limit and refills at that limit. A Free key (10 requests/s) can send 20 requests at once, then 10 every second. The Account API has its own limit and is never counted.

Getting a key or a bigger plan: a Free key takes a minute at dashboard.crius.sh (email or wallet, no card). Upgrades are on the dashboard’s Billing page; for more than Business, write to support@crius.sh.

Plans

Plan Price Credits / month Requests / s WebSockets Subscriptions
Anonymous (no key) free n/a, per IP 2 none none
Free $0 1,000,000 10 1 10
Starter $19 / month 10,000,000 25 3 100
Pro $79 / month 50,000,000 75 10 1,000
Business $249 / month 200,000,000 200 50 10,000
Enterprise custom custom custom custom custom

Paying for 6 months gives 10% off, and 12 months 20% off. Plans are paid on-chain on Robinhood Chain in USDG, ETH or WETH; see Billing & payments. Credits reset at the start of each UTC month and are shared by all of an account’s keys.

Endpoints by plan

Plan needed Endpoints Credits per call
Anonymous token profile, price, batch prices, batch profiles, pools, pool, token lists, search, stats, volume, launchpads, security (cached) 1
Anonymous trades, candles, launchpad detail 2
Public status, chains 0 (not counted against any limit)
Free holders, launch, activity feed, hooks, hook detail 2
Free holder snapshot, top traders, liquidity & locks, developer profile 5
Free WebSocket stream (per connection) 1
Starter wallet profile, wallet trades, fees & claims 5
Starter holder cohort, holder history, bundles, bubble map, wallet connections 10
Starter fresh security simulation (/security?fresh=1) 20
Enterprise firehose:trades stream channel (every trade on chain)

Each endpoint page in the API reference shows its plan and cost. Calls to the Account API (/v1/account/*) are free and don’t count against your credits.

Rate-limit headers

Every data response carries:

Header Meaning
x-ratelimit-limit Your requests-per-second limit for this key
x-ratelimit-remaining Requests left in the current burst
x-ratelimit-reset Milliseconds until the bucket refills (1000)
x-credits-cost Credits this request cost
x-quota-remaining Credits left this month (after this request)

When you go over the rate limit you get 429 rate_limited with a retry-after header (seconds). When the month’s credits run out you get 429 quota_exceeded until the next month, or until you upgrade. Both say what your limit is and how to raise it:

{
"error": {
"code": "rate_limited",
"message": "Rate limit reached: requests without an API key are limited to 2 per second per IP (bursts of up to 4). Retry in 1 s, or get a free API key (10 requests/s, 1,000,000 credits a month) at https://dashboard.crius.sh.",
"plan": "anon",
"limit_rps": 2,
"burst": 4,
"retry_after_ms": 412,
"upgrade_url": "https://dashboard.crius.sh",
"docs_url": "https://docs.crius.sh/plans-and-limits/"
}
}
Field Meaning
plan The plan the request was checked against (anon without a key)
limit_rps, burst Your requests per second and the most you can send at once
retry_after_ms When the next request will be accepted
monthly_credits, resets (quota_exceeded) Your monthly credits and the UTC date they reset
required_plan (403 plan_required) The lowest plan that includes the endpoint
upgrade_url Where to get a key or a bigger plan

Handling 429 well

async function crius(path, tries = 4) {
for (let i = 0; i < tries; i++) {
const res = await fetch(`https://api.crius.sh${path}`, {
headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
if (res.status !== 429) return res.json();
const body = await res.json();
if (body.error?.code === "quota_exceeded") throw new Error("monthly credits used up");
const wait = Number(res.headers.get("retry-after") ?? 1) * 1000;
await new Promise((r) => setTimeout(r, wait + Math.random() * 250));
}
throw new Error("still rate limited");
}

Usage and alerts

The dashboard shows usage per day and per endpoint, and GET /v1/account/usage returns the same data. We email you when you reach 50%, 80%, 90% and 100% of your monthly credits.

Get your free Crius API key

Every example on this page works with a free key: higher rate limits than the anonymous plan, holders, wallets and the WebSocket stream. No card needed.

  • Robinhood Chain (4663) only, from our own archive nodes
  • REST + WebSocket
  • Pay on-chain or by card