Skip to main content
Developer & API

Bank Data API: FFIEC Call Report and UBPR Data

Getting regulatory data for a single bank usually means a trip through the FFIEC Central Data Repository: bulk downloads, government-issue file formats, and a parsing job before you can even …

4 MIN READ

Getting regulatory data for a single bank usually means a trip through the FFIEC Central Data Repository: bulk downloads, government-issue file formats, and a parsing job before you can even start the analysis. For one bank that is annoying. For a peer group, a screen, or a model that refreshes every quarter, it is a project.

The BankRegReports bank data API removes that step. Every figure behind our dashboards, Call Report line items, UBPR ratios, CAMELS-style metrics, peer benchmarks, failures, mergers, and enforcement events, is available as clean JSON and a first-class Python SDK. Every FDIC-insured bank and every NCUA credit union, 25 years of quarterly filings, one API key.

It is free to start, 60 requests a minute on the free tier, so you can prototype before you decide anything.

How do I pull call report data?

Reference an institution by its FFIEC RSSD ID, FDIC certificate number, or name, name the fields you want, and the API returns the values as clean JSON or a pandas DataFrame. New quarters appear as soon as filings post, so a screen or model that refreshes every quarter keeps working without a re-download.

No bulk file, no query builder, no re-keying. The same data drops into a board pack, a peer screen, or an ALM model the way analysts actually work.

Histogram of loan-to-deposit ratios across every FDIC-insured U.S. bank
A single API call can pull any bank's Call Report figure; the loan-to-deposit ratio across every U.S. bank is the kind of full-population context you can drop beside it. BankRegReports analysis.

Is there a free bank data API?

Yes. The BankRegReports API has a free tier, 200 requests per day with a free API key, to explore and prototype, and the Pro tier raises that to 10,000 requests per day for production throughput. Pricing is predictable; you can see the API plans here.

from bankregreports import BankReg
brr = BankReg("brr_...")              # or set BANKREG_API_TOKEN

# U.S. Bank, N.A. - latest quarter as a DataFrame
snap = brr.bank(504713)
snap[["cet1_ratio", "roa", "texas_ratio"]]   # -> 12.88, 1.18, 15.02
curl "https://api.bankregreports.com/api/v1/banks/504713/" \
  -H "Authorization: Bearer YOUR_KEY"

What data does the API cover?

The same official, public sources examiners use, re-rendered, not estimated:

  • FFIEC Call Reports (forms 031 / 041 / 051), the quarterly Report of Condition and Income for every FDIC-insured bank. See the FFIEC CDR.
  • UBPR ratios, the examiner’s working ratios and peer comparisons. Read our UBPR explainer.
  • NCUA 5300, the credit-union call report, net-worth and delinquency framework. (NCUA)
  • FDIC institution directory, Summary of Deposits, and failures. (FDIC BankFind API)
  • Federal Reserve NIC holding-company structure (Y-9C) and identifiers.

Every metric is defined in the glossary, e.g. CET1 ratio, Texas ratio, net interest margin, and every value is tagged to its FFIEC reporting quarter. Full detail on the data coverage page.

Who uses it

  • Community-bank teams building peer benchmarks and board reports without an enterprise budget.
  • Risk and compliance monitoring capital, concentration, and liquidity ratios across the quarter.
  • Analysts and developers screening fundamentals and wiring bank data into models, notebooks, and apps.
  • AI agents, the API is MCP-friendly and the data is plain, declarative, and source-tagged for citation.

You can browse a live example first, here is U.S. Bank, N.A. rendered from the same data the API returns.

Frequently asked questions

Is the bank data API free? There is a free tier of 200 requests per day with a free API key. The Pro tier allows 10,000 requests per day. See API pricing.

Which identifier do I use for a bank? Banks are keyed by the Federal Reserve RSSD ID and credit unions by the NCUA charter number. The API does not look banks up by FDIC certificate number or by name, but the screener rows carry both rssd_id and fdic_cert, so you can map a certificate number to its RSSD ID. Holding companies use their own RSSD ID.

How current is the data? It tracks 25 years of quarterly filings, every Call Report cycle since 2001, and syncs new filings each FFIEC reporting season, including late amendments. Values reflect the latest amended filing; the API does not keep a separate as-filed history.

Can I get the data without writing code? Yes. Browse any institution on the web platform, and on the Pro plan export the figures to CSV or Excel for a board pack or model. The API and Python SDK are there when you want to automate the same pull.

Do I still need the FFIEC CDR? No. The API returns the same underlying data as clean JSON or a DataFrame, without bulk downloads, query builders, or SQL. Background on the source filings: the Call Report guide and the UBPR guide.

Is this investment advice? No. BankRegReports provides regulatory data and analytics, not investment advice.

Start in under a minute

Grab a key, pull your first bank, and decide from there.

Built on official FFIEC, FDIC, NCUA, and Federal Reserve data. Updated each quarter. Data figures shown reflect Q1 2026 filings.