Banking Atlas API

Read-only JSON API for querying bank financial KPIs across 40+ countries. All responses use a consistent envelope:

{
  "data": [ ... ],
  "meta": { "count": 36, "limit": 100, "offset": 0 }
}
Rate limit: 60 requests per minute per IP address. All monetary values are in USD millions (suffix _usd_mm). Ratios (ROE, ROA, etc.) are decimals (e.g., 0.15 = 15%).

Response Format

All endpoints return JSON with a consistent envelope:

{
  "data": [ ... ],
  "meta": {
    "count": 36,
    "limit": 50,
    "offset": 0,
    ... endpoint-specific fields ...
  }
}

Errors return {"error": "message"} with appropriate HTTP status codes (400, 404, 429, 500).

Monetary values use the _usd_mm suffix and are in USD millions. Ratios are decimals (e.g., 0.15 = 15%).

Endpoints

GET /api/summary

Platform overview with coverage stats, country list, data sources, and sample data for the 25 largest banks.

GET https://bankingatlas.com/api/summary

GET /api/banks

List and search banks with filtering and pagination.

ParameterTypeDescription
countrystringFilter by ISO3 country code (e.g., USA, GBR)
searchstringSearch bank name (case-insensitive substring match)
sortstringSort order: total_assets_usd_desc (default), total_assets_usd_asc, bank_name_asc, bank_name_desc, country_asc
limitintResults per page (1-500, default 100)
offsetintPagination offset (default 0)
GET https://bankingatlas.com/api/banks?country=USA&search=chase&limit=10

GET /api/banks/{bank_code}/kpis

Get KPI time series for a specific bank. Use /api/banks to find bank codes.

ParameterTypeDescription
yearstringSingle year (2024) or range (2020-2024)
kpisstringComma-separated KPI names to include (see list below). Returns all if omitted.
limitintMax results (1-100, default 50)
GET https://bankingatlas.com/api/banks/US_JPMORGAN_CHASE/kpis?year=2020-2024&kpis=roe,roa,cost_income

GET /api/banks/{bank_code}/financials

Get full balance sheet and income statement line items for a specific bank. Returns raw financial data in local currency and/or USD.

ParameterTypeDescription
yearstringSingle year (2024) or range (2020-2024)
statementstringbs (balance sheet only), pl (income statement only), or both (default)
currencystringlocal, usd, or both (default). USD values are in millions.
limitintMax results per statement (1-50, default 30)
offsetintPagination offset (default 0)

Balance sheet fields: loans_gross, loan_loss_allowance, net_loans (derived), securities, cash_and_equivalents, other_assets, total_assets, deposits, other_liabilities, total_equity

Income statement fields: interest_income, interest_expense, net_interest_income (derived), commission_income, commission_expense, net_commission_income (derived), other_income, fx_income, trading_income, impairment_provisions, operating_expenses, depreciation_amortization, income_tax_expense, profit_before_tax, net_profit

GET https://bankingatlas.com/api/banks/US_JPMORGAN_CHASE/financials?year=2020-2024&statement=bs&currency=usd

GET /api/countries

List all countries with aggregate banking stats (asset-weighted averages for the latest year).

ParameterTypeDescription
limitintMax results (1-200, default 50)
offsetintPagination offset (default 0)
sortstringtotal_assets_desc (default), total_assets_asc, name_asc, roe_desc
GET https://bankingatlas.com/api/countries?sort=roe_desc&limit=10

GET /api/countries/{iso3}/kpis

Market-level KPI time series for a country (asset-weighted averages across all banks).

ParameterTypeDescription
yearstringSingle year (2024) or range (2020-2024)
limitintMax results (1-50, default 30)
GET https://bankingatlas.com/api/countries/USA/kpis?year=2020-2024

GET /api/countries/{iso3}/financials

Aggregated sector-level balance sheet and income statement for a country. For countries with has_full_bank_coverage=true, data is aggregated from individual bank reports. For other countries, pre-computed sector aggregate data is used when available, with fallback to bank-level aggregation.

ParameterTypeDescription
yearstringSingle year (2024) or range (2020-2024)
statementstringbs, pl, or both (default)
currencystringlocal, usd, or both (default)
limitintMax results per statement (1-50, default 30)
offsetintPagination offset (default 0)

