Tiingo Financial Markets API
Datadory delivers tiingo financial markets api data covering corporate-action-adjusted end-of-day prices for 80,000+ assets back to 1962 - US equities, ETFs, mutual funds and Chinese A-shares - alongside IEX intraday archives, 20+ years of fundamentals, a 70-million-article news archive, 140+ forex pairs and multi-exchange crypto, delivered daily, weekly, or hourly.
What is the Tiingo Financial Markets API?
Twelve years in business from Virginia, and the pitch has barely changed: one price spine, adjusted properly, kept honest across every asset it watches. The Tiingo Financial Markets API serves end-of-day OHLCV for more than 80,000 tickers - NYSE, NYSE Arca, NYSE American, NASDAQ, BATS/CBOE, IEX, every OTC group, plus Shanghai and Shenzhen A-shares - with history reaching back to 1962. Sixty-plus years of daily rows, each carrying raw and corporate-action-adjusted prices side by side, produced through an error-checking framework that audits feeds across all monitored assets rather than trusting any one feed blind.
An IEX real-time and intraday firehose arrives over a cross-connect, with resamplable historical archives behind it. Fundamentals run twenty-plus years of quarterly and annual statements plus daily metrics. A news API holds 70+ million articles across two decades, entity-tagged so headlines attach to the tickers they move; forex covers 140+ pairs back to 2020; crypto rides a multi-exchange firehose.
In Datadory's catalog of 1,744 datasets across 159 viable industries, this record scores 8/10 for quality - one of 417 records in that band, against a catalog-wide average of 7.81 - anchoring the financial exchanges shelf as the clean-adjusted-EOD play beside the tick-depth specialists.
What do the sample rows look like?
One daily price row for an S&P 500 constituent, exactly as the fields land:
date 2024-01-05T00:00:00.000Z
open 181.18
high 182.94
low 180.88
close 181.18
volume 74340800
adjOpen 179.55
adjHigh 181.29
adjLow 179.26
adjClose 181.18
adjVolume 74340800
divCash 0.0
splitFactor 1.0Thirteen values per ticker per session, raw and adjusted riding in the same row - that pairing is the whole trick. The adjusted columns restate history through every dividend (divCash) and split factor (splitFactor), so a twenty-year total-return chart is a straight read off adjClose instead of a rebuild from corporate-action notices.
Because the shape never varies by venue or asset class, one parser covers NASDAQ listings, OTC names and Shenzhen A-shares alike - and the same discipline carries into fundamentals statements and entity-tagged news records.
What fields does the dataset include?
Thirteen verified fields anchor every end-of-day price row, checked during our August 2026 research pass against documented structure rather than marketing copy - field definitions carry our "verified" confidence flag. Daily metadata (ticker, name, exchange, currency, active status), fundamental statement line items and entity-tagged news attributes fold under additional fields on request - name them with your sample and they ship in the same table.
How is the data covered?
Three chips, honestly drawn:
- Geography - United States venues: NYSE, NYSE Arca, NYSE American, NASDAQ, BATS/CBOE, IEX and all OTC groups, plus Chinese A-shares on Shanghai and Shenzhen; 140+ forex pairs; global crypto venues.
- Temporal - end-of-day prices back to 1962, sixty-plus years deep; fundamentals twenty-plus years; the news archive spans two decades and 70 million articles; forex starts at 2020.
- Granularity - one row per ticker per session at daily resolution, resamplable to weekly or monthly bars; intraday depth through IEX archives; tick-level streaming for IEX, crypto, forex and BOATS.
Scale check: equity EOD prints land at 5:30pm EST with corrections through the 8:00pm EST close, mutual fund NAVs by midnight EST. Six decades of continuous history on one consistent schema is what separates this shelf's long-memory records from feeds that started when their founders learned Python.
How is the dataset delivered?
API, files, or your warehouse. Daily, weekly, or hourly.
The tables land however your stack wants them - pushed to storage, served over an endpoint, or synced straight into your database, as JSON or CSV. Name the tickers, the field cut and the cadence when you request the sample; the sample ships first either way. Get a sample of this dataset and the adjusted EOD row above arrives alongside the full dictionary for whichever slices you pick - fundamentals, news, forex or crypto included.
Who uses this data, and for what?
A sixty-year adjusted archive earns its keep in specific jobs:
- Backtest on history that doesn't lie - adjClose already folds in every dividend and split since 1962, so total-return studies skip the survivorship and adjustment traps that quietly inflate results; twenty years of statement-level fundamentals sit alongside for screening. See investors and quants use cases.
- Model with a clean exogenous feature - nightly-refreshed EOD rows for 80,000+ assets drop straight into feature pipelines, with weekly and monthly bars resampled before delivery. See data scientists use cases.
- Wire a watchlist or portfolio tracker fast - clean responses in both JSON and CSV, stable field order and symbol lookup make a retail-investing app's read paths an afternoon.
- Attach headlines to tickers - entity-tagged news means a sentiment-over-price study needs no second vendor to explain why a gap happened. See developers and builders use cases.
Which personas pair this dataset with what?
Four of Datadory's eight personas tag this record, ranked by relevance:
- Investors & quant researchers (relevance 3/3) - sixty-plus years of adjusted EOD history plus twenty-year fundamentals is among the best value in market data for backtesting depth.
- Data scientists & ML engineers (2/3) - corporate-action-clean features across 80,000+ assets without stitching vendors.
- Developers & data-product builders (2/3) - EOD, IEX intraday, news and crypto behind one integration; plan display usage deliberately before shipping anything public-facing.
- Journalists, academics & students (1/3) - coursework runs comfortably on a personal-use plan, with self-serve terms forbidding display or sharing.
What should I know before requesting a sample?
Three things worth deciding upfront. First, raw versus adjusted: both ride in every row here, but mixing them mid-series is how backtests quietly break - pick your convention once. Second, breadth versus depth: fundamental history depth differs between tiers, so say how far back you need statements and the sample gets cut to match. Third, display intent: showing data publicly takes a separate arrangement beyond internal use - say now if the data will face customers, and we scope it before anything ships.
One honest note from our August 2026 research pass: the example price row was reconstructed from documented field names rather than a captured live payload - we confirm it against a live pull before any production delivery.
Which notes pair with this dataset?
Notes worth reading next:
- Financial exchanges data hub - the pooled view of the industry slice, eleven primary datasets deep, from commercial market-data suites to official statistics.
- Alpha Vantage Stock and Financial Market Data API - the indicator-ready rival: nine asset families with fifty-plus precomputed indicators against this record's adjusted-depth play.
- Massive (formerly Polygon.io) Stock Market API - nanosecond US tick history when the job needs the tape, not the daily print.
- Nasdaq Data Link (formerly Quandl) - Sharadar, Mergent and Zacks tables behind one marketplace; the scored trade-offs sit in the head-to-head comparison.
- Tiingo source profile - who publishes the catalogue and what else ships from the same source.
- Best financial exchanges datasets - where this record ranks within the slice.
- Corporate actions and OHLCV - the two terms this page leans on hardest, unpacked.
Field dictionary
Every field below is documented against real records. The full dictionary ships with the sample.
| Field | Type | Definition | Example |
|---|---|---|---|
date | date | The date this data pertains to. | "2024-01-05T00:00:00.000Z" |
open | number | The opening price for the asset on the given date. | 181.18 |
high | number | The high price for the asset on the given date. | 182.94 |
low | number | The low price for the asset on the given date. | 180.88 |
close | number | The closing price for the asset on the given date. | 181.18 |
volume | integer | The number of shares traded for the asset. | 74340800 |
adjOpen | number | The adjusted opening price for the asset on the given date. | 179.55 |
adjHigh | number | The adjusted high price for the asset on the given date. | 181.29 |
adjLow | number | The adjusted low price for the asset on the given date. | 179.26 |
adjClose | number | The adjusted closing price for the asset on the given date. | 181.18 |
adjVolume | integer | Shares traded for the asset, adjusted for corporate actions. | 74340800 |
divCash | number | The dividend paid out on 'date' (note that 'date' will be the 'exDate' for the dividend). | 0.0 |
splitFactor | number | The factor used to adjust prices when a company splits, reverse splits, or pays a distribution. | 1.0 |
ticker | string | The ticker symbol identifying the asset in the price history. | AAPL |
name | string | The full-length name of the asset. | Apple Inc. |
exchangeCode | string | An identifier mapping which exchange the asset is listed on. | NASDAQ |
description | text | A long-form description of the asset. | Apple Inc. designs, manufactures and markets smartphones, personal computers, tablets and wearables. |
startDate | date | Earliest date with price data for the asset; null means none available. | 1962-01-02 |
endDate | date | Latest date with price data for the asset; null means none available. | 2026-08-24 |
Sample row - daily prices for AAPL, 2024-01-05 (raw and adjusted side by side)
| Field | Value |
|---|---|
| date | 2024-01-05T00:00:00.000Z |
| open | 181.18 |
| high | 182.94 |
| low | 180.88 |
| close | 181.18 |
| volume | 74340800 |
| adjOpen | 179.55 |
| adjHigh | 181.29 |
| adjLow | 179.26 |
| adjClose | 181.18 |
| adjVolume | 74340800 |
| divCash | 0.0 |
| splitFactor | 1.0 |
Questions buyers ask
What fields does the Tiingo Financial Markets API include?
Every end-of-day row carries thirteen verified fields: date, open, high, low, close and volume, the adjusted set (adjOpen, adjHigh, adjLow, adjClose, adjVolume), plus divCash and splitFactor for corporate actions. Ticker metadata, fundamental statement line items and entity-tagged news attributes extend the dictionary on request.
How far back does the Tiingo Financial Markets API data go?
End-of-day prices reach back to 1962 - sixty-plus years of continuous daily history across US venues and Chinese A-shares. Fundamentals and the news archive each span twenty-plus years, forex series begin at 2020, and intraday depth comes from the IEX archives. Most price feeds half this age are still proud of themselves.
Which markets does the Tiingo Financial Markets API cover?
US equities, ETFs and mutual funds across NYSE, NYSE Arca, NYSE American, NASDAQ, BATS/CBOE, IEX and all OTC groups, plus Chinese A-shares on the Shanghai and Shenzhen exchanges - more than 80,000 monitored assets. Forex adds 140+ pairs and crypto rides a multi-exchange firehose.
Are the prices adjusted for splits and dividends?
Both conventions ship in the same row. Raw open, high, low, close and volume stay as traded, while adjOpen through adjClose restate history through every dividend and split via divCash and splitFactor. Total-return studies read adjClose directly instead of rebuilding adjustments from corporate-action notices.
Can I take Tiingo data alongside another price feed?
Yes, and it is a common shape: this record as the long-memory adjusted spine, a tick-grade feed bolted on for intraday studies. Because the thirteen-field row shape stays constant across venues, mapping a second feed onto it is a column exercise, not a rebuild. Ask for the cross-walk in your sample and we include it.
How fresh is the data?
Equity and ETF end-of-day rows land at 5:30pm EST with exchange corrections applied through the 8:00pm EST close, and mutual fund NAVs by midnight EST. Datadory then delivers to your cadence - daily, weekly, or hourly - so the freshness you specified is the freshness you get.
See the rows before you pay anything.
Name this dataset and we send real records from it — scoped to the fields you asked for.