Data & Analytics

Credit-union deposit APYs (savings, cd, money_market, share_certificate) — list or benchmark

Deposit-side rate exposure: credit-union deposit APYs across savings, CD, share-certificate, money-market, IRA-CD/IRA, and share-savings products. mode='list' (default) returns deposit catalog rows with pagination; mode='benchmark' returns a per-CU roster ranked DESC by explicitly published APY plus the market min/median/max. Generic savings benchmarks compare tiers applicable at the disclosed $10,000 representative balance; restricted-audience and specialty/seasonal offers remain visible in list mode but cannot rank. APY is read only from an explicitly published yield, never inferred from the nominal interest/dividend rate. List rows expose apy (nullable), apy_published, separate interest_rate, ranking_eligible, stable id and credit_union_id, constraints, source evidence, and observed as_of. Missing APY remains null and cannot rank. CDs/share-certificates include term_months. Catalog and benchmark data are not a person's membership or product-suitability decision; use /v1/reachable-offers with confirmed facts for personalized offers. Current + recent data; history is retention-bounded. The MCP get_deposit_benchmarks tool and the consumer app call this route.

Authentication required: Pass your API key in the X-API-Key header.

post/v1/deposit-rates

Request

  • Base URL: https://api.rateapi.dev
  • URL: https://api.rateapi.dev/v1/deposit-rates
  • Auth: API key in header X-API-Key

Request body

product_category'savings' | 'cd' | 'share_certificate' | 'money_market' | 'ira_cd' | 'ira' | 'share_savings'

Deposit product (maps to savings_type). Use the exact enum spelling; money market accounts are money_market, not mma or money-market. Omit for all deposit types.

statestring

2-letter US state code; omit for nationwide.

lenderstring

Case-insensitive substring match on credit-union name.

term_monthsnumber

For CD/share_certificate/ira_cd: filter to a specific term (savings_term_months).

min_apynumber

Minimum explicitly published APY filter; nominal-only rows do not match.

max_apynumber

Maximum explicitly published APY filter; nominal-only rows do not match.

mode'list' | 'benchmark'

list (default) = raw rows; benchmark = ranked per-CU roster.

sort'apy_asc' | 'apy_desc' | 'term_asc' | 'updated_desc'

List-mode sort (default apy_desc).

limitinteger

List: default 50, max 500. Benchmark: default 10, clamp 1..50.

offsetinteger

List-mode pagination offset (default 0).

Example request

{
  "state": "CA"
}

Response

Deposit rows (list mode) or ranked deposit benchmark (benchmark mode).

statestring nullable

Two-letter US state code.

product_categorystring nullable

Broad category the product classifies into.

benchmark_balancenumber nullable

Representative balance used for generic savings tier comparisons; 10000 for product_category=savings, otherwise null.

term_monthsnumber nullable

Loan term in months.

countinteger

Rows returned in the table.

total_credit_unionsinteger

Distinct credit unions represented in the table.

as_ofstring nullable

When the underlying rates were published.

notestring

Plain-language explanation of what this result means.

Changes

No recorded changes to this operation across all 1 revision of this API.