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.

Coverage431 futures markets
HistoryLegacy 1986–, Disaggregated & TFF 2006–
ScheduleWeekly, Friday 3:30 pm ET (as of Tuesday)
Fieldsopen_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())

Browse live COT data

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.

Coverage10,435 SEC-reporting companies
SourceSEC XBRL company facts
Point-in-timeas_of parameter (Researcher+)
Fieldscik, 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"]])

Browse live fundamentals

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.

Coverage158 series in 13 categories (CPI, payrolls, GDP, Treasury yields, Fed balance sheet, claims, housing starts, ...)
SourceBLS, BEA, Federal Reserve, Treasury, Census via FRED/ALFRED
Vintageslatest (Free) · first release, all vintages, as_of a date (Researcher+)
CalendarUpcoming release dates for CPI, jobs, GDP and more (Free)
Fieldsseries_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.

WeeklyFinancial conditions direction and financial risk direction (tightening / easing / flat), from the Chicago Fed NFCI and its risk subindex
MonthlyGrowth level, growth direction, inflation direction and macro quadrant (goldilocks / reflation / stagflation / slowdown), from the Chicago Fed CFNAI-MA3 and core PCE
NowcastDaily estimate of every label for the period not yet published, plus CFNAI-MA3 and core PCE estimates
DailyMarket stress probability: filtered probability of the high-volatility state in a two-state Markov-switching model of S&P 500 ETF returns
HistoryPoint-in-time labels from 2005 (inflation) and 2011 (growth, financial conditions)
RulesEvery 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'sSeasoned Aaa and Baa corporate bond yields, monthly and daily
University of MichiganConsumer sentiment and 1-year inflation expectations (Surveys of Consumers)
S&P Dow Jones IndicesCase-Shiller U.S. National, 20-City and 10-City home price indices
ICE Data IndicesICE BofA US high-yield and BBB corporate spreads and yields
CboeVIX, VIX9D, VIX3M, VVIX, SKEW, 1- and 3-month implied correlation, oil and gold volatility, and the daily VIX futures curve
Fieldsseries_id, date, value
Source creditOnce 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.

CoverageUS-listed equities, incl. delisted (Researcher+)
History10 yrs (Free), 30+ yrs (Researcher+)
Adjustmentadjust=none|splits|all, applied on read
Fieldsdate, open, high, low, close, volume
import finzdata as yf

df = yf.Ticker("MSFT").history(start="2000-01-01", auto_adjust=True)
print(df.tail())

Browse live prices

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.

CoverageUS-listed equities
ClockET wall clock, incl. pre/post market
Bar sizes1-minute; 5-minute and hourly built from it (clock-aligned, stamped at bar start)
AdjustmentUnadjusted or split + dividend adjusted
Fieldsts, 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())

Browse live prices

Dealer gamma · Quant · coming soon

GEX by ticker

Dealer gamma exposure computed from end-of-day options chains, aggregated per ticker.

CoverageUS optionable tickers
SourceEnd-of-day options chains
Fieldsdate, 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.

CoverageUS-listed equities, incl. delisted (Researcher+)
Event typessplit, dividend
Fieldsdate, ticker, type, ratio, amount, ex_date
import finzdata as yf

acts = yf.Client().actions("AAPL")
print(acts)

Browse live actions