The entire US banking system,
one API call away.
Call Report & UBPR metrics, CAMELS-style scorecards, peer benchmarks, failures, M&A and enforcement events, SEC filings, and a full-universe screener: one versioned REST API, keyed by RSSD id, with a first-class Python SDK and live formulas for Excel.
# curl -H "Authorization: Bearer brr_…" { "rssd_id": 852218, "legal_name": "JPMORGAN CHASE BANK, N.A.", "hq_state": "OH", "total_assets": 4016571000, "total_deposits": 2787994000, "cet1_ratio": 15.08, "roa": 1.43, "roe": 16.64, "net_interest_margin": 2.80 }
One API, many datasets
131 datasets across 10 categories, every one behind the same key, the same response envelope, the same SDK.
Start in three lines
Install the SDK, drop in your key, get a DataFrame. New here? Follow the full setup walkthrough.
# pip install bankregreports import bankregreports bank = bankregreports.bankreg("brr_…") # One bank's latest snapshot (JPMorgan Chase, N.A.) df = bank.bank(852218) # Screen every FDIC-insured bank df = bank.screener(state="GA", min_assets=1_000_000)
# Snapshot curl https://api.bankregreports.com/api/v1/banks/852218/ \ -H "Authorization: Bearer brr_…" # Discover every dataset curl https://api.bankregreports.com/api/v1/datasets/
Or skip the code: the same data in Excel
BankRegReports for Excel puts the API behind nine worksheet functions (in beta). Type one in a cell, change the bank, and the whole model refreshes. It runs in Excel for Windows, Mac and the web, and signs in with the same API key.
A value as of a period =BRR.P(852218, "cet1_ratio") History over a window you pin =BRR.H(852218, "roa", "2022Q1", "2025Q4") A table: branches, peers, enforcement =BRR.S(852218, "branches") Look a bank up by name =BRR.ID("JPMorgan")
Built for a working model
A range on either argument spills a block, calls are batched so a 500-cell sheet is a couple of requests, and a line a bank did not report shows as a dash, never as zero.
Ready-made workbooks
Download a template in the house format, with every cell a live formula, or insert one from the add-in pane as a new sheet.
Explore the data
131 datasets across 10 categories. Public datasets need no account.
Banks
41 datasets: Bank Directory, Bank Snapshot, Bank Trends …
Screeners
10 datasets: Bank Screener, Screener Dataset (full working set), Loan-Concentration Screener …
Risk & Failures
9 datasets: High-Risk Banks, Failure Risk Score, Recent Failures …
Events & Enforcement
4 datasets: Structural Events, Enforcement Feed, Bank Enforcement Actions …
Industry & Macro
15 datasets: Industry Snapshot, Industry Trends, Peer Groups …
Rate Environment
7 datasets: Mortgage Rates, Deposit Rates, Treasury-Bill Rates …
Credit Unions
7 datasets: Credit Union Directory, Credit Union Snapshot, Credit Union Trends …
Holding Companies
3 datasets: Holding Company Directory, Holding Company Snapshot, Holding Company Trends
SEC Data
21 datasets: SEC Filing Index, XBRL Financial Facts, Insider Transactions …
Reference & Catalog
14 datasets: Watchlist, Watchlist Remove, Watchlist Alerts …
Call Report and UBPR data by API
The API serves FFIEC Call Report line items and UBPR-style ratios for every FDIC-insured bank as JSON over REST, keyed by RSSD id, alongside NCUA 5300 data for credit unions and holding-company structure from the Federal Reserve. The same fields are available through the Python SDK (pip install bankregreports) and the Excel add-in.
Bulk call report data downloads
The API has no bulk file download: page through the dataset endpoints instead, within your plan's daily call limit (see API pricing). The FFIEC publishes the raw quarterly files on its bulk data download page. Those files carry the original MDRM codes, without derived ratios or peer context.
How this relates to the FFIEC public web service
The FFIEC runs its own Public Web Service on the Central Data Repository. It is a REST service that returns each institution's reports as filed to users with a web service account and security token, limited to about 2,500 downloads an hour, and it is the source of record. This API does the next step: the filings are already parsed, standardized across the FFIEC 031, 041 and 051 forms, and joined to ratios, peer benchmarks and NCUA data, so one request returns an analysis-ready series rather than a filing to parse. Background on the repository itself is on the FFIEC CDR page.
Frequently asked questions
Is there a free bank data API?
Yes. There is a free tier to explore and prototype, and public datasets need no account at all. Paid plans add production throughput. See pricing.
Is there a call report API?
Yes. The BankRegReports API serves FFIEC Call Report and UBPR data as JSON over REST, keyed by each bank's RSSD id, with a Python SDK (pip install bankregreports) and an Excel add-in over the same fields.
Is there an FDIC API or an FFIEC API?
Both agencies run their own. The FDIC publishes a free public API behind BankFind Suite for institution, financial, failure and Summary of Deposits data, and the FFIEC Public Web Service returns Call Reports as filed to users with a web service account and security token. The BankRegReports API serves both sources through one key, already joined to ratios and peer benchmarks.
What data does the BankRegReports API cover?
FFIEC Call Report and UBPR metrics for every FDIC-insured bank, NCUA 5300 data for every federally insured credit union, Federal Reserve holding-company structure, and SEC EDGAR filings, with 26 years of quarterly bank history (credit unions since Q1 1994).
How do I authenticate with the API?
Pass your API key as a Bearer token in the Authorization header. Public-tier datasets need no key.
Is there a Python SDK?
Yes. Run pip install bankregreports to get clean DataFrames from any endpoint, alongside a documented REST API and cURL access.
Is there an Excel add-in?
Yes. BankRegReports for Excel adds nine worksheet functions (in beta) over the same fields the REST API serves, so changing the bank in one cell repopulates the whole sheet. It runs in Excel for Windows, Mac and the web and signs in with the same API key.
How do I look up a specific bank?
Institutions are keyed by their FFIEC RSSD id. You can also resolve a bank by name or FDIC certificate number. To find an RSSD id by hand, use the RSSD ID lookup.
How current is the data?
It tracks every FFIEC reporting cycle (26+ years of quarterly filings) and syncs new filings each quarter.
Ready to build?
The free tier gives you 200 requests/day to explore and prototype. Upgrade for production throughput.