Fee Insight
Find Your InstitutionBank Fee IndexResearchGuidesFor InstitutionsPricing
Sign inRequest your report
Fee Insight

Home of the Bank Fee Index — U.S. bank and credit union fees by district, state, size, and type. Published-source benchmarks for consumers and banking teams.

New benchmarks, notable fee changes, one chart. About once a month.

Product

  • Bank Fee Index
  • Find Your Institution
  • Research Hub
  • Consumer Guides
  • For Institutions
  • Pricing
  • API

Research

  • National benchmarks
  • Fee-to-Revenue Analysis
  • State Reports
  • District Reports

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service
Fee Insight © 2026hello@bankfeeindex.com

Developer

Bank Fee Index API

Programmatic access to fee benchmarking data for U.S. banks and credit unions. 57 fee categories, national and peer medians, percentile ranges, and institution-level detail — all via a simple REST API.

AuthenticationFeesIndexInstitutionsPricingOpenAPI Spec

Base URL

https://feeinsight.com/api/v1

Authentication

JSON endpoints can be called without credentials and are rate-limited on the free tier. If Fee Insight manually issues an API key for your workspace, pass it in the Authorization header as a Bearer token, or as an api_key query parameter.

Header authentication

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://feeinsight.com/api/v1/fees

Query parameter authentication

curl "https://feeinsight.com/api/v1/fees?api_key=YOUR_API_KEY"
Self-serve API key creation is not exposed yet. Fee Insight Pro users should use signed-in CSV exports from Account; managed API keys are set up by hand. Contact us about API access.

Rate Limits

Rate limits are enforced per API key when present and by anonymous request source otherwise. Current window information is returned in response headers.

X-RateLimit-Limitheader-- Maximum requests in the current window
X-RateLimit-Remainingheader-- Requests remaining
X-RateLimit-Resetheader-- UTC epoch timestamp when the window resets
TierMonthly limitBurst rate
Free100 requests10/min
Fee Insight Pro key10,000 requestsManual setup
Fee Insight AdvisoryCustomCustom

Fee Categories

GET/fees

List all fee categories

Returns all 57 fee categories with national median, P25/P75 percentiles, min/max, and institution counts. Free tier returns 6 spotlight categories.

Parameters

formatstring"csv" for CSV download from a signed-in Fee Insight Pro session

Try it

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://feeinsight.com/api/v1/fees

Response fields

totalinteger-- Number of categories returned
data[]array-- Array of fee summary objects
data[].categorystring-- Slug identifier (e.g., overdraft)
data[].mediannumber-- National median in USD
data[].p25number-- 25th percentile
data[].p75number

Fee Index

GET/index

National and peer fee index

Returns the fee index for all categories. Apply filters for peer group benchmarking by state, charter type, or Federal Reserve district. Includes maturity indicators and bank/credit union counts.

Parameters

statestringTwo-letter state code (e.g., CA, TX)
charterstring"bank" or "credit_union"
districtstringFed district number(s), comma-separated (e.g., 7 or 2,7,12)
formatstring"csv" for CSV download from a signed-in Fee Insight Pro session

Try it

# National index
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://feeinsight.com/api/v1/index

# California credit unions
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://feeinsight.com/api/v1/index?state=CA&charter=credit_union"

# Fed District 7, JSON response
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://feeinsight.com/api/v1/index?district=7"

Response fields

Institutions

GET/institutions

List institutions

Paginated list of financial institutions with fee data. Filter by state and charter type. Returns summary data including fee count, asset size, and Fed district.

Parameters

statestringTwo-letter state code
charterstring"bank" or "credit_union"
pageintegerPage number (default: 1)
limitintegerResults per page (default: 50, max: 200)

Try it

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://feeinsight.com/api/v1/institutions?state=NY&limit=10"

Response fields

totalinteger-- Total matching institutions
page

API Pricing

Free

$0

  • ✓100 requests/month
  • ✓6 spotlight categories
  • ✓National medians only
  • ✓JSON responses

Get started -- no card required

Fee Insight Pro

$499.99/mo per seat

  • ✓Signed-in Fee Insight Pro exports
  • ✓All 57 fee categories
  • ✓Peer group filtering
  • ✓Category detail breakdowns
  • ✓Institution-level data
  • ✓Managed API key setup by request
Contact us about API access

Fee Insight Advisory

Custom

  • ✓Unlimited requests
  • ✓Full dataset access
  • ✓Bulk data export
  • ✓Historical data
  • ✓Dedicated support
  • ✓Custom SLA
Talk to us

