Skip to content
Docs
Get API Access
Browse the Documentation

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.

Launching Soon
This page describes the Free, Developer and Pro plans and the rules that start with them; what starts at launch is marked From launch. Until then, keys issued on the launch plans keep their own limits, errors carry the legacy 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

ResponseCredits
A list1 per 250 items, rounded up
A history1 per 100 data points, rounded up
An order book1 per 100 price levels, rounded up
Each convert currency beyond the first1 more
Any other successful response1
Errors, 304 Not Modified, key info and stream tickets0
Stream messages0: 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.

From the Contract
Credits this response cost, under the operation's x-credit-rule. Present on every /v1 response when the deployment uses CoinMarketCap numbering (see error_code) and absent under legacy numbering; usage is charged either way. A list costs 1 per 250 items, a history 1 per 100 data points and an order book 1 per 100 price levels, each rounded up, plus 1 for each convert currency beyond the first; every other success costs 1; errors cost 0, and a 304 Not Modified, which has no body, costs 0. A cached response costs the same as a fresh one, and the count itself is never cached.

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.

EndpointCreditsEach extra convert
GET /v1/activity/markets/latest1 per 250 items–
GET /v1/activity/{entity_kind}/{entity_id}1 per 100 points–
GET /v1/simple/price1 per 250 items+1
GET /v1/assets/map1 per 250 items–
GET /v1/assets/listings/latest1 per 250 items+1
GET /v1/assets/info1 per 250 items–
GET /v1/assets/{asset_id}1–
GET /v1/assets/quotes/latest1 per 250 items+1
GET /v1/assets/quotes/historical1 per 100 points–
GET /v1/assets/ohlcv/historical1 per 100 points–
GET /v1/assets/{asset_id}/market-chart1 per 100 points–
GET /v1/assets/{asset_id}/supply/historical1 per 100 points–
GET /v1/assets/{asset_id}/liquidity/historical1 per 100 points–
GET /v1/assets/{asset_id}/liquidity-score/historical1 per 100 points–
GET /v1/assets/market-pairs/latest1 per 250 items–
GET /v1/key/info0–
GET /v1/markets1 per 250 items–
GET /v1/markets/{market_id}1–
GET /v1/markets/{market_id}/ticker1–
GET /v1/markets/{market_id}/orderbook1 per 100 levels–
GET /v1/markets/{market_id}/trades1 per 100 points–
GET /v1/markets/{market_id}/ohlcv1 per 100 points–
GET /v1/markets/{market_id}/liquidity1–
GET /v1/pools1 per 250 items–
GET /v1/pools/{pool_id}1–
GET /v1/venues1 per 250 items–
GET /v1/venues/{venue_id}1–
GET /v1/venues/{venue_id}/markets1 per 250 items–
GET /v1/venues/{venue_id}/capabilities1–
GET /v1/issuers1 per 250 items–
GET /v1/issuers/{issuer_id}1–
GET /v1/fear-and-greed/latest1–
GET /v1/fear-and-greed/historical1 per 100 points–
GET /v1/global/metrics/latest1–
GET /v1/global/metrics/historical1 per 100 points–
GET /v1/status/sources1 per 250 items–
GET /v1/assets/{asset_id}/registry-configurations1 per 250 items–
GET /v1/issuers/{issuer_id}/evidence1 per 250 items–
GET /v1/issuers/{issuer_id}/relationships1–
POST /v1/stream/tickets0–

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

JSON
{
  "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_timestamp in GET /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/info costs 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"
data
{
  "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.

Keys Issued Before Launch
A key bought on the launch plans has limits of its own and no monthly allowance: key info reports its credit limit, reset and usage as null, and no allowance applies to it until it moves to the plans above.
Esc
navigateopenEscclose