Skip to content
QuantascanAlpha
Browse API groups

Market & Richlist API

Market price data and the cross-chain richlist of largest holders.
GET/api/v1/price/qrl

Latest QRL market price

Returns the most recent cached QRL price for the requested fiat / crypto. Cache TTL is ~10 minutes; a background task refreshes from CoinGecko every 5 minutes. price is null on cold start — callers should render a placeholder rather than treat null as an error.

Query parameters

NameTypeRequiredDefaultDescription
vsstringnousdCurrency code: usd, eur, or btc.

Response 200 · QrlPriceResponse

currencystringrequiredLower-case currency code, e.g. 'usd'
pricenumber | nullLatest price in the requested currency. None when cache is cold.
change_24h_pctnumber | null24h % change. None if upstream omitted it.
sourcestring | nullUpstream provider, currently 'coingecko'.
fetched_atstring | nullISO-8601 UTC timestamp when our poller stored this snapshot.
source_updated_atstring | nullISO-8601 UTC timestamp the upstream reports for the price tick.

Request examples

curl -s "https://quantascan.io/api/v1/price/qrl" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "currency": "usd",
  "price": 0.809966,
  "change_24h_pct": -5.005465950998716,
  "source": "coingecko",
  "fetched_at": "2026-07-31T15:26:37+00:00",
  "source_updated_at": "2026-07-31T15:25:20+00:00"
}
GET/api/v1/price/qrl/history

QRL price history (downsampled OHLC)

Time-bucketed QRL price over the last N days. Data comes from etl_silver.market_prices (mig 050) — written every 5 minutes by the same poller that fills the live cache. Empty items on cold start (no data persisted yet) or pre-mig-050 deploys.

Query parameters

NameTypeRequiredDefaultDescription
vsstringnousdCurrency code: usd, eur, or btc.
intervalstringno1hBucket size: 5m | 15m | 1h | 4h | 1d.
windowstringno30dLook-back window for the QRL price history (D4 duration).

Response 200 · QrlPriceHistoryResponse

assetstringrequiredAsset symbol; 'qrl' for the legacy chain.
currencystringrequiredQuote currency: usd, eur, or btc.
intervalstringrequiredBucket size: 5m, 15m, 1h, 4h, or 1d.
daysintegerrequiredLookback window in days.
itemsQrlPriceHistoryItem[]
bucketstringrequiredISO-8601 start of the time bucket (UTC).
opennumberrequiredFirst price in the bucket.
highnumberrequiredMax price in the bucket.
lownumberrequiredMin price in the bucket.
closenumberrequiredLast price in the bucket.
avgnumberrequiredMean price in the bucket.
samplesintegerrequiredNumber of raw datapoints in the bucket.

Request examples

curl -s "https://quantascan.io/api/v1/price/qrl/history" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "asset": "qrl",
  "currency": "usd",
  "interval": "1h",
  "days": 30,
  "items": [
    {
      "bucket": "2026-07-01T15:00:00",
      "open": 0.863952,
      "high": 0.866885,
      "low": 0.863952,
      "close": 0.866154,
      "avg": 0.8654963999999999,
      "samples": 5
    },
    {
      "bucket": "2026-07-01T16:00:00",
      "open": 0.866123,
      "high": 0.883402,
      "low": 0.866123,
      "close": 0.867703,
      "avg": 0.8772853636363638,
      "samples": 11
    },
    "… (638 more)"
  ]
}
GET/api/v1/richlist

Get Richlist

Cross-chain richlist — both chains interleaved, ranked by whole-coin balance.

Pagination is offset-based (stable Gold projection). Each row carries its own chain so the client picks the right decimals / address link / unit.

Query parameters

NameTypeRequiredDefaultDescription
pageintegermin 1no1
page_sizeintegermin 1 · max 100no25
chainstring | nullnoOptional chain filter: qrl, qrl2, or omitted = both (mixed).
with_labelsbooleannofalseInclude `label` + `label_category` per row.
with_delta_30dbooleannofalseInclude `received_30d` + `sent_30d` (30-day net flow). Meaningful for qrl2; the qrl legacy archive has no recent window.
positive_onlybooleannotrueHolders only (balance > 0). Default true — richlist semantics.

Response 200 · PaginatedOffset_RichlistRow_

itemsRichlistRow[]required
chainstringrequiredqrl or qrl2 — drives per-row decimals + links
networkstringrequired
addressstringrequired
balancestring | nullRaw base units: shor (qrl) / planck (qrl2).
balance_shorstring | nullBalance normalised to shor (common unit) for cross-chain ranking + % supply.
total_receivedstring | null
total_sentstring | null
total_fees_paidstring | null
tx_countinteger | null
first_seenstring | null
last_seenstring | null
labelstring | null
label_categorystring | null
received_30dstring | null
sent_30dstring | null
pageintegerrequired1-indexed page number
page_sizeintegerrequiredNumber of items per page
totalintegerrequiredTotal number of items across all pages
total_pagesintegerrequiredTotal number of pages at this page_size

Request examples

curl -s "https://quantascan.io/api/v1/richlist" \
  -H "Authorization: Bearer qs_YOUR_API_KEY"
Example response
{
  "items": [
    {
      "chain": "qrl",
      "network": "mainnet",
      "address": "Q000500997c93dec6039f0fb6008bbf034bc4f9252f6cfd41a7e01c8cf934036deaa4a832c4f240",
      "balance": "8449999997765200",
      "balance_shor": "8449999997765200",
      "total_received": "8449999997765200",
      "total_sent": "0",
      "total_fees_paid": "0",
      "tx_count": 1,
      "first_seen": "2021-04-17T01:32:26",
      "last_seen": "2021-04-17T01:32:26",
      "label": null,
      "label_category": null,
      "received_30d": null,
      "sent_30d": null
    },
    {
      "chain": "qrl",
      "network": "mainnet",
      "address": "Q01040062908a55128609363f80102e3c07821eb06d579d0151e575428e9389f4532593a2291247",
      "balance": "7724615474522300",
      "balance_shor": "7724615474522300",
      "total_received": "35653870763796000",
      "total_sent": "27928779949273700",
      "total_fees_paid": "475340000000",
      "tx_count": 101168,
      "first_seen": "2018-11-05T18:40:01",
      "last_seen": "2022-09-10T22:10:27",
      "label": null,
      "label_category": null,
      "received_30d": null,
      "sent_30d": null
    },
    "… (23 more)"
  ],
  "page": 1,
  "page_size": 25,
  "total": 10783,
  "total_pages": 432
}

All endpoints verified against a live indexer. Need the raw spec? See openapi.json or the API overview.