One subscription, two markets that work nothing alike. That is why forex on Massive has quotes and aggregate bars but no trade feed while crypto has all three: the shape of each feed follows the structure of the market behind it, not a product decision. Read this before you write code that assumes the two behave the same way.
Applies to
- Plans: a Currencies subscription.
- Endpoints: the forex and crypto REST endpoints, and the /forex and /crypto WebSocket clusters.
- Asset classes: forex, with over 1,200 pairs, and crypto, with over 600.
Why forex has no trades
A currency trade happens between two institutions, on their own terms, and nobody is required to report it anywhere. There is no tape to publish, so what a data provider can offer is quotes: the rates institutions are showing, aggregated across contributors. That is what Massive publishes, as C on the WebSocket and through the forex REST endpoints.
Two consequences worth designing for. A forex aggregate bar is built from quotes rather than from executions, so its volume is not a volume of trades. And two forex providers can show slightly different rates at the same instant without either being wrong, because they aggregate different contributors.
How to tell the two halves apart in the data
A ticker record names which market a pair belongs to, which is the quickest way to confirm you are querying the half you meant:
curl -X GET "https://api.massive.com/v3/reference/tickers?ticker=C:EURUSD&limit=1&apiKey=YOUR_API_KEY"
Response
{
"results": [
{ "ticker": "C:EURUSD", "name": "Euro - United States dollar", "market": "fx",
"locale": "global", "base_currency_symbol": "EUR", "currency_symbol": "USD" }
],
"status": "OK"
}
X:BTCUSD comes back the same shape with market: crypto and base_currency_symbol: BTC. Neither carries a source_feed, unlike indices, so the data source is a property of the subscription rather than of the individual pair.
The metals are here too
The metals are here too. Gold and silver are quoted as currency pairs, C:XAUUSD and C:XAGUSD, and come through the same bank feeds. They are not a separate commodities source. Platinum and palladium were quoted this way once and are retired; the PL and PA futures are where they are now.
If you see an error
An empty result for a forex trades request is expected rather than an outage: there is no forex trade feed.
Rates that differ from your bank's are normal. Aggregated quotes from different contributor sets will not match a single institution's pricing.
Forex data stopping over a weekend is correct. Forex closes from Friday evening to Sunday evening Eastern; crypto does not close.

