Crypto is the one asset class on Massive where the venue matters to the price. US equities have a consolidated tape and a regulator requiring venues to report to it; crypto has neither, so BTC-USD on one exchange is a different number from BTC-USD on another at the same instant. Every trade carries the exchange it happened on, and combining them is your decision to make.
Applies to
- Plans: a Currencies subscription, which covers crypto and forex.
- Endpoints: the crypto REST endpoints and the /crypto WebSocket cluster, where trades are XT, quotes XQ and aggregate bars XA and XAS.
- Asset classes: crypto, with over 600 pairs.
Why there is no single price
There is no single price because crypto trades on independent venues in different jurisdictions with different fee structures and different pools of liquidity, and nothing requires them to agree or to report to a central processor. A pair can trade at meaningfully different prices on two exchanges at the same moment, and neither is wrong.
That has three consequences for anything you build:
- An aggregate bar for a pair is built across the venues we take, so it is a view of the market rather than a quotation from one exchange.
- Comparing a Massive price with one from a single exchange will show differences that are real, not errors.
- If your use needs one venue's prices specifically, filter on the exchange field rather than using the consolidated view.
How to see which exchange a trade came from
curl -X GET "https://api.massive.com/v3/reference/exchanges?asset_class=crypto&apiKey=YOUR_API_KEY"
Response
{
"results": [
{ "id": 1, "type": "exchange", "name": "Coinbase", "locale": "global" },
{ "id": 2, "type": "exchange", "name": "Bitfinex", "locale": "global" },
{ "id": 6, "type": "exchange", "name": "Bitstamp", "locale": "global" },
{ "id": 10, "type": "exchange", "name": "Binance", "locale": "global" },
{ "id": 23, "type": "exchange", "name": "Kraken", "locale": "global" }
],
"status": "OK"
}
The exchange field on a crypto trade indexes into this list, which is again a separate id space from stocks and options.
If you see an error
A price that differs from your exchange's own is expected rather than an error. Check which venue you are comparing against.
A pair that returns nothing is probably not traded on any of the five. Search /v3/reference/tickers?market=crypto for what is.
Crypto data over a weekend is normal: crypto does not close, unlike forex.

