Data API

Everything the site checks, as JSON: tokens and where the market lists disagree, real vs paper cap, owner powers, unlocks, leverage, exchanges and how much of their volume their books carry, market gauges and on-chain signals. Every answer says when its data was read.

Keys

Every endpoint needs a key, sent in a header: Authorization: Bearer <key>, or X-API-Key: <key>. A key in the URL is refused. Make keys in your account, signing in with a passkey or GitHub: your account.

curl -H "Authorization: Bearer $CCS_KEY" \ https://cryptocoinstat.io/api/v1/tokens/uniswap

Limits

Free: 30 a minute, 10,000 a day

Partner: 300 a minute, 300,000 a day

Counted per key over fixed windows. Each answer carries RateLimit and RateLimit-Policy headers; past the limit you get 429 with Retry-After.

OpenAPI 3.1 document

Import it into Postman, Insomnia or a client generator.

Answers: { data, meta: { publishedAt, readAt, page } }, with an ETag: send it back in If-None-Match and an unchanged answer is a 304. Errors are RFC 9457 problems (application/problem+json): { type, title, status, detail, code, requestId }.

The old API

The old cryptocoinstat.io API was retired; its paths answer 410. Ids from it (xrp, polygon…) still resolve: /api/v1/tokens/resolve?q=xrp.

Endpoints

GET/api/v1/tokens

List tokens

Every token CoinGecko and CoinMarketCap list, in a published order, with what we could check about each. Sort by rank, market cap, volume or price change (sort=change24h&dir=desc for gainers, dir=asc for losers); filter by a flag, a category or a search; page with offset and limit.

  • sortqueryOrder by: rank: market cap rank; name; price; mcap: market cap; code: commits by people over 90 days; fees: fees over 30 days; gap: how far CoinGecko and CoinMarketCap differ on market cap; volume: 24h volume; change1h, change24h, change7d: price change (desc for gainers, asc for losers)
  • dirqueryasc: smallest first (rank 1 first); desc: largest first. Tokens without the value come last either way
  • qqueryName or ticker contains
  • flagqueryOnly tokens carrying this signal. all: every token; code: commits by people in its public code over the last 90 days; fees: users paid fees over the last 30 days (DefiLlama); gaps: CoinGecko and CoinMarketCap differ on market cap by 5% or more; thin: real cap under half the market cap: order books too shallow for its size; unbacked: under half the volume exchanges report is carried by their order books (on $1M+ a day); unlocks: the next 30 days of vesting are worth more than a day of trading; heated: open interest at 30%+ of market cap, or funding beyond ±0.05% per 8h; mint: its contract’s owner can mint; whales: ten wallets hold half the supply; fakes: copies under its ticker whose owner can take or freeze tokens
  • categoryqueryA category slug from /categories, e.g. defi, nft, stablecoins
  • idsqueryUp to 100 token ids, comma separated: answers those tokens in that order, ignoring sort, filters and paging
  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates
  • offsetqueryHow many matching items to skip; the next page’s path is in meta.page.next
  • limitqueryHow many to return, 1 to 100

GET/api/v1/tokens/index

Every token, compact

Id, ticker, name, rank and logo of every token in one answer, by rank: for search and autocomplete.

GET/api/v1/tokens/resolve

Find the token a name, ticker or old id stands for

Accepts our id, an id from the old cryptocoinstat.io API (xrp, polygon…), a ticker or a name; answers the token and how it was matched.

  • qqueryrequiredOur id, an old cryptocoinstat.io id, a ticker or a name
  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates

GET/api/v1/tokens/trending

Most searched

The tokens most searched on CoinGecko over the last day, most first; read hourly.

  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates

GET/api/v1/tokens/new

Newly listed

Tokens we saw listed for the first time, newest first. Kept since 2026-11; older tokens aren’t on it.

  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates
  • offsetqueryHow many matching items to skip; the next page’s path is in meta.page.next
  • limitqueryHow many to return, 1 to 100

GET/api/v1/tokens/popular

Most looked at

The tokens most looked at on cryptocoinstat.io over the last 7 days: page views by people and API lookups. Counted per day, with no visitor data.

  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates

GET/api/v1/tokens/{id}

One token, everything we read

Market figures from both lists and where they disagree, the day’s range, all-time high and low, max supply, ICO return, price ranges over 7, 30, 90 days and 52 weeks, links (sites, explorers, forums, chats, code, social), the project’s code and usage, and for the top 1000 what the chain and futures say: supply, owner powers, holders, unlocks, real vs paper cap, how much volume the books carry, leverage, supply on each chain, copies, and its latest signals.

  • idpathrequiredToken id, e.g. bitcoin
  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates

