CoinSpectrum ← the ranking

The CoinSpectrum API

The same once-per-asset counting the site is built on, as JSON. No signup, no key, no query language — one file per thing, served straight from the CDN.

curl https://coin-spectrum.com/api/v1/assets/xrp.json
Live · 6,204 assets · 504 cryptocurrencies

Design

Every endpoint is a plain JSON file. There are no query parameters and no auth on the free tier. Download the file, filter in the client. That is deliberate: it keeps the free tier truly free, and it keeps the surface small enough that a version bump is a real event.

Wrapped, staked and pegged assets are not mixed into the cryptocurrency ranking. If you want them, ask for them explicitly by category. Most crypto APIs cannot answer that question at all.

Base URL

https://coin-spectrum.com/api/v1/

Versioned from day one. Adding a field is a minor change and lands silently; renaming, removing, or changing a shape opens v2/, and v1/ is frozen for at least twelve months.

Endpoints

A worked example

Chain jq for a pure Bash pipeline that names every SHA-256 chain in the ranking:

curl -s https://coin-spectrum.com/api/v1/categories/cryptocurrencies.json \
  | jq -r '.assets[] | select(.consensus == "SHA-256") | .name'

Asset schema

Every asset — cryptocurrency, stablecoin, wrapped, token, memecoin — uses the same shape. Fields that don't apply stay null, never omitted.

{
  "slug":            "bitcoin",
  "symbol":          "BTC",
  "name":            "Bitcoin",
  "category":        "cryptocurrency",
  "consensus":       "SHA-256",
  "hashrate":        8.9e20,
  "price_usd":       81449.12,
  "price_source": {
    "method":        "exchange",
    "aggregation":   "median",
    "confirmed_by":  ["Binance","Bybit","OKX","Kraken","Bitstamp", /* ...22 total... */],
    "count":         22,
    "picked_single": { "venue": "Binance", "price_usd": 81445.52 },
    "live_url":      "/api/v1/live.json"
  },
  "change_pct_24h":  null,
  "volume_24h_usd":  37424313548,
  "market_cap_usd":  1553734997147,
  "rank":            1,
  "supply": { "circulating": 20076428, "max": 21000000 },
  "ledger":          "overlay",
  "nature":          "commodity",
  "nature_basis":    "Named a digital commodity in the joint SEC-CFTC interpretation.",
  "nature_tags":     ["commodity"],
  "chains":          null,
  "image":           "https://..."
}

price_source.method is "exchange" when at least one exchange in the 24-venue panel quoted the coin within the 0.25×..4× anchor band at the build; "snapshot" when none did (long-tail coin, newly listed, CMC-only — the second-hand price in price_usd comes from the 6-hourly aggregated snapshot). About 38% of assets are exchange-sourced and 62% are snapshot-only at any given build. change_pct_24h stays null until the provider pipeline carries 24h change through — the field is in the shape so adding the data later doesn't break clients.

Update cadence

Two cadences, two publishers:

Every response includes a generated_at ISO-8601 timestamp; a caller who wants the freshest reading should read that field rather than trust HTTP dates. For near-real-time price in the per-asset shape, pull the asset's price_source.live_url once per minute instead of refetching the 6-hourly file.

Rate limits

The free tier has no per-key limit — every response is a static file behind a CDN, so throughput is effectively bounded by the CDN itself. Please cache. Aggressive polling of a file that only changes every 60 s (live overlay) or every 6 h (snapshot) is wasteful for both sides.

Paid tiers planned

Not open yet: no payment is taken and no paid key is issued. The free tier above is the whole API today; test it first. When the paid tiers open they will add higher throughput, historical snapshots, webhooks and per-key identification. Prices will be quoted in USD and invoices settled in Bitcoin Cash only, locked at the spot rate for fifteen minutes.

Why Bitcoin Cash

