Credits
Every response costs credits from the account's monthly allowance. What each endpoint costs, when credits reset, and how to check what is left.
error_code numbering and responses carry no status.credit_count. See Plans and limits.The Monthly Allowance
Each account receives credits every month from its plan, and every key of the account draws on them: 15,000 on Free, 150,000 on Developer and 450,000 on Pro. A request is admitted while the account has credits left and is charged what it cost when it completes, so a month can overrun by the cost of the requests already in flight when the allowance ran out. From launch
What a Response Costs
| Response | Credits |
|---|---|
| A list | 1 per 250 items, rounded up |
| A history | 1 per 100 data points, rounded up |
| An order book | 1 per 100 price levels, rounded up |
Each convert currency beyond the first | 1 more |
| Any other successful response | 1 |
Errors, 304 Not Modified, key info and stream tickets | 0 |
| Stream messages | 0: streaming is limited by connections, not messages |
A successful list, history or order book costs at least 1, even when it is empty. A response served from a cache costs what a fresh one does. The count follows what the response returns: latest quotes for 100 assets in two currencies cost 2, 1 for the list and 1 for the second currency, and 300 history points cost 3.
Every Endpoint's Rule
Each operation publishes its rule in the OpenAPI contract as x-credit-rule; this table is read from the running API's contract. Counts are rounded up, and a successful response costs at least 1.
Reading the Cost: credit_count
From launch, every /v1 response reports what it cost in status.credit_count, errors included at 0. The field comes with CoinMarketCap's error numbering, which switches on at launch; until then responses carry no credit_count, though usage is recorded either way. The count is never cached. From launch
{
"status": {
"timestamp": "2026-11-02T14:00:00.000Z",
"elapsed_ms": 18,
"error_code": 0,
"error_message": null,
"request_id": "req_7Hk2pQ9xLm",
"credit_count": 1
},
"data": [ ... ]
}When Credits Reset
- Free credits reset at 00:00 UTC on the 1st of each month.
- Developer and Pro credits reset on the monthly anniversary of the subscription, yearly subscriptions included.
- Unused credits do not roll over. Moving between Free and a paid plan starts a new period with nothing used; an upgrade keeps the period and the credits already used.
- The exact time is
plan.credit_limit_monthly_reset_timestampinGET /v1/key/info.
When Credits Run Out
Requests answer 429 credit_limit_reached until the reset, with Retry-After and error.retry_after_ms set to the time left, which can be up to 31 days. Do not sleep on it: stop, alert and wait for the reset, or upgrade, which raises the allowance at once. Its error_code 429 today, 1010 from launch.
- Nothing is billed for overage, and nothing falls back to a smaller plan.
GET /v1/key/infocosts 0 credits, so it still answers.- Open streams keep running; stream messages never cost credits.
- The account owner is emailed once a month when the account passes 95 % of its credits. From launch
Check What Is Left
GET /v1/key/info reports the key's plan, its limits and the account's usage, in the shape of CoinMarketCap's key info: credits used today and this period, credits left, the next reset, this minute's requests, open stream connections and the account's keys. It costs 0 credits, counts toward the minute limit and is never cached.
curl -s "https://api.cantoncap.cc/v1/key/info" \
-H "X-API-Key: $CANTONCAP_API_KEY"{
"plan": {
"plan_id": "developer",
"version": "2026-11",
"status": "active",
"paid_through": null,
"credit_limit_monthly": 150000,
"credit_limit_monthly_reset": "In 28 days, 14 hours, 45 minutes",
"credit_limit_monthly_reset_timestamp": "2026-12-01T00:00:00.000Z",
"rate_limit_minute": 300,
"connection_limit": 0,
"key_limit": 5
},
"usage": {
"current_minute": {
"requests_made": 4,
"requests_left": 296
},
"current_day": {
"credits_used": 2
},
"current_month": {
"credits_used": 42,
"credits_left": 149958
},
"connections": {
"open": 0,
"left": 0
},
"keys": {
"count": 2,
"left": 3
}
}
}Every field is described in the reference.
The calling key's plan, limits and usage, shared by every key of its account. The credit fields are null for a key with limits of its own, which has no monthly allowance.
null, and no allowance applies to it until it moves to the plans above.