Skip to main content
POST
/
v1
/
trpc
/
tradFiMarketData.*
tRPC TradFi Market Data API
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.*' \
  --header 'X-API-KEY: <api-key>'
The 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 ticker
      • kind: logo or icon
    • Response: image bytes with the upstream content type when branding exists; 404 when 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, default 6
    • 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, default 6
    • 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_class equity or fund and 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
  • 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, default false
    • 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, or year
      • required from and to as YYYY-MM-DD or millisecond timestamps
      • optional adjusted, default true
      • optional sort, asc or desc, default asc
      • optional limit, 1-50000, default 5000
    • 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
    • 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 as I:SPX or I:VIX
    • 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 as I:SPX or I:VIX
      • required multiplier, 1-1440
      • required timespan: minute, hour, day, week, month, quarter, or year
      • required from and to as YYYY-MM-DD or millisecond timestamps
      • optional adjusted, default true
      • optional sort, asc or desc, default asc
      • optional limit, 1-50000, default 5000
    • 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, all or glider_supported, default all
      • optional limit, 1-600, default 120
    • Upstream endpoints:
    • Response includes constituent metadata, normalized snapshot fields, sector labels, tradeability, holdings weightPct, holdingsSource, holdingsAsOfDate, request ids, and cache metadata. The compatibility weight field equals weightPct; weightSource is index_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, all or glider_supported, default all
    • Upstream endpoints:
    • 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
  • 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, default 90
      • optional ratingsLimit, 1-50, default 12
      • optional insightsLimit, 1-20, default 5
    • Upstream endpoints:
    • 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 transient error for 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-analysis payload
    • Input:
      • required ticker
    • 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 GOOGL using GOOG business-segment data are represented explicitly in source.aliasApplied and source.sourceTicker.
  • tradFiMarketData.getStockRiskFactors
    • Purpose: hydrate stock-page risk-factor summaries from the public TipRanks stock-risk-factors payload
    • Input:
      • required ticker
    • 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.

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 as I:SPX.
  • Dashboard stock news uses canonical RWA assets in core.asset_canonical with asset_class equity or fund, then requires an issuer product with at least one linked onchain asset before requesting/filtering Massive news through getTradeableAssetNews. This is issuer-neutral so Ondo, xStocks, or future issuer products can enter the news universe through data.
  • If MASSIVE_API_KEY is not configured, procedures return successful empty payloads with configured: false so 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: null response 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 $0 price.
  • 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, and SP500_HOLDINGS_CACHE_TTL_SECONDS from environment config, defaulting to https://api.massive.com, 300, State Street’s SPY daily holdings workbook URL, and 86400 for the non-secret values.

Example Calls

Fetch latest Glider-tradeable equity and ETF market news:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getTradeableAssetNews' \
  --header 'content-type: application/json' \
  --data '{"json":{"limit":4}}'
Fetch current canonical market-hours status:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getMarketStatus' \
  --header 'content-type: application/json' \
  --data '{"json":null}'
Fetch recent news for NVIDIA:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getStockDetails' \
  --header 'content-type: application/json' \
  --data '{"json":{"ticker":"NVDA","newsLimit":5}}'
Fetch snapshots for several tokenized equity underlyings:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getStockSnapshots' \
  --header 'content-type: application/json' \
  --data '{"json":{"tickers":["AAPL","MSFT","NVDA"],"includeOtc":false}}'
Fetch intraday aggregate bars for Apple:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getStockAggregateBars' \
  --header 'content-type: application/json' \
  --data '{"json":{"ticker":"AAPL","multiplier":5,"timespan":"minute","from":"2026-04-29","to":"2026-04-30","limit":500}}'
Fetch related ticker links for Tesla:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getRelatedTickers' \
  --header 'content-type: application/json' \
  --data '{"json":{"ticker":"TSLA"}}'
Fetch major market index snapshots:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getIndexSnapshots' \
  --header 'content-type: application/json' \
  --data '{"json":{"tickers":["I:SPX","I:NDX","I:DJI","I:RUT","I:VIX"]}}'
Fetch intraday aggregate bars for the S&P 500 index:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getIndexAggregateBars' \
  --header 'content-type: application/json' \
  --data '{"json":{"ticker":"I:SPX","multiplier":15,"timespan":"minute","from":"2026-04-29","to":"2026-04-30","limit":120}}'
Fetch S&P 500 heatmap data:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getSp500Heatmap' \
  --header 'content-type: application/json' \
  --data '{"json":{"availability":"all","limit":120}}'
Fetch equity sector performance:
curl --request POST \
  --url 'https://api.glider.fi/v1/trpc/tradFiMarketData.getEquitySectorPerformance' \
  --header 'content-type: application/json' \
  --data '{"json":{"availability":"all"}}'