Security identity
Look up a security by canonical ID, or by ticker on a date. Historical lookups follow ticker renames, and a security's symbol history is available.
Security identities, minute bars, S&P 500 membership, fundamentals and news, over HTTP or MCP.

The API allows the firm to control the data its agents see. It provides a layer you control between the data provider and your operations.
Look up a security by canonical ID, or by ticker on a date. Historical lookups follow ticker renames, and a security's symbol history is available.
Intraday and historical sessions for one symbol or up to 600 at once, with a stream for updates. Responses state the feed, delay and as-of time, and whether the bars are final. Prices are raw and include extended hours.
Daily snapshots, current quotes in batch, and daily indicators: EMA, average daily volume and factor betas, computed across ticker changes.
S&P 500 members and changes as of a date, with weights. Members and weights of ETFs and index funds on a date.
Financial facts from SEC filings since 2014 for S&P 500 members, each with the time it became public. Restatements are kept beside the original. FINRA short interest.
Earnings releases of S&P 500 members since 2016, and earnings surprises. Cash dividends and stock splits, each as of a date you choose.
Recent headlines, historical pages, a stored archive and article versions, a live stream, and monthly Parquet exports of the news wire.
The US equity session calendar, with early closes and closures, and the US macro release calendar: FOMC decisions, CPI, employment. Both from 2016.
ES and MES contracts, contract bars, and the front-contract sequence with a declared roll.
Completed trading days are published to a data lake of final minute bars.
Choose the market-data feed, the symbols published to the lake, and whether MCP is enabled. The source is open, so any part can be changed.
Java 21 and Spring Boot serve the API. Market data is stored in a Parquet lake of partitioned, ZSTD-compressed files that are written once and never updated, and DuckDB reads them in place. Columnar, compressed storage suits data that is written once and read in bulk. Python scripts acquire and ingest the data. MySQL holds identity and reference data. Live data is delivered over WebSocket.
MCP clients connect over HTTP and call the API's tools.
POST /api/v1/data/mcp
These four tools are read-only. More tools are available depending on how the API is configured.
Minute bars for a session. The response includes the feed, delay, as-of time, whether the bars are final, and any symbols that could not be resolved.
GET /api/v1/data/bars/intraday/batch?symbols=SPY,QQQ&date=2026-09-24
Tell us which datasets, historical coverage, or MCP tools you need.