Browse API groups
API Documentation
Getting started
The base URL is https://quantascan.io/api/v1. Every request needs a personal API key — send it as an Authorization: Bearer qs_... header (create one from your account page; sign-up is free). Every response is JSON.
# Create a free account, generate a personal API key, then:
curl -s -H "Authorization: Bearer qs_your_key_here" \
"https://quantascan.io/api/v1/qrl2/blocks/latest"Running the stack locally? The same paths are served on http://localhost:3000/api/v1 (frontend proxy) or directly on the backend at http://localhost:8000/api/v1.
Endpoint reference
Block listings, lookups by height or hash, and block-level statistics for both chains.
Transaction listings, lookups, whale transfers, revert reasons and the QRL 2.0 pending-transaction pool.
Address summaries, balances, transaction history and counterparty analysis.
Wallet-level aggregates: portfolio views, activity and holdings over time.
QRC-20/721/1155 token metadata, holders, distribution and decoded transfer events (QRL 2.0 EVM).
NFT collections, items and ownership on QRL 2.0.
Smart-contract metadata, source verification and read-only contract calls (QRL 2.0 EVM).
Validator registry, performance and EIP-4895 withdrawals on the QRL 2.0 proof-of-stake chain.
Consensus-layer data: beacon blocks, slots, epochs and slashings (QRL 2.0).
Proof-of-Work mining on the QRL legacy chain: block-reward emission, difficulty, hashrate, and the top miners and pools.
On-chain messages anchored with the QRL legacy message transaction subtype: a browsable feed with text/binary payloads, plus headline stats.
Network-wide time-series and aggregates: activity, supply, fees, gas, whales and cross-chain timelines.
Market price data and the cross-chain richlist of largest holders.
External attention signals over time: Google Trends relative search interest and Reddit discussion volume for QRL and quantum-computing topics. Chain-agnostic; relative, not absolute.
Authentication
- An API key is required. Every endpoint in this reference takes an
Authorization: Bearer qs_...header with a personal API key, created from your account page after signing in. A free account is all you need — the same key works across every documented endpoint. - Managing keys and account data (creating or revoking keys, watchlists, alerts) happens in the signed-in account UI, not through this public API — those endpoints require an active browser session and are intentionally left out of this reference.
- Label submissions are moderated: community labels enter a review queue and are IP-rate-limited to 5 submissions per hour.
Rate limits
The free tier allows 1,000 calls per UTC day (shared across all of your keys) plus a burst cap of 30 requests per minute per key, with a global safety limit of 300 requests per minute per IP (defaults, not a contract — they may change). Exceeding any limit returns 429 with a Retry-After header, so clients can pace themselves. A free account can hold up to 3 active keys. For sustained high-volume use, cache on your side — most aggregates only change once per day.
Conventions
- Chain selector: chain-specific endpoints live under
/api/v1/qrl2/...(QRL 2.0, PoS EVM) or/api/v1/qrl/...(QRL legacy, PoW). Cross-chain endpoints (analytics, search, price) live at/api/v1/...with no chain segment; a few of them take?chain=qrl|qrl2as an optional query param. QRL2-only resources (validators, beacon, withdrawals, mempool, contracts, fees, nft, token-transfers) live only under/api/v1/qrl2/.... - Pagination:
?page=1&page_size=25for offset, or?cursor=...for cursor (deeper, O(log N)). Cursors come back asnext_cursor. - Big numbers (value, fee, supply) are returned as decimal strings to preserve UInt256 precision. Parse with
BigInt(...)in JavaScript. - Error envelope: every 4xx/5xx returns
{"error": {"code", "message", "request_id"}}. Quote therequest_idwhen reporting bugs.
Machine-readable spec
The reference on this site is generated from the live OpenAPI 3.1 spec. For try-it-out consoles or client codegen:
FAQ about the API
Common questions about this page
- Is the Quantascan API free to use?
- Yes — it's free to use today. It does require a free account and a personal API key: every request is authenticated with an Authorization: Bearer qs_... header, and is rate-limited to prevent abuse. The free tier includes a 1,000 calls/day allowance plus usage metering.
- What are the rate limits?
- The free tier allows 1,000 calls per UTC day (shared across all of your keys) plus a burst cap of 30 requests per minute per key. On top of that there is a global safety limit of 300 requests per minute per IP. All limits are defaults, not a contract, and may change. When you exceed any limit you get HTTP 429 with a Retry-After header so clients can pace themselves. Each free account can hold up to 3 active keys.
- How do I query QRL (PoW) vs QRL 2.0 data?
- Chain-specific endpoints carry the chain in the path: /api/v1/qrl2/... for QRL 2.0 (proof-of-stake, EVM) and /api/v1/qrl/... for the original QRL chain (proof-of-work). Cross-chain endpoints such as analytics, search and the richlist live at /api/v1/... without a chain segment; some accept an optional ?chain= query parameter.
- How do I get historical time-series data?
- The Analytics group exposes daily time-series (transactions, supply, fees, active addresses and more) going back to the genesis of each chain. Most accept a ?days= parameter; cross-chain timelines stitch the original Proof-of-Work chain and QRL 2.0 into one continuous series.
- Is there a WebSocket API?
- Yes — /api/v1/ws/live pushes new-block events per chain. It is a notification stream: subscribe for wake-ups, then fetch details over REST. The WebSocket endpoint is not part of the OpenAPI spec.
- Are amounts returned as numbers?
- Large amounts (values, fees, supply) are returned as decimal strings to preserve full integer precision beyond JavaScript's Number.MAX_SAFE_INTEGER. Parse them with BigInt(...) in JavaScript or int(...) in Python.