Data Notes

  • Currency. All monetary amounts are in USD.
  • Methodology. Medians, percentiles, and ranges are computed from non-rejected fee observations only.
  • Sources. Institution data is sourced from FDIC (banks) and NCUA (credit unions) registries. Fee data is read from published fee schedules; fees the software is not sure about are held for a person to check.
  • Status. Each category carries a status: Verified (10+ checked fees), Under review, or Too few to benchmark.
  • Tier system. Categories are organized into 4 tiers: spotlight, core, extended, and comprehensive. The Free API tier returns only spotlight categories.
  • Coverage. The dataset covers 1,183 institutions with verified fees and is refreshed on a rolling calendar. Data refreshed Aug 12, 2026.

Machine-readable specification

Import our OpenAPI 3.0 spec into Postman, Swagger UI, or your code generator of choice.

Download OpenAPI Spec (JSON)
-- 75th percentile
data[].tierstring-- spotlight | core | extended | comprehensive

Example response

{
  "total": 57,
  "data": [
    {
      "category": "overdraft",
      "display_name": "Overdraft Fee",
      "family": "Overdraft & NSF",
      "tier": "spotlight",
      "median": 35.00,
      "p25": 30.00,
      "p75": 36.00,
      "min": 5.00,
      "max": 40.00,
      "institution_count": 842
    },
    ...
  ]
}
GET/fees?category={slug}Pro

Get fee category detail

Detailed breakdown for a single fee category with segmentation by charter type, asset tier, Federal Reserve district, and state.

Parameters

categoryrequiredstringFee category slug (e.g., overdraft, nsf, monthly_maintenance)

Try it

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://feeinsight.com/api/v1/fees?category=overdraft"

Response fields

by_charter_typeobject-- Bank vs credit union medians
by_asset_tierobject-- Breakdowns by asset size tier
by_fed_districtobject-- Medians for each Fed district (1-12)
by_stateobject-- Medians by state code

Example response

{
  "category": "overdraft",
  "display_name": "Overdraft Fee",
  "family": "Overdraft & NSF",
  "tier": "spotlight",
  "summary": {
    "institution_count": 842,
    "observation_count": 1156
  },
  "by_charter_type": {
    "bank": { "median": 36.00, "p25": 33.00, "p75": 36.00, "count": 510 },
    "credit_union": { "median": 30.00, "p25": 25.00, "p75": 35.00, "count": 332 }
  },
  "by_asset_tier": { ... },
  "by_fed_district": { ... },
  "by_state": { ... }
}
scopestring-- "national" or "filtered"
filtersobject-- Applied filter values (null if unused)
data[].maturitystring-- strong | provisional | insufficient
data[].bank_countinteger-- Number of banks in sample
data[].cu_countinteger-- Number of credit unions in sample

Example response

{
  "scope": "filtered",
  "filters": {
    "state": "CA",
    "charter": "credit_union",
    "district": null
  },
  "total": 42,
  "data": [
    {
      "category": "monthly_maintenance",
      "display_name": "Monthly Maintenance Fee",
      "family": "Account Maintenance",
      "tier": "spotlight",
      "median": 10.00,
      "p25": 5.00,
      "p75": 12.00,
      "min": 0.00,
      "max": 25.00,
      "institution_count": 189,
      "bank_count": 0,
      "cu_count": 189,
      "maturity": "strong"
    },
    ...
  ]
}
integer
-- Current page
pagesinteger-- Total pages
data[].asset_tierstring-- e.g., 1B-10B, 100M-1B

Example response

{
  "total": 312,
  "page": 1,
  "page_size": 10,
  "pages": 32,
  "data": [
    {
      "id": 4521,
      "name": "First National Bank of New York",
      "state": "NY",
      "city": "New York",
      "charter_type": "bank",
      "asset_size": 2400000000,
      "asset_tier": "1B-10B",
      "fed_district": 2,
      "fee_count": 22
    },
    ...
  ]
}
GET/institutions?id={id}Pro

Get institution detail

Returns a single institution profile with all extracted fees, including amounts, frequency, conditions, and review status.

Parameters

idrequiredintegerInstitution ID

Try it

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://feeinsight.com/api/v1/institutions?id=4521"

Response fields

fees[]array-- All non-rejected fees for this institution
fees[].amountnumber-- Fee amount in USD
fees[].frequencystring-- e.g., "per item", "monthly"
fees[].conditionsstring-- Waiver conditions, if any

Example response

{
  "id": 4521,
  "name": "First National Bank of New York",
  "state": "NY",
  "city": "New York",
  "charter_type": "bank",
  "asset_size": 2400000000,
  "asset_tier": "1B-10B",
  "fed_district": 2,
  "fee_count": 22,
  "fees": [
    {
      "fee_name": "Overdraft Fee",
      "amount": 35.00,
      "frequency": "per item",
      "conditions": "Max 4 per day. Waived for balances over $5,000.",
      "review_status": "approved"
    },
    {
      "fee_name": "Monthly Maintenance Fee",
      "amount": 12.00,
      "frequency": "monthly",
      "conditions": "Waived with $1,500 minimum balance.",
      "review_status": "approved"
    },
    ...
  ]
}