Open Dataset

US Credit Union Mortgage Rates

3,186 mortgage rates from 599+ credit unions across 50 states. Free to use under CC BY 4.0.

CC BY 4.0 — Free for any use with attribution
📊
3,186
Rate Records
🏦
599+
Credit Unions
🌎
50
US States
🏠
6.24%
Avg 30yr Fixed
Data period: 2026-05-01 to 2026-05-31
1

National Rate Overview

Average mortgage APR across all credit unions in the dataset, broken down by product type (30-year, 15-year, 20-year, and 10-year fixed). State averages for 30-year fixed range from 4.5% (NM) to 7.17% (MT).

Average APR by Product Type
2

Loan Program Comparison

Compare average mortgage APR across loan programs — conventional, jumbo, FHA, VA, and USDA. Program availability varies by credit union.

Average APR by Loan Program
3

State Comparison

Compare average mortgage APR across US states. Use the dropdowns to filter by product type and loan program. States with fewer than 2 data points are excluded.

Average APR by State
4

Data Coverage

Breakdown by product type showing the average, minimum, and maximum APR along with the number of rate observations.

Product TypeAvg APRMinMaxCount
30-Year Fixed6.24%4.00%10.25%1,652
15-Year Fixed5.96%4.00%12.75%927
20-Year Fixed6.39%5.11%11.07%386
10-Year Fixed6.09%4.00%12.50%221

By Loan Program

Loan ProgramAvg APRMinMaxCount
Conventional6.02%4.00%12.75%2,513
Jumbo7.09%5.44%7.66%271
FHA6.61%5.79%8.43%176
VA6.24%5.59%7.52%191
USDA6.75%6.16%7.78%35
5

Download the Dataset

Download the full dataset under the CC BY 4.0 license. Use it for research, apps, journalism, or anything else — just provide attribution.

# Quick start with Python
import pandas as pd
import requests
from io import StringIO

url = "https://rateapi.dev/data/mortgage-rates/mortgage-rates.csv"
df = pd.read_csv(StringIO(requests.get(url).text))

# Average APR by product type
print(df.groupby("product_type")["apr"].mean())

# 30-year fixed by state
fixed_30 = df[df["product_type"] == "30-year-fixed"]
print(fixed_30.groupby("credit_union_state")["apr"].mean().sort_values())
6

Schema

Each record in the JSON file contains the following fields:

credit_union_nameName of the credit union (string)
credit_union_stateTwo-letter US state code, e.g. "CA"
credit_union_cityCity of the credit union (string or null)
product_nameOriginal product name from the source website
product_typeNormalized type: "30-year-fixed", "15-year-fixed", "20-year-fixed", or "10-year-fixed"
loan_programLoan program: "conventional", "jumbo", "fha", "va", "usda", or null
rateBase interest rate before fees (number, e.g. 6.25)
aprAnnual Percentage Rate including fees (number, e.g. 6.375)
pointsDiscount points (number, e.g. 0 or 0.5, or null)
source_urlURL of the credit union rate page (string or null)
scraped_atISO 8601 timestamp of when rate was collected

Need Real-Time Data?

This open dataset is a monthly snapshot. For live rates updated daily from 4,300+ credit unions with personalized recommendations, use the RateAPI.