Datasets
Datasets
Every dataset on one API key, built for backtesting: delisted names kept, fundamentals and macro point-in-time, adjustments published. Coverage and fields below, with a working code example for each.
COT positioning · Free+
Commitments of Traders
CFTC Commitments of Traders reports, all four report types. Legacy report since 1986; Disaggregated and Traders in Financial Futures since 2006. Published weekly Friday 3:30 pm ET with positions as of Tuesday. 431 markets.
| Coverage | 431 futures markets |
|---|---|
| History | Legacy 1986–, Disaggregated & TFF 2006– |
| Schedule | Weekly, Friday 3:30 pm ET (as of Tuesday) |
| Fields | open_interest, noncomm_long, noncomm_short, comm_long, comm_short, cot_index, z_score |
Prefer a one-off bulk file? The full COT history (all 7 report types, 1986 to date) is also a free Parquet dataset on Hugging Face.
import finzdata as yf
cot = yf.Client().cot(report="legacy_fo", market="WHEAT")
print(cot.tail())
SEC fundamentals · Free+
Fundamentals from SEC XBRL
Company facts as reported to the SEC, parsed from XBRL filings. 10,435 SEC-reporting companies. Point-in-time queries via the as_of parameter return only what was public on that date.
| Coverage | 10,435 SEC-reporting companies |
|---|---|
| Source | SEC XBRL company facts |
| Point-in-time | as_of parameter (Researcher+) |
| Fields | cik, entity, concept (e.g. Revenues, Assets), unit, value, start, end, fy, fp, form, filed |
import finzdata as yf
f = yf.Client().fundamentals(ticker="AAPL", concept="Revenues", as_of="2023-06-30")
print(f[["end", "value", "form", "filed"]])
Macro · Free+ · point-in-time Researcher+
US macro series, with every vintage
158 US economic series from government sources — inflation, jobs, growth, rates, money and credit, housing, liquidity and financial conditions — refreshed the day each release comes out. Every revision is kept, so a backtest can use the number as it was first published instead of today's revised figure.
| Coverage | 158 series in 13 categories (CPI, payrolls, GDP, Treasury yields, Fed balance sheet, claims, housing starts, ...) |
|---|---|
| Source | BLS, BEA, Federal Reserve, Treasury, Census via FRED/ALFRED |
| Vintages | latest (Free) · first release, all vintages, as_of a date (Researcher+) |
| Calendar | Upcoming release dates for CPI, jobs, GDP and more (Free) |
| Fields | series_id, date, value, realtime_start, realtime_end |
import finzdata as yf
c = yf.Client()
cpi_today = c.macro("CPIAUCSL") # current values
cpi_then = c.macro("CPIAUCSL", as_of="2022-06-30") # what was known that day
upcoming = c.macro_calendar() # next release dates
FinzData Quantitative Model · Researcher+
Macro regime labels, a nowcast and a market-stress probability
Our own model outputs, built only from public data. Every label follows a written rule applied to each input as it was published on the date, so the history has no hindsight in it. The nowcast estimates the period that has not been published yet; the published label is kept beside it so you can see both.
| Weekly | Financial conditions direction and financial risk direction (tightening / easing / flat), from the Chicago Fed NFCI and its risk subindex |
|---|---|
| Monthly | Growth level, growth direction, inflation direction and macro quadrant (goldilocks / reflation / stagflation / slowdown), from the Chicago Fed CFNAI-MA3 and core PCE |
| Nowcast | Daily estimate of every label for the period not yet published, plus CFNAI-MA3 and core PCE estimates |
| Daily | Market stress probability: filtered probability of the high-volatility state in a two-state Markov-switching model of S&P 500 ETF returns |
| History | Point-in-time labels from 2005 (inflation) and 2011 (growth, financial conditions) |
| Rules | Every rule and threshold is returned by /v1/model/catalog |
import finzdata as yf
c = yf.Client()
now = c.model("latest") # today's labels, nowcast and stress probability
hist = c.model("labels", series="macro_quadrant") # point-in-time history
rules = c.model("catalog") # the written rule behind every label
Model outputs are research data, not investment advice.
Licensed third-party series · Researcher+
Credit, sentiment, housing and volatility series, with their sources
Series owned by data companies, served under licence from each owner on paid plans. Each download and each chart carries the owner's source credit.
| Moody's | Seasoned Aaa and Baa corporate bond yields, monthly and daily |
|---|---|
| University of Michigan | Consumer sentiment and 1-year inflation expectations (Surveys of Consumers) |
| S&P Dow Jones Indices | Case-Shiller U.S. National, 20-City and 10-City home price indices |
| ICE Data Indices | ICE BofA US high-yield and BBB corporate spreads and yields |
| Cboe | VIX, VIX9D, VIX3M, VVIX, SKEW, 1- and 3-month implied correlation, oil and gold volatility, and the daily VIX futures curve |
| Fields | series_id, date, value |
| Source credit | Once per download: the citation field in JSON, the X-FinzData-Source header on CSV and Parquet, and SOURCES.txt in bundles |
import finzdata as yf
c = yf.Client()
c.licensed_catalog() # every series, its owner, source line and availability
hy = c.licensed("BAMLH0A0HYM2")
curve = c.vix_futures(start="2024-01-01")
Daily prices · Free+
Daily US equity bars
End-of-day OHLCV bars. Stored unadjusted; adjustments are applied on read with adjust=none|splits|all. Delisted names are included on the Researcher plan and above.
| Coverage | US-listed equities, incl. delisted (Researcher+) |
|---|---|
| History | 10 yrs (Free), 30+ yrs (Researcher+) |
| Adjustment | adjust=none|splits|all, applied on read |
| Fields | date, open, high, low, close, volume |
import finzdata as yf
df = yf.Ticker("MSFT").history(start="2000-01-01", auto_adjust=True)
print(df.tail())
1-minute prices · Researcher+
Intraday bars: 1-minute, 5-minute, hourly
Intraday OHLCV bars on the ET wall clock, including pre-market and post-market sessions, unadjusted or adjusted for splits and dividends. Download free samples and read the full file specification before you buy.
| Coverage | US-listed equities |
|---|---|
| Clock | ET wall clock, incl. pre/post market |
| Bar sizes | 1-minute; 5-minute and hourly built from it (clock-aligned, stamped at bar start) |
| Adjustment | Unadjusted or split + dividend adjusted |
| Fields | ts, open, high, low, close, volume |
import finzdata as yf
df = yf.Ticker("NVDA").history(interval="5m", start="2024-01-02") # 1m, 5m, 1h
print(df.head())
Dealer gamma · Quant · coming soon
GEX by ticker
Dealer gamma exposure computed from end-of-day options chains, aggregated per ticker.
| Coverage | US optionable tickers |
|---|---|
| Source | End-of-day options chains |
| Fields | date, ticker, gex, call_gamma, put_gamma |
import finzdata as yf
# Dealer gamma (GEX) is coming soon on the Quant plan.
# Email sales@finzdata.com to join the early-access list.
Corporate actions · Free+
Splits and dividends
Splits and dividends delivered as dated events, so you can apply adjustments yourself or let the API do it on read.
| Coverage | US-listed equities, incl. delisted (Researcher+) |
|---|---|
| Event types | split, dividend |
| Fields | date, ticker, type, ratio, amount, ex_date |
import finzdata as yf
acts = yf.Client().actions("AAPL")
print(acts)