GET/api/v1/tokens/{id}/history

Price over a period, fees and weekly commits

Price over the last `days`: hourly for up to 7 days (top 1000), daily up to a year (top 1000 and every token we read in full). Daily fees from DefiLlama and commits by week.

  • idpathrequiredToken id, e.g. bitcoin
  • daysqueryHow many days back, 1 to 365: hourly points up to 7, daily beyond
  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates

GET/api/v1/rates

Currency rates

Fiat, crypto and commodity rates against the US dollar, from CoinGecko every 3 hours. Any code here works as ?currency= on token answers.

GET/api/v1/exchanges

Exchanges by reported volume

Every exchange seen across the top 1000’s markets: what it reports, what its order books could carry, on how many tokens its volume runs past its book, and how its trades tested.

  • offsetqueryHow many matching items to skip; the next page’s path is in meta.page.next
  • limitqueryHow many to return, 1 to 100

GET/api/v1/exchanges/{slug}

One exchange and its largest markets

The summary plus its 50 largest markets, each with depth, turnover against the norm and the trade test.

  • slugpathrequiredThe slug a list returned, e.g. binance or defi

GET/api/v1/categories

Categories

Sectors, chains, venues and backers, with their size. Their tokens: /tokens?category={slug}.

GET/api/v1/categories/{slug}

One category

Its size, how much of it we read, live code, fees and where the lists disagree.

  • slugpathrequiredThe slug a list returned, e.g. binance or defi

GET/api/v1/market

Market gauges

Risk appetite and its parts, altcoin season, leverage, real volume, liquidations, unlocks ahead and search interest, with a month of daily history.

GET/api/v1/signals

Signals, newest first

The last month of on-chain signals for the top 1000, each sized against depth and a day of trading.

  • kindqueryOnly this kind: unlock, mint, bridge, admin, whale, drain, fake (see the Signal schema)
  • tokenqueryOnly this token’s signals (token id)
  • offsetqueryHow many matching items to skip; the next page’s path is in meta.page.next
  • limitqueryHow many to return, 1 to 100

GET/api/v1/contracts/{address}

Is this address the real token?

A token’s own contract, a listed deployment or wrapper, or a copy under its ticker that no list names.

  • addresspathrequiredEVM 0x… or Solana address

GET/api/v1/watchlist

Your watchlist

The tokens the key’s account watches, newest first, with their list rows.

  • currencyqueryCurrency code for money figures, e.g. EUR or BTC; USD when absent. Codes: /rates

PUT/api/v1/watchlist/{id}

Watch a token

Adds the token to the key’s account’s watchlist; adding it again changes nothing.

  • idpathrequiredToken id

DELETE/api/v1/watchlist/{id}

Stop watching a token

Removes the token from the key’s account’s watchlist.

  • idpathrequiredToken id

Errors

Branch on code; show detail; quote requestId (also the X-Request-Id header) when you write to us. A 400 lists every bad parameter in invalidParams.

not_found 404
Not found: no such endpoint, token, exchange or category (404)
bad_request 400
A parameter or body is not valid: a parameter or body is missing, malformed or out of range (400); see invalidParams
unauthorized 401
Not allowed without a valid key or session: no key, a key that isn’t valid or was revoked, or not an admin’s (401)
gone 410
This path was retired: a path of the retired old API (410)
rate_limited 429
Over the limit: over the key’s per-minute or per-day limit; see Retry-After (429)
unavailable 503
Temporarily unavailable: a store the answer needs is down; try again later (503)
internal 500
Something went wrong on our side: our fault; it was logged under requestId (500)

Changelog

v1 only grows: new fields, endpoints, parameters and enum values may appear at any time, so tolerate unknown ones. Nothing is removed or changes type without a deprecation first: the answers carry Deprecation and Sunset headers, and the sunset is at least six months later. Breaking changes go to /api/v2.

1.0.0 2026-11-05

  • Added Tokens: list with sorting, filters, batches by id and paging; one token’s full record; price history; resolving a name, ticker or an id from the old API.
  • Added Lists: the compact index, most searched, newly listed, most looked at, currency rates; money in any listed currency.
  • Added Exchanges, categories, market gauges, on-chain signals and the contract check.
  • Added Watchlist per account.
  • Added Keys and plan limits with RateLimit headers; ETag and 304; X-Request-Id; errors as RFC 9457 problems.