Returns the same balance sheet and income statement fields as the bank-level endpoint, plus source_type, accounting_standard, data_source (bank_aggregation or sector_aggregate), bank_count (when from bank aggregation), and has_full_bank_coverage. Note: when using sector aggregate data, profit_before_tax is derived as net_profit + income_tax_expense if not directly available from the source.

GET https://bankingatlas.com/api/countries/USA/financials?year=2020-2024&statement=pl&currency=usd

GET /api/countries/{iso3}/distribution

Distribution statistics for bank-level KPIs within a country: median, percentiles, standard deviation, min/max, and asset-weighted average. Only available for countries with has_full_bank_coverage = true.

ParameterTypeDescription
yearstringSingle year (2024) or range (2020-2024). Defaults to latest year.
kpisstringComma-separated KPI names. Default: roe,roa,cost_income,leverage_ratio,nii_on_assets_pct,asset_growth

Response fields per KPI/year: simple_average, weighted_average (asset-weighted), median, p10, p25, p75, p90, std_dev, min, max, bank_count

GET https://bankingatlas.com/api/countries/USA/distribution?year=2024&kpis=roe,roa,cost_income

Example response:

{"data": [{"kpi": "roe", "fiscal_year": 2024, "bank_count": 4543,
  "simple_average": 0.098, "weighted_average": 0.117, "median": 0.097,
  "p10": 0.014, "p25": 0.056, "p75": 0.141, "p90": 0.196,
  "std_dev": 0.608, "min": -36.9, "max": 10.15}, ...],
 "meta": {"count": 3, "country_iso3": "USA", "country_name": "United States",
  "kpis": ["roe", "roa", "cost_income"]}}

GET /api/countries/{iso3}/concentration

Market concentration metrics: HHI (Herfindahl-Hirschman Index) by assets, deposits, and loans; plus concentration ratios CR3, CR5, CR10 (share of top N banks by assets). Only available for countries with has_full_bank_coverage = true.

ParameterTypeDescription
yearstringSingle year (2024) or range (2020-2024). Defaults to latest year.

Response fields per year: hhi.by_assets, hhi.by_deposits, hhi.by_loans, concentration_ratios.cr3, cr5, cr10 (as decimals, e.g. 0.45 = 45%), bank_count (banks with reported positive assets)

GET https://bankingatlas.com/api/countries/USA/concentration?year=2024

Example response:

{"data": [{"fiscal_year": 2024, "bank_count": 4559,
  "hhi": {"by_assets": 460.0, "by_deposits": 430.9, "by_loans": 310.6},
  "concentration_ratios": {"cr3": 0.3183, "cr5": 0.4151, "cr10": 0.5178}}],
 "meta": {"count": 1, "country_iso3": "USA", "country_name": "United States"}}

GET /api/compare

Compare multiple banks or countries side-by-side.

ParameterTypeDescription
banksstringComma-separated bank codes (max 20). Mutually exclusive with countries.
countriesstringComma-separated ISO3 codes (max 30). Mutually exclusive with banks.
yearstringYear or range. Defaults to latest year if omitted.
kpisstringComma-separated KPI names (for bank comparison only).
GET https://bankingatlas.com/api/compare?countries=USA,GBR,DEU,FRA&year=2024
GET https://bankingatlas.com/api/compare?banks=US_JPMORGAN_CHASE,US_BANK_OF_AMERICA&year=2024&kpis=roe,roa

GET /api/kpis

Machine-readable definitions of all KPIs: name, formula, unit, category, and whether it is a DuPont decomposition component.

ParameterTypeDescription
categorystringFilter by category: profitability, efficiency, leverage, income_structure, cost_structure, growth, size.
dupontbooleanIf true, only return DuPont decomposition components.
GET https://bankingatlas.com/api/kpis
GET https://bankingatlas.com/api/kpis?category=profitability
GET https://bankingatlas.com/api/kpis?dupont=true

Example response:

{"kpis": [{"id": "roe", "name": "Return on Equity",
  "formula": "Net Profit / Average Equity (annualised)",
  "unit": "ratio", "category": "profitability", "dupont_component": true}, ...],
 "meta": {"count": 26, "categories": ["cost_structure", "efficiency", ...]}}

Panel (Bulk) Endpoints

Panel endpoints return flat datasets suitable for research and bulk analysis. Query multiple banks and countries in a single request with full filtering.

