View as markdown
Concepts

Asset symbols

One canonical namespace, prefixed by asset class so identifiers never collide across categories.

Tickers and the universe

The unit and the population.

A ticker is one tradeable instrument: an equity (AAPL), an interest rate (R:SOFR), a currency pair (X:EURUSD) or a cryptocurrency (X:BTCUSD). The universe is 14,602+ tickers across 4 asset classes.

The non-equity series are curated, not exhaustive. We carry the full US Treasury par-yield curve and the Fed policy rates rather than every rate published; the major currency pairs and spot metals rather than every cross.

The asset classes

Equities are bare symbols; every other class carries a prefix.

Asset classPrefixExampleWhat it covers
stocks(none)AAPLEvery US-listed equity — NYSE, Nasdaq and AMEX — including ETFs, ADRs and preferred shares.
ratesR:R:SOFRThe full US Treasury par-yield curve, the Fed policy rates (SOFR, EFFR, and both ends of the target band), and the headline curve spreads.
cryptoX:X:BTCUSDThe major crypto pairs by liquidity, quoted against USD.
fxX:X:EURUSDThe major currency pairs, plus spot gold and spot silver — metals quote and trade as FX pairs, and carry ISO 4217 codes (XAU, XAG).

X: appears twice on purpose. FX and crypto both quote one thing in terms of another, and both live under it — so the prefix tells you a symbol isn’t an equity, but it does not tell you which class it is. Don’t branch on the prefix alone.

No auto-resolution

Every parameter expects the canonical form.

The API doesn’t guess. Passing BTC to a stock endpoint returns the Grayscale Bitcoin Mini Trust ETF — a real US-listed equity with that ticker — not bitcoin spot. If you want the cryptocurrency, ask for X:BTCUSD.

Symbols that collide

Watch for these when you’re building from user input.

  • BTC: Grayscale Bitcoin Mini Trust ETF (equity) vs X:BTCUSD (bitcoin spot).
  • ETH: Grayscale Ethereum Staking Mini ETF (equity) vs X:ETHUSD (ether spot).

What each class carries

Same endpoints and the same response shape — but the columns that apply differ.

Every class goes through the same endpoints. What changes is which columns are populated. The signal vocabulary was built for equities, and most of it is meaningless elsewhere — a Treasury yield has no P/E ratio and no earnings date.

  • stocks carries the full schema: price, volume, technicals, fundamentals, corporate events, profile, analyst ratings and news.
  • rates, fx and crypto carry price and daily OHLCV history, and nothing built on company financials. Equity-specific columns are null on these rows — not false or 0. That distinction matters: a null never satisfies a filter, so a non-equity row cannot accidentally match an equity screen.
  • Corporate-event, analyst and news endpoints (/v2/events, /v2/analyst, /v2/news) are stocks-only by definition — a rate pays no dividend. Passing a non-equity symbol returns an error naming its asset class rather than an empty result.

History depth, by class

Depth varies by source, and it is not equity-depth everywhere.

ClassDaily history fromNote
US equities stocks2003Full OHLCV, plus intraday bars and the whole signal schema. Each ticker’s own history starts at its first day of coverage, so a 2021 listing begins in 2021.
Rates rates1990One value per business day, and no open/high/low or volume — a rate has no intraday range and nothing trades, so those come back null.
Crypto crypto2010Genuine traded volume.
FX fx1968Spot metals reach furthest back (1968); the currency pairs begin in 2007. Pre-2024 metal bars are a single daily fixing, so open = high = low = close with no volume. FX has no consolidated traded size, so the volume field carries a tick count rather than shares or notional.

Intraday coverage (1h, 1m) varies by class and is expanding — the major crypto pairs have it, most non-equity series do not yet. Rather than guess from this page, ask: a request for an uncovered interval returns an explicit coverage marker, never a silent empty list, and /v2/tickers/{ticker}/coverage reports exactly what is held per ticker.