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.

Browse every dataset: 170 macro and economic series · 16,000+ US stocks, delisted included · 231 ETFs · 13F holdings for every manager · every COT market

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 four report types, futures-only and combined, 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 (look-back plan)
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 on look-back

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 (look-back plan)
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 · Look-back plan

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 · Look-back plan

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")

Money, liquidity & capital flows · Look-back plan

M1, M2, M3, central-bank liquidity and cross-border capital flows

The money and flow data macro traders watch, in one place and in consistent units (billions). Fed net liquidity, G3 central-bank balance sheets in dollars, broad money for the US, euro area, Japan and the UK, and Treasury TIC flows by country, ready to line up against prices in a backtest. Updated twice a day.

Money supplyUS M1 and M2 (monthly and weekly), monetary base, M2 velocity, official US M3 to 2006, FinzData US M3 estimate from 1980, euro-area M3, Japan M3, UK M4, each also in US dollars, and G4 broad money in USD
LiquidityFed total assets, Treasury General Account, overnight reverse repo, bank reserves, Fed net liquidity (assets − TGA − ON RRP), discount window, swap lines, Eurosystem and Bank of Japan balance sheets, G3 central-bank assets in USD, Chicago Fed NFCI, St. Louis Fed stress index
Capital flowsTreasury TIC: foreign holdings, net purchases and valuation changes of US Treasuries, agencies, corporate bonds and equities by country and by official vs private holders; Fed custody holdings for foreign official accounts (weekly); foreign-held federal debt; rest-of-world Treasury purchases; US current account
HistoryUS money from 1959, Fed balance sheet from 2002, euro-area M3 from 1980, TIC holdings from 2020
Transformslevel, yoy, mom, diff, diff_yoy, computed on the server
US M3 estimateM2 + large time deposits + institutional money funds. The Fed stopped publishing M3 in 2006; over 1980–2006 the estimate's year-on-year growth tracks official M3 with 0.94 correlation, at about 7% below its level
Fieldsseries_id, date, value (TIC: country, date, asset, holdings, net_purchases, valuation_change)
SourcesFederal Reserve, US Treasury, BEA, European Central Bank, Bank of Japan, Bank of England, credited once per download
import finzdata as yf

c = yf.Client()
c.liquidity_catalog()                                   # every series, units, coverage, sources
liq = c.liquidity("FED_NET_LIQUIDITY", start="2015-01-01")
money = c.liquidity(["US_M2", "US_M3_ESTIMATE", "G4_BROAD_MONEY_USD"], transform="yoy", wide=True)
china = c.tic(country="China, Mainland", asset="treasuries")   # holdings and net purchases, USD bn

13F institutional holdings · look-back bundles

13F institutional holdings

Every Form 13F filed with the SEC since mid-2013: about 9,000 managers a quarter, every reported position, with CUSIP-to-ticker mapping and quarter-on-quarter flows. Amendments are applied the way the SEC intends (restatements replace the filing, new-holdings amendments add to it), and values are in dollars throughout.

CoverageAll 13F-HR filers, 2013 Q2 to the latest quarter; holdings, puts and calls, investment discretion and voting authority
Ownership by stockHolders, shares, reported value, new / added / trimmed / exited positions and net share change, by quarter
By managerThe full book each quarter, with portfolio weights
PlansFree: latest quarter's ownership by stock. Look-back bundles: holders, manager books and ownership history for the years you buy. Institutional: everything since 2013
UpdatesAs the SEC publishes each quarterly 13F data set
import finzdata as yf
c = yf.Client()
c.institutional_ownership("NVDA")      # holders and flows, quarter by quarter
c.holders("NVDA", period="2026Q2")     # every manager holding it
c.manager_holdings(cik="1067983")      # one manager's whole book
c.managers(q="berkshire")              # find a manager

Browse all 13F managers

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 look-back plan.

CoverageUS-listed equities, incl. delisted, plus 231 US-listed ETFs (look-back plan)
ETFsDaily bars for 231 ETFs (index, sector, bond, commodity, country and leveraged funds), split-adjusted as traded; dividends are not applied to ETF prices
HistoryLast 12 months (Free); back to January 2000 on the look-back plan, for the years you buy
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

Intraday prices · hourly on every bundle · 1-minute and 5-minute from 25 years

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)
Which bundlesHourly bars on every look-back bundle (5 to 30 years). 1-minute and 5-minute bars with the 25-year ($575), 30-year ($670) and Institutional ($975) bundles
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 · 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.
# Email [email protected] 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 (look-back plan)
Event typessplit, dividend
Fieldsdate, ticker, type, ratio, amount, ex_date
import finzdata as yf

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

Browse live actions