GET /api/panel

Flat panel dataset of bank-level KPIs across countries and years, designed for bulk data export and research. Supports JSON and CSV output.

ParameterTypeDescription
countriesstringComma-separated ISO3 country codes to filter.
yearstringSingle year (2024) or range (2020-2024).
kpisstringComma-separated KPI columns. Default: roe,roa,cost_income,leverage_ratio,total_assets_usd,net_profit_usd,asset_growth.
sortstringComma-separated columns. Prefix with - for descending. Default: country_iso3,fiscal_year,bank_code.
limitintegerMax rows (1–10000, default 1000).
offsetintegerPagination offset (default 0).
formatstringjson (default) or csv.
GET https://bankingatlas.com/api/panel?countries=USA,GBR&year=2024&kpis=roe,roa,total_assets_usd&limit=100
GET https://bankingatlas.com/api/panel?countries=UKR&year=2020-2024&format=csv

GET /api/panel/banks

Flat panel dataset of bank-year KPI observations. Returns one row per bank per year with requested KPI columns.

ParameterTypeDescription
countriesstringComma-separated ISO3 codes to filter (e.g., USA,GBR,DEU)
kpisstringComma-separated KPI names to include (returns all if omitted)
yearsstringSingle year (2024) or range (2020-2024)
min_assetsnumberMinimum total assets in USD millions
limitintResults per page (1-1000, default 100)
offsetintPagination offset (default 0)
formatstringjson (default) or csv (downloads as file)
GET https://bankingatlas.com/api/panel/banks?countries=USA,GBR&kpis=roe,roa,cost_income&years=2020-2024&min_assets=100000
GET https://bankingatlas.com/api/panel/banks?countries=DEU&years=2024&format=csv

GET /api/panel/countries

Country-year aggregated panel data. Returns one row per country per year with asset-weighted KPI averages.

ParameterTypeDescription
countriesstringComma-separated ISO3 codes to filter
kpisstringComma-separated KPI names to include (returns all if omitted)
yearsstringSingle year or range (e.g., 2020-2024)
min_assetsnumberMinimum total assets in USD millions (country aggregate)
limitintResults per page (1-1000, default 100)
offsetintPagination offset (default 0)
formatstringjson (default) or csv
GET https://bankingatlas.com/api/panel/countries?countries=USA,GBR,DEU,FRA&years=2020-2024
GET https://bankingatlas.com/api/panel/countries?kpis=roe,roa&years=2024&format=csv

KPI Definitions

GET /api/definitions

Returns a catalog of all available KPI definitions including exact formulas, component fields, units, and methodology notes. Essential for rigorous benchmarking and understanding how each metric is calculated.

ParameterTypeDescription
kpistringOptional comma-separated KPI names to filter (returns all if omitted)

Each KPI definition includes: name, label, formula, numerator, denominator, unit, averaging_convention, and notes.

GET https://bankingatlas.com/api/definitions
GET https://bankingatlas.com/api/definitions?kpi=roe,roa,cost_income

Available KPI Names

KPIDescription
roeReturn on Equity (Net Profit / Avg Equity)
roaReturn on Assets (Net Profit / Avg Assets)
roe_btReturn on Equity before tax
roa_btReturn on Assets before tax
cost_incomeCost-to-Income Ratio (Operating Costs / Operating Income)
leverage_ratioLeverage (Total Assets / Total Equity)
profit_marginNet Profit / Operating Income
asset_utilizationOperating Income / Avg Assets
leverage_dupontAvg Assets / Avg Equity (DuPont decomposition)
total_assets_usdTotal assets in USD millions (returned as total_assets_usd_mm)
total_equity_usdTotal equity in USD millions (returned as total_equity_usd_mm)
net_profit_usdNet profit in USD millions (returned as net_profit_usd_mm)
profit_before_tax_usdProfit before tax in USD millions
nii_on_assets_pctNet Interest Income / Avg Assets (%)
nci_on_assets_pctNet Commission Income / Avg Assets (%)
admin_opex_on_assets_pctAdmin + D&A expenses / Avg Assets (%)
provisions_on_assets_pctImpairment provisions / Avg Assets (%)
tax_on_assets_pctIncome tax / Avg Assets (%)
asset_growthYoY Total Assets growth rate
net_income_growthYoY Net Income growth rate

Notes