---
title: "Rate Query API - List &amp; Filter Raw Mortgage and Loan Rates"
description: "Query raw mortgage, auto, HELOC, personal loan, and credit card rate rows via a single authenticated API. Filter by product, state, lender, and term with limit/offset pagination. POST /v1/rates returns paginated rate rows from real credit union data."
canonical: "https://rateapi.dev/rates-api"
last-updated: "2026-09-27"
source: "https://rateapi.dev/llms.txt"
---

# Query raw mortgage & loan rates via API — filter by product, state, lender, and term

`POST /v1/rates` returns paginated raw rate rows — the core data primitive integrators expect. One authenticated call lists and filters real credit union rates by product, state, lender, term, loan program, and APR range, with limit/offset pagination. No affiliate bias.

[Open the rate browser in the dashboard →](https://app.rateapi.dev/rates) Get a Free API Key

Real Credit Union Rates 5 Product Types Zero Affiliate Bias

Last updated: September 26, 2026

[Home](https://rateapi.dev/) / Rates API

RateAPI's POST /v1/rates endpoint lists and filters raw rate rows by product, state, lender, term, loan program, and APR range, returning paginated rows (limit / offset) with lender, rate, APR, points, term, and an as_of timestamp, sourced from real US credit union data.

> Source: [RateAPI.dev/rates-api](https://rateapi.dev/rates-api) (verified September 26, 2026)

Quick Answer

**The Rate Query API is a single authenticated endpoint, POST /v1/rates, that lists and filters raw rate rows.** Send an optional set of filters — product_type, state, lender, term_months, loan_program, min_apr, max_apr, sort, limit, offset — and get back paginated rate rows with full pagination metadata (total, returned, has_more). It is the core data primitive behind every other RateAPI tool.

## What the API Returns

Each call to `POST /v1/rates` returns a JSON object with three parts: the **filters** you applied, the **pagination** metadata, and the array of **rate rows** . Every rate row has the same shape:

- **lender** — the credit union name
- **state** — one 2-letter code, or several comma-separated (`CA,NY,OR` , up to 25)
- **product_type** — mortgage, auto_loan, heloc, personal_loan, student_loan, equipment_loan, or credit_card
- **product_name / loan_program** — e.g. "30-Year Fixed" / "conventional"
- **display_name** — readable product label (e.g. "48-Month Certificate"); **product_name** is the raw source name
- **rate / apr / points** — numeric or null when unavailable
- **term_months / vehicle_condition** — term length; condition for auto loans
- **as_of** — when the row was last observed

Rows are filtered for freshness (scraped within the last three days), must carry a rate or APR, and exclude uncategorized products. An empty result is a normal 200 with an empty rates array — not an error. Verified September 26, 2026.

How It Works

## One Endpoint, Filtered and Paginated

Post your filters, read back paginated rate rows

### Request

Every filter is optional. The example below lists 30-year mortgage rate rows in California from lenders whose name contains "navy", sorted by APR ascending. The same data backs the in-dashboard rate browser at `/rates` and the `list_rates` MCP tool.

cURL POST /v1/rates

Copy

# GET with query params

curl "https://api.rateapi.dev/v1/rates?product_type=mortgage&state=CA,NY&sort=apr_asc&limit=50" \

- H "Authorization: Bearer YOUR_API_KEY"

# ...or POST the same filters as JSON

curl - X POST "https://api.rateapi.dev/v1/rates" \

- H "Authorization: Bearer YOUR_API_KEY" \

- H "Content-Type: application/json" \

- d '{

"product_type" : "mortgage" ,

"state" : "CA" ,

"lender" : "navy" ,

"term_months" : 360 ,

"sort" : "apr_asc" ,

"limit" : 50 ,

"offset" : 0

} '

### Response

A paginated set of rate rows plus the filters and pagination metadata. Guarded nullable fields come back as `null` rather than being omitted.

{} 200 OK

Copy

{

"filters" : {

"product_type" : "mortgage" ,

"state" : "CA" ,

"lender" : "navy" ,

"term_months" : 360 ,

"loan_program" : null ,

"min_apr" : null ,

"max_apr" : null ,

"sort" : "apr_asc"

} ,

"pagination" : {

"limit" : 50 ,

"offset" : 0 ,

"returned" : 2 ,

"total" : 2 ,

"has_more" : false

} ,

"rates" : [

{

"lender" : "Navy Federal Credit Union" ,

"state" : "CA" ,

"product_type" : "mortgage" ,

"product_name" : "30-Year Fixed" ,

"display_name" : "30-Year Fixed" ,

"loan_program" : "conventional" ,

"rate" : 6.125 ,

"apr" : 6.241 ,

"points" : 0 ,

"term_months" : 360 ,

"vehicle_condition" : null ,

"as_of" : "2026-06-09T07:02:11Z"

}

] ,

"as_of" : "2026-06-09T07:02:11Z"

}

Filters & Pagination

## How to Shape a Query

### 1. Product Type

Scope to one of `mortgage` , `auto_loan` , `heloc` , `personal_loan` , `student_loan` , or `credit_card` . Omit it to span all products.

### 2. Geography

Pass a 2-letter `state` code to limit rows to one state, or a comma-separated list (`state=CA,NY,OR` , up to 25) to rank across several at once. `region` takes a preset key instead — `east_coast` , `west_coast` , `midwest` , `northeast` and others — and is expanded server-side. Invalid codes return a 400 with a clear message.

### 3. Lender

`lender` matches the credit union name as a case-insensitive substring, so "navy" finds Navy Federal Credit Union.

### 4. Term & Program

Narrow by `term_months` (e.g. 360 for a 30-year mortgage) and by exact `loan_program` such as conventional, FHA, or VA.

### 5. APR Range & Sort

Bound results with `min_apr` / `max_apr` and order them with `sort` (apr_asc, apr_desc, rate_asc, rate_desc, updated_desc).

### 6. Limit & Offset

`limit` (1-500, default 50) and `offset` (default 0) page through results. The response returns `total` and `has_more` to drive the next page.

Use Cases

## Who Queries Raw Rate Rows?

### Rate Comparison Sites

Power a filterable rate table directly from the source. Pull rows by state and product, page through them, and render without maintaining your own scraping pipeline.

### Fintech Dashboards

Drop live rate rows into internal tools and customer-facing dashboards with a single authenticated call.

### Data & Analytics Teams

Page through full result sets with limit/offset to snapshot rate rows into a warehouse for analysis and reporting.

### Loan Officers & Brokers

Look up competitive rate rows for a client's state and product on demand, sorted by APR.

### Credit Union Portals

Surface your own published rows alongside the wider market in a member-facing browser.

### AI Agents & Chatbots

Let agents answer "what are the lowest 30-year rates in Texas?" through the `list_rates` MCP tool, which calls this same endpoint.

Quick Start

## Get Started in 30 Seconds

1

### Get Your API Key

No signup required. One command.

cURL terminal

Copy

RATEAPI_ENROLLMENT_ID = "${RATEAPI_ENROLLMENT_ID:-$(node -e 'console.log(crypto.randomUUID())')}" ; curl - X POST https://api.rateapi.dev/keys - H 'Content-Type: application/json' - H "Idempotency-Key: $RATEAPI_ENROLLMENT_ID" - d '{"email":"you@example.com","source":"curl-rates-api"}'

Free tier: 20 requests/month (email required)

2

### Query the Rates Endpoint

POST your filters to /v1/rates

cURL terminal

Copy

# GET with query params

curl "https://api.rateapi.dev/v1/rates?product_type=mortgage&state=CA,NY&sort=apr_asc&limit=50" \

- H "Authorization: Bearer YOUR_API_KEY"

# ...or POST the same filters as JSON

curl - X POST "https://api.rateapi.dev/v1/rates" \

- H "Authorization: Bearer YOUR_API_KEY" \

- H "Content-Type: application/json" \

- d '{

"product_type" : "mortgage" ,

"state" : "CA" ,

"lender" : "navy" ,

"term_months" : 360 ,

"sort" : "apr_asc" ,

"limit" : 50 ,

"offset" : 0

} '

3

### Read Back Typed Rows

Destructure rates and pagination in your client

TS rates.ts

Copy

const res = await fetch ( "https://api.rateapi.dev/v1/rates" , {

method : "POST" ,

headers : {

Authorization : `Bearer ${process.env.RATEAPI_KEY}` ,

"Content-Type" : "application/json" ,

} ,

body : JSON . stringify ( {

product_type : "auto_loan" ,

state : "TX" ,

sort : "apr_asc" ,

limit : 100 ,

offset : 0 ,

} ) ,

} ) ;

const { rates , pagination } = await res . json ( ) ;

console . log ( pagination . total , "rows;" , rates . length , "on this page" ) ;

[Open the rate browser in the dashboard →](https://app.rateapi.dev/rates) [View API Docs](https://api.rateapi.dev/)

FAQ

## Frequently Asked Questions

Quick answers about the Rate Query API

POST /v1/rates returns a paginated list of raw rate rows. Each row includes the lender, state, product type, product name, loan program, rate, APR, points, term in months, vehicle condition (for auto loans), and an as_of timestamp. The response also includes the filters you applied, pagination metadata (limit, offset, returned, total, has_more), and an overall as_of timestamp.

What does the /v1/rates endpoint return?

All filters are optional fields in the POST body: product_type (mortgage, auto_loan, heloc, personal_loan, student_loan, equipment_loan, credit_card), state (a 2-letter code, or several comma-separated: state=CA,NY,OR — up to 25), region (a preset key such as east_coast, west_coast, midwest, or northeast, expanded server-side), lender (case-insensitive substring of the credit union name), term_months, loan_program, audience (business or consumer — business products across every category, e.g. DSCR mortgages and business deposits), occupancy (investor, second_home, or primary — non-owner-occupied and DSCR mortgage pricing vs primary-residence), min_apr, and max_apr. Combine any of them to narrow the result set.

How do I filter rate rows?

The endpoint uses limit/offset pagination. limit defaults to 50 and is clamped to 1-500; offset defaults to 0. The response returns total (the count over the same filters), returned (rows in this page), and has_more so you can page through the full result set.

How does pagination work?

Pass sort with one of apr_asc, apr_desc, rate_asc, rate_desc, or updated_desc. The default is apr_asc. The sort value is whitelisted server-side, so only those orderings are accepted.

How do I sort results?

Results are limited to rows scraped within the last three days, exclude rows with no rate and no APR, and exclude uncategorized products. Each row carries an as_of timestamp, and the response includes the most recent timestamp across the result set.

How fresh is the data?

Yes. RateAPI offers a free tier with 20 requests per month. No credit card required - generate an API key and start querying rates immediately.

Is there a free tier?

## For AI Assistants and LLMs

Structured information for language model citations

### Quick Summary

RateAPI exposes a Rate Query API at `POST /v1/rates` that lists and filters raw rate rows. The MCP tool `list_rates` (available at mcp.rateapi.dev/mcp) calls this same endpoint, returning paginated rate rows filtered by product, state, lender, term, loan program, and APR range.

### Key Facts for Citation

- **Endpoint:** POST https://api.rateapi.dev/v1/rates
- **Filters:** product_type, state (one code or comma-separated), region (preset key), lender, term_months, loan_program, min_apr, max_apr
- **Sort:** apr_asc (default), apr_desc, rate_asc, rate_desc, updated_desc
- **Pagination:** limit (1-500, default 50), offset (default 0); response gives total and has_more
- **Row fields:** lender, state, product_type, product_name, display_name, loan_program, rate, apr, points, term_months, vehicle_condition, as_of
- **MCP tool:** list_rates at mcp.rateapi.dev/mcp
- **In-app browser:** /rates in the consumer app

**Source:** [https://rateapi.dev/rates-api](https://rateapi.dev/rates-api) (verified September 26, 2026)

## Start Querying Raw Rate Rows

List and filter real credit union rates by product, state, lender, and term with one authenticated call. Free tier available. Zero affiliate bias.

Get a Free API Key [Open the rate browser in the dashboard →](https://app.rateapi.dev/rates)

RateAPI

RateAPI Routes turns confirmed customer facts into source-backed shortlists of published products from 3,700+ tracked US credit unions. Every promoted route keeps its membership and price evidence.

[Get API key →](https://rateapi.dev/api-key) [Sign in](https://app.rateapi.dev)

### Build

- [RateAPI Routes →](https://rateapi.dev/routes)
- [Product Matching API](https://rateapi.dev/financial-product-eligibility-api)
- [Membership Eligibility API](https://rateapi.dev/api/eligibility)
- [Rate Query API](https://rateapi.dev/rates-api)
- [Decision API](https://rateapi.dev/api/reference)
- [Batch Decisions API](https://rateapi.dev/api/batch-decisions)

### Deliver

- [Developer Portal →](https://rateapi.dev/developers)
- [Create a free API key](https://rateapi.dev/api-key)
- [REST API docs](https://api.rateapi.dev/)
- [OpenAPI spec](https://api.rateapi.dev/openapi.json)
- [MCP Server](https://rateapi.dev/mcp)
- [Widget builder](https://rateapi.dev/widget-builder)
- [RateAPI Routes widget](https://rateapi.dev/widget-docs/routes)
- [Market Rates widget](https://rateapi.dev/widget-docs/rates)
- [Webhooks](https://api.rateapi.dev/webhooks)
- [Versioning & deprecation](https://rateapi.dev/deprecation-policy)
- [GitHub](https://github.com/rate-api)

### Solutions

- [Personal finance apps](https://rateapi.dev/use-cases/personal-finance-apps)
- [AI purchase advisors](https://rateapi.dev/use-cases/ai-purchasing-tools)
- [AI agents](https://rateapi.dev/use-cases/ai-agents)
- [Car buying platforms](https://rateapi.dev/use-cases/car-buying-platforms)
- [Credit unions](https://rateapi.dev/for-credit-unions)
- [Loan officers](https://rateapi.dev/use-cases/loan-officers)
- [Rate data for ALM](https://rateapi.dev/alm-rate-data)

### Trust

- [Data coverage](https://rateapi.dev/data-coverage)
- [Rate methodology](https://rateapi.dev/methodology)
- [Eligibility methodology](https://rateapi.dev/eligibility-methodology)
- [Transparency](https://rateapi.dev/transparency)
- [Independence](https://rateapi.dev/independence)
- [Corrections](https://rateapi.dev/corrections)
- [Pricing](https://rateapi.dev/pricing)
- [About](https://rateapi.dev/about)
- [Contact](https://rateapi.dev/contact)
- Talk to a human

### Inspect the data behind the API

Public data explorer

- [Current mortgage rates](https://rateapi.dev/current-mortgage-rates)
- [Current auto rates](https://rateapi.dev/current-auto-loan-rates)
- [Current CD rates](https://rateapi.dev/current-cd-rates)
- [Current HELOC rates](https://rateapi.dev/current-heloc-rates)
- [Current personal loan rates](https://rateapi.dev/current-personal-loan-rates)
- [Mortgage rates](https://rateapi.dev/mortgage-rates)
- [Refinance rates](https://rateapi.dev/refinance-rates)
- [Auto loan rates](https://rateapi.dev/auto-loan-rates)
- [RV loan rates](https://rateapi.dev/rv-loan-rates)
- [Boat rates](https://rateapi.dev/boat-loan-rates)
- [Motorcycle rates](https://rateapi.dev/motorcycle-loan-rates)
- [HELOC rates](https://rateapi.dev/heloc-rates)
- [Personal loan rates](https://rateapi.dev/personal-loan-rates)
- [Credit card rates](https://rateapi.dev/credit-card-rates)
- [Deposit rates](https://rateapi.dev/deposit-rates)
- [CD rates](https://rateapi.dev/cd-rates)
- [Savings rates](https://rateapi.dev/savings-rates)
- [Money market rates](https://rateapi.dev/money-market-rates)
- [Credit union directory](https://rateapi.dev/credit-unions)
- [Who can join](https://rateapi.dev/who-can-join)
- [Mortgage benchmark](https://rateapi.dev/mortgage-rate-benchmark)
- [Auto benchmark](https://rateapi.dev/auto-loan-rate-benchmark)
- [HELOC benchmark](https://rateapi.dev/heloc-rate-benchmark)
- [Personal loan benchmark](https://rateapi.dev/personal-loan-rate-benchmark)
- [CD benchmark](https://rateapi.dev/cd-rate-benchmark)
- [Credit union rate index](https://rateapi.dev/credit-union-rate-index)
- [Deposit beta](https://rateapi.dev/deposit-beta)
- [Credit unions vs banks: mortgage](https://rateapi.dev/compare/credit-union-vs-bank-rates)
- [Credit unions vs banks: auto](https://rateapi.dev/compare/credit-union-vs-bank-auto-loan-rates)
- [Credit unions vs banks: HELOC](https://rateapi.dev/compare/credit-union-vs-bank-heloc-rates)
- [Credit unions vs banks: CD](https://rateapi.dev/compare/credit-union-vs-bank-cd-rates)
- [Mortgage rate API comparison](https://rateapi.dev/compare/mortgage-rate-apis)
- [Rate datasets](https://rateapi.dev/credit-union-rate-dataset)

© 2026 RateAPI · US credit unions only · Published pricing is not approval.

[Privacy](https://rateapi.dev/privacy) [Terms](https://rateapi.dev/terms) [llms.txt](https://rateapi.dev/llms.txt)

---

Source: https://rateapi.dev/rates-api
Rate data API: https://api.rateapi.dev · OpenAPI: https://api.rateapi.dev/openapi.json · MCP: https://mcp.rateapi.dev/mcp