The Bitcoin whitepaper opens by naming the problem the system is for: "commerce on the Internet", through "completely non-reversible transactions", with fees low enough that "small casual transactions" are possible. The paper is explicit that the cost of a mediator ruling disputes is what rules microtransactions out, and that non-reversibility is the alternative. The abstract follows: "a purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution." Payments, direct, with fees low enough for the small end — the design brief in one line.

BCH kept those properties: block space sized for everyday transactions, sub-cent on-chain fees, no replace-by-fee by default so an unconfirmed payment is a payment, and a chain of small transactions is exactly what the paper's double-spending analysis in Section 11 is built on. BTC's current form has moved its answer: on-chain fees above a cent, replace-by-fee by default, Lightning for everyday payments, and the most visible proponents describe BTC as "digital gold" or a store of value rather than a payment network. That is a legitimate choice; it is also, by its proponents' own words, no longer the whitepaper's answer.

CoinSpectrum uses BCH for payments for the same reason the whitepaper did: it is the system the paper describes. Other coins that match the same design — non-reversible, cheap enough for small payments, confirmed quickly — may be added as payment options later. The payment choice is independent of the CoinSpectrum Grade: BCH's grade comes from the published criteria, not from the API happening to settle in it.

Starter

$5 / mo

~0.015 BCH

  • 300 requests / minute
  • 1 M requests / month
  • Every free-tier endpoint
  • Key activates on the first confirmation
Not open yet

Pro

$29 / mo

~0.09 BCH

  • 1 500 requests / minute
  • 10 M requests / month
  • Historical snapshots
  • Webhooks
Not open yet

Business

$149 / mo

~0.45 BCH

  • Unlimited requests / minute
  • Soft cap 100 M / month
  • Priority routing
  • SLA on request
Not open yet

Planned: annual plans pay ten monthly invoices in one BCH transaction and get two months free. No card processor, no chargebacks, no KYC — payment will be a single on-chain transaction and the API key will activate on the first confirmation.

Attribution

Licensed under CC BY 4.0. Use the data anywhere, commercial use included. In return, please link back to coin-spectrum.com — a footer credit or a note in your project's README is enough. The API exists to be reused; a link is how it stays sustainable.

No warranty

The data is derived from public sources — see methodology. It is provided as-is, without warranty of any kind. If you use it to decide whether to spend money, that is entirely your call and entirely your risk.

Contact

Questions, bug reports, or a request for an endpoint that isn't here yet: open an issue or write to api@coin-spectrum.com.

Common questions

Is the API free?

The /api/v1/ tier is free and unmetered — every file is served straight from the CDN, no signup, no key. Paid tiers — higher throughput, historical endpoints and per-key limits, priced in BCH — are planned and not open yet.

Do I need an API key?

Not for /api/v1/. Files are served without authentication and without rate-limiting beyond the CDN's own DDoS protection. Paid tiers issue a key for the proxy endpoint.

How often does the data refresh?

Two cadences. Live prices — /api/v1/live.json and /live.json — every 60 seconds. The structured files — rank, family, supply, classification, grades — every six hours (update_cadence_minutes: 360 in meta.json). Every response carries a generated_at ISO-8601 timestamp so a consumer can decide whether to re-fetch. Use the live feed for prices and the structured files for everything else.

What does the CC BY 4.0 license mean for my project?

Use the data anywhere — a chart, a screener, an app, a research paper, a commercial product. The only requirement is credit somewhere reasonable: a byline, a data-source line, or a link to coin-spectrum.com. Commercial use is included.

What's the difference between /api/v1/assets/xrp.json and /assets/xrp/?

Same data, two consumers. The JSON is for machines; the HTML page is for readers. Both use the same canonical slug so the two URLs shape-match — one can be derived from the other with a trivial string replacement.

What happens on breaking changes?

v1/ is frozen for at least twelve months from launch. Adding a field is a minor change and lands silently; renaming, removing, or reshaping a field opens v2/, and v1/ keeps serving unchanged until deprecation is announced.