tRPC TradFi Market Data API
tRPC Endpoints
tRPC TradFi Market Data API
Glider-tradeable asset news, U.S. equity and index snapshots, and ticker overviews backed by Massive market data.
POST
tRPC TradFi Market Data API
The
Fetch current canonical market-hours status:
Fetch recent news for NVIDIA:
Fetch snapshots for several tokenized equity underlyings:
Fetch intraday aggregate bars for Apple:
Fetch related ticker links for Tesla:
Fetch major market index snapshots:
Fetch intraday aggregate bars for the S&P 500 index:
Fetch S&P 500 heatmap data:
Fetch equity sector performance:
tradFiMarketData.* namespace is available on the public tRPC base
endpoint:
- Base endpoint:
POST /v1/trpc - Namespace:
tradFiMarketData.* - Auth: public
- Upstream: Massive REST API
- Server cache: 300 seconds by default. Platform API uses process memory plus Redis or the asset-data-sync KV-backed remote cache when configured.
REST Assets
GET /v1/tradfi-market-data/tickers/{ticker}/branding/{kind}- Purpose: proxy Massive ticker branding images without exposing the Massive API key to browser clients
- Params:
ticker: normalized stock tickerkind:logooricon
- Response: image bytes with the upstream content type when branding exists;
404when Massive has no branding for that ticker
Procedures
-
tradFiMarketData.getStockNews- Purpose: fetch recent stock-market news, optionally scoped to caller-provided tickers
- Input:
- optional
tickers, up to 25 symbols - optional
limit, 1-50, default6
- optional
- Upstream endpoint:
GET /v2/reference/news - Response includes normalized articles, publishers, tickers, insights, and cache metadata
-
tradFiMarketData.getTradeableAssetNews- Purpose: fetch recent stock-market news for Glider-tradeable RWA underlyings without requiring clients to know the tradeable ticker universe
- Input:
- optional
limit, 1-50, default6
- optional
- Upstream endpoint:
GET /v2/reference/news - Response includes normalized articles, publishers, tradeable tickers,
tradeable insights, and cache metadata. Results are limited to canonical RWA
assets with
asset_classequityorfundand an issuer product with at least one linked onchain asset.
-
tradFiMarketData.getMarketStatus- Purpose: fetch the current Massive market-hours state for canonical TradFi RWA underlyings
- Input: none
- Upstream endpoint:
GET /v1/marketstatus/now - Response includes normalized exchange status, broad market status, extended-hours flags, currency market status, provider server time, and cache metadata
-
tradFiMarketData.getStockSnapshot- Purpose: fetch the latest stock snapshot for one ticker
- Input:
- required
ticker
- required
- Upstream endpoint:
GET /v2/snapshot/locale/us/markets/stocks/tickers/{stocksTicker} - Response includes a normalized single-item
snapshotsarray plus cache metadata
-
tradFiMarketData.getStockSnapshots- Purpose: fetch latest stock snapshots for a ticker set, using Massive’s full-market snapshot endpoint with a ticker filter
- Input:
- required
tickers, 1-100 symbols - optional
includeOtc, defaultfalse
- required
- Upstream endpoint:
GET /v2/snapshot/locale/us/markets/stocks/tickers - Response includes normalized snapshots, count, request id, and cache metadata
-
tradFiMarketData.getStockAggregateBars- Purpose: fetch OHLC bars for stock detail charts
- Input:
- required
ticker - required
multiplier, 1-1440 - required
timespan:minute,hour,day,week,month,quarter, oryear - required
fromandtoasYYYY-MM-DDor millisecond timestamps - optional
adjusted, defaulttrue - optional
sort,ascordesc, defaultasc - optional
limit, 1-50000, default5000
- required
- Upstream endpoint:
GET /v2/aggs/ticker/{stocksTicker}/range/{multiplier}/{timespan}/{from}/{to} - Response includes normalized timestamped OHLC bars, volume, VWAP, transaction count, request id, and cache metadata
-
tradFiMarketData.getRelatedTickers- Purpose: fetch Massive related tickers for a TradFi symbol so symbol-detail clients can show peer or thematically similar market links
- Input:
- required
ticker
- required
- Upstream endpoint:
GET /v1/related-companies/{ticker} - Response includes normalized related ticker symbols, count, request id, and cache metadata
-
tradFiMarketData.getIndexSnapshots- Purpose: fetch latest market index snapshots for dashboard surfaces such as the S&P 500, Nasdaq 100, Dow Jones, Russell 2000, or VIX
- Input:
- required
tickers, 1-20 index symbols such asI:SPXorI:VIX
- required
- Upstream endpoint:
GET /v3/snapshot/indices - Response includes normalized index values, session open/high/low/close, change, change percent, count, request id, and cache metadata
-
tradFiMarketData.getIndexAggregateBars- Purpose: fetch timestamped OHLC bars for index sparklines and charts
- Input:
- required
ticker, index symbol such asI:SPXorI:VIX - required
multiplier, 1-1440 - required
timespan:minute,hour,day,week,month,quarter, oryear - required
fromandtoasYYYY-MM-DDor millisecond timestamps - optional
adjusted, defaulttrue - optional
sort,ascordesc, defaultasc - optional
limit, 1-50000, default5000
- required
- Upstream endpoint:
GET /v2/aggs/ticker/{indexTicker}/range/{multiplier}/{timespan}/{from}/{to} - Response includes normalized timestamped OHLC bars, volume, VWAP, transaction count, request id, and cache metadata
-
tradFiMarketData.getSp500Heatmap- Purpose: fetch an S&P 500 constituent heatmap payload that uses State Street SPY holdings weight for tile size, repo-owned S&P 500 sector metadata for grouping, and Massive snapshots for live return/color
- Input:
- optional
availability,allorglider_supported, defaultall - optional
limit, 1-600, default120
- optional
- Upstream endpoints:
- State Street SPY daily holdings workbook from
SP500_HOLDINGS_URL - Massive
GET /v2/snapshot/locale/us/markets/stocks/tickers
- State Street SPY daily holdings workbook from
- Response includes constituent metadata, normalized snapshot fields, sector
labels, tradeability, holdings
weightPct,holdingsSource,holdingsAsOfDate, request ids, and cache metadata. The compatibilityweightfield equalsweightPct;weightSourceisindex_weight.
-
tradFiMarketData.getEquitySectorPerformance- Purpose: aggregate daily cached State Street SPY holdings weights and Massive constituent snapshots into sector-level market performance rows for the Stocks page
- Input:
- optional
availability,allorglider_supported, defaultall
- optional
- Upstream endpoints:
- State Street SPY daily holdings workbook from
SP500_HOLDINGS_URL - Massive
GET /v2/snapshot/locale/us/markets/stocks/tickers
- State Street SPY daily holdings workbook from
- Response includes sector key/name, constituent count, weighted change percent, up/down counts, top movers, source/as-of metadata, request ids, and cache metadata
-
tradFiMarketData.getStockDetails- Purpose: hydrate a stock detail surface with Massive ticker overview, snapshot, and recent news
- Input:
- required
ticker - optional
newsLimit, 1-20, default5
- required
- Upstream endpoints:
GET /v3/reference/tickers/{ticker},GET /v2/snapshot/locale/us/markets/stocks/tickers/{stocksTicker}, andGET /v2/reference/news - Response includes ticker overview fields such as company description, branding logo/icon URLs, homepage, market cap, SIC code/industry, FIGIs, employees, normalized snapshot, latest news articles, and separate cache metadata for each upstream request
-
tradFiMarketData.getStockMarketIntelligence- Purpose: hydrate equity analyst-intelligence surfaces for symbol detail pages using the purchased Massive/Benzinga partner datasets
- Input:
- required
ticker - optional
lookbackDays, 1-365, default90 - optional
ratingsLimit, 1-50, default12 - optional
insightsLimit, 1-20, default5
- required
- Upstream endpoints:
GET /benzinga/v1/consensus-ratings/{ticker}GET /benzinga/v1/ratingsGET /benzinga/v1/analyst-insightsGET /benzinga/v1/bulls-bears-say- existing Massive stock snapshot endpoint for the current price used in price-target upside calculations
- Response includes normalized consensus rating counts, collapsed buy/hold/sell counts, high/average/low price targets, current-price upside percentages, recent rating actions, analyst commentary, bull and bear thesis summaries, and per-source status/cache metadata
- Source statuses are fail-open.
not_entitled,empty, or transienterrorfor one Benzinga endpoint do not prevent the rest of the intelligence payload from rendering.
-
tradFiMarketData.getStockBusinessSegments- Purpose: hydrate stock-page revenue-by-segment charts from the public
TipRanks
stock-analysispayload - Input:
- required
ticker
- required
- Upstream endpoint:
GET https://www.tipranks.com/stocks/{slug}/stock-analysis/payload.json
- Response includes normalized segment groups, segment percentages, latest complete fiscal-year revenue basis, derived segment revenue, source URL, requested ticker, source ticker, alias metadata, update timestamp, and cache metadata.
- Runtime validates the payload root ticker before caching. Known route
fallbacks such as
GOOGLusingGOOGbusiness-segment data are represented explicitly insource.aliasAppliedandsource.sourceTicker.
- Purpose: hydrate stock-page revenue-by-segment charts from the public
TipRanks
-
tradFiMarketData.getStockRiskFactors- Purpose: hydrate stock-page risk-factor summaries from the public TipRanks
stock-risk-factorspayload - Input:
- required
ticker
- required
- Upstream endpoint:
GET https://www.tipranks.com/stocks/{slug}/stock-risk-factors/payload.json
- Response includes normalized risk categories, subcategories, current report totals, recent report history, top keywords, individual risk-factor items, source identity metadata, and cache metadata.
- Runtime validates the payload root ticker before caching and returns a successful empty payload if TipRanks has no usable model for a ticker.
- Purpose: hydrate stock-page risk-factor summaries from the public TipRanks
Runtime Notes
- Tickers are trimmed, validated, uppercased, and limited to alphanumeric
symbols plus
.and-. - Index tickers are trimmed, validated, uppercased, and also allow
:for Massive index symbols such asI:SPX. - Dashboard stock news uses canonical RWA assets in
core.asset_canonicalwithasset_classequityorfund, then requires an issuer product with at least one linked onchain asset before requesting/filtering Massive news throughgetTradeableAssetNews. This is issuer-neutral so Ondo, xStocks, or future issuer products can enter the news universe through data. - If
MASSIVE_API_KEYis not configured, procedures return successful empty payloads withconfigured: falseso browser surfaces can degrade cleanly. - If State Street SPY holdings are unavailable and no valid cached holdings payload exists, S&P 500 heatmap and sector procedures return successful empty payloads rather than falling back to market cap, volume, price, or equal-weight sizing.
- Ticker overview lookup treats missing Massive reference rows as a successful
overview: nullresponse so symbol pages can still show issuer products, snapshots, or news when only part of the provider surface is available. - Related-ticker lookup treats missing or non-entitled Massive responses as a successful empty result so symbol pages can render without blocking other market data.
- TipRanks stock insight payloads are treated as public CDN data, not an authenticated API. The backend sends stable browser-like request headers but does not store user/browser cookies or Cloudflare clearance tokens.
- S&P 500 heatmap and sector performance use daily cached State Street SPY holdings for constituent weights and repo-owned S&P 500 reference metadata for sector labels. Fast Massive snapshot responses provide price/change data and should not be stored in the 12-hour browser persistence bucket.
- Massive stock snapshots can include all-zero intraday bars outside an active
market session. The API treats those bars as missing data and falls back to
previous-day close for display surfaces instead of returning a
$0price. - Market-hours status is provider data, not browser-local schedule inference. If Massive market status is unavailable, clients should show an explicit unavailable state instead of guessing from local time.
- The platform API reads
MASSIVE_BASE_URL,MASSIVE_CACHE_TTL_SECONDS,SP500_HOLDINGS_URL, andSP500_HOLDINGS_CACHE_TTL_SECONDSfrom environment config, defaulting tohttps://api.massive.com,300, State Street’s SPY daily holdings workbook URL, and86400for the non-secret values.