MARKET DATA API
Clean market data. Point-in-time. No guesswork.
Built for quants, data scientists and financial analysts who backtest. Survivorship-free US equity bars from 1-minute to daily, COT positioning, point-in-time SEC fundamentals and macro vintages, a quantitative macro model and licensed credit, sentiment and volatility series — in pandas with one line: pip install finzdata.
Free tier · 1,000 calls/day · no card
import finzdata as yf yf.Client().cot(report="legacy_fo", market="GOLD")
| date | market | spec net | wk chg | COT index |
|---|---|---|---|---|
| 2026-09-29 | Gold (COMEX) | 218,632 | −7,221 | 66.4 |
Real output. CFTC Commitments of Traders, as of 2026-09-29.
BUILT FOR BACKTESTING
Your edge is only as good as your data
Bad data creates fake alpha — returns that exist in the backtest and vanish in live trading. FinzData is built to remove the usual causes.
Survivorship bias
Daily bars include delisted names, so a backtest sees the companies that failed as well as those that survived.
Look-ahead bias
SEC fundamentals and macro series are point-in-time: ask for any as-of date and get only what was public that day.
Revisions
Every macro vintage is kept, so you can test on the first-released number instead of today's revised one.
Corporate actions
Unadjusted and split-and-dividend-adjusted bars, with the adjustment formula published and the split and dividend history included.
Timestamps and gaps
Every bar is stamped at the start of its interval in US Eastern time; minutes with no trades are left out, never forward-filled.
Checked every night
Each nightly update is validated before it is written, and the freshness of every dataset is published on the status page.
PYTHON-FIRST
One line to install. pandas out.
pip install finzdata gives you a client that works like yfinance — the same Ticker, history and download calls — and returns pandas DataFrames ready for your backtest. No SDK to learn, no CSV wrangling.
Quants
Point-in-time history and intraday bars for signal research and backtests.
Data scientists
Tidy pandas and Parquet, bulk downloads and nightly bundles for model training.
Financial analysts
Fundamentals as reported, macro and positioning in one place, CSV when you need a spreadsheet.
Try it free
The free tier includes COT positioning, SEC fundamentals, daily bars for 10 years, macro latest values, and 1,000 calls per day.
See the free tierCheck before you buy
Download 10-row sample files for 1-minute, 5-minute and hourly bars, the full file specification, the adjustment formula, and a list of every ticker with first and last dates.
Download samplesSee it live
Charts of macro series, the Treasury curve, COT positioning and prices, rendered from the same data the API serves.
Open live chartsDatasets
COT positioning Free
Commitments of Traders positioning for futures markets, published weekly by the CFTC.
COT positioningSEC fundamentals Free
Company fundamentals from SEC filings; point-in-time history is available on Researcher and above.
SEC fundamentalsUS macro with vintages Free
US macro series with latest values free; every vintage as originally published is on Researcher and above.
US macroDaily equity bars incl. delisted Free 10 yrs
Daily bars for US equities including delisted names; 10 years free, 30+ years on Researcher and above.
Daily equity barsIntraday bars 1-min/5-min/hourly Researcher+
Intraday bars at 1-minute, 5-minute and hourly resolution for US equities.
Intraday barsFinzData Quantitative Model Researcher+
A quantitative macro model with labels as published on each date.
Quantitative ModelLicensed third-party series Researcher+
Licensed series from Moody's, University of Michigan, Case-Shiller, ICE BofA and Cboe.
Licensed seriesCorporate actions Free
Corporate actions for US equities, used by the published adjustment formula.
Corporate actionsWorks like yfinance
The same calls you already know, plus the datasets yfinance doesn't have. JSON or CSV over the API on every plan; Parquet, batch jobs and nightly bundles from Researcher up.
import finzdata as yf
msft = yf.Ticker("MSFT")
daily = msft.history(start="2020-01-01") # daily bars, split and dividend adjusted
bars = msft.history(interval="5m", start="2026-10-01") # 5-minute bars (Researcher+)
c = yf.Client()
gold = c.cot(report="legacy_fo", market="GOLD") # COT positioning
cpi = c.macro("CPIAUCSL", as_of="2022-06-30") # CPI as it was known that day
Data you can check
Point-in-time history
Macro vintages and model labels are stored as published on each date, so backtests use what was actually known.
Published file specification
Timestamps, sessions, gaps and the adjustment formula are documented in the file specification.
Live data status
The freshness of every dataset is checked hourly on the status page.
Sources credited
Licensed series carry their owner's source credit in every download.
Pricing
Free
$0
- COT, SEC fundamentals, corporate actions
- Daily bars, 10 years, incl. delisted
- Macro latest values, 1,000 calls/day
Researcher
$39/mo or $390/yr
- Intraday bars 1-min/5-min/hourly
- Daily bars, 30+ years
- Macro vintages, point-in-time fundamentals
Quant
$199/mo or $1,990/yr
- Everything in Researcher
- 1-minute full-history download
- 100 batch jobs a day, personal licence + 1 professional seat
Institutional
from $2,500/mo
- Commercial internal-use licence
- Unlimited batch jobs
- Institutional contract