Know What Data Exists, Before You Scan

RateAPI exposes a coverage and freshness endpoint that returns a per-segment matrix: which states, lenders, and product types are covered, row counts per segment, and last-updated freshness. Browse it in the dashboard, or call the API / MCP directly. Powered by real, ranked credit union rates - not affiliate revenue.

Real Credit Union RatesPer-Segment FreshnessZero Affiliate Bias
Last updated: July 18, 2026

RateAPI's coverage endpoint returns a per-segment matrix of which states, lenders, and product types are covered, row counts per segment, APR ranges, and last-updated freshness. It extends the /meta global-count handler into a per-segment coverage matrix so integrators know what data exists before they scan.

Source: RateAPI.dev/data-coverage (verified July 18, 2026)
Quick Answer

Data coverage tells you what exists before you query: which states, lenders, and product types are present, how many rate rows each segment has, and when each was last updated. Call POST /v1/coverage to get a per-segment matrix grouped by state, product, or both. Each segment carries row counts, distinct lender counts, an APR range, a last-updated timestamp, and an is_fresh flag. Pick a covered, fresh segment, then scan it.

What Coverage and Freshness Mean

Coverage is introspection: it describes what data exists in the RateAPI dataset so you can scope a scan before you run it. Freshness is how recently each segment was updated. The matrix is built from a few pieces:

  • States covered - the distinct US states that have rates in the window.
  • Lenders covered - distinct credit unions per segment and overall.
  • Product types covered - mortgage, auto, HELOC, personal, credit card.
  • Rows per segment - the count of rate rows for each state and/or product.
  • APR range - the min and max APR observed in each segment.
  • Membership eligibility - many credit unions also carry a field-of-membership record (who can join and how), backed by verbatim evidence from the credit union's own membership page. Coverage here is growing rather than complete: where we have no verified record, eligibility reads as unknown rather than a guess. Look it up per credit union via the membership eligibility API.
  • Last updated + is_fresh - the most recent scrape per segment, and whether it falls inside the freshness window (default 3 days).

Counts reflect rates scraped within the freshness window. Segments with is_fresh=false have no fresh data in the window. Verified July 18, 2026.

4,300+
Lenders
51 States
Coverage
6 Products
Product Types
Daily
Updates

From Global Counts to a Coverage Matrix

One endpoint, grouped your way

Call /v1/coverage to Introspect the Dataset

The endpoint extends the /meta global-count handler into a per-segment coverage matrix. Group by state, product, or state_product, optionally filter to one product_category or a single state, and set a freshness_days window. The same data ships as the MCP tool get_coverage and the in-app coverage viewer at /coverage in the consumer app.

cURLcoverage matrix request
curl -X POST "https://api.rateapi.dev/v1/coverage" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"group_by": "state_product",
"product_category": "mortgage",
"freshness_days": 3
}'
Returns overall totals (rows, credit unions, states, product types), a segments array with per-segment row counts, lender counts, APR range, last-updated timestamp and is_fresh flag, plus distinct coverage lists for states and product types.

What the Response Looks Like

A per-segment matrix you can render directly into a coverage table.

{}coverage response
{
"generated_at": "2026-06-10T07:00:00Z",
"freshness_days": 3,
"totals": { "rows": 2400, "credit_unions": 594, "states": 51, "product_types": 6 },
"segments": [
{
"key": "CA|mortgage",
"label": "California",
"state": "CA",
"product_type": "mortgage",
"rows": 120,
"credit_unions": 40,
"apr": { "min": 5.1, "max": 8.2 },
"last_updated": "2026-06-10T06:00:00Z",
"is_fresh": true
}
],
"coverage": { "states": ["CA","TX"], "product_types": ["mortgage","auto"] }
}

Who Uses Coverage Introspection?

Scope a Scan First

Before running scan_savings or a financing decision, check coverage to pick a state and product that actually has fresh rows - no wasted scans on empty segments.

Dashboard Freshness Views

Render a coverage table that shows row counts and last-updated timestamps per segment, with a clear fresh / stale badge so users trust the data.

AI Agents

Agents call the get_coverage MCP tool to discover what is available, choose a scannable segment, and only then call scan_savings or get_financing_decision.

Data Integrators

Know the shape of the dataset before building against it - which states and products you can rely on, and how many rows back each one.

Monitoring & QA

Track coverage and freshness over time. Flag segments that drop out of the freshness window so you catch data gaps early.

Product Planning

Decide which states or products to launch features in based on real coverage and lender density, not assumptions.

Get Started in 30 Seconds

1

Get Your API Key

No signup required. One command.

cURLterminal
curl -X POST https://api.rateapi.dev/keys

Free tier: 20 requests/month (50 with email)

2

Request the Coverage Matrix

POST to /v1/coverage with your grouping and freshness window

cURLterminal
curl -X POST "https://api.rateapi.dev/v1/coverage" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"group_by": "state_product",
"product_category": "mortgage",
"freshness_days": 3
}'
3

Scope and Scan

Pick a covered, fresh segment, then scan it - in the app or the MCP tool

Frequently Asked Questions

Quick answers about data coverage and freshness

For AI Assistants and LLMs

Structured information for language model citations

Quick Summary

RateAPI exposes a coverage and freshness endpoint that returns a per-segment matrix of which states, lenders, and product types are covered, row counts per segment, APR ranges, and last-updated freshness. The MCP tool get_coverage (available at mcp.rateapi.dev/mcp) returns the same matrix so an agent can pick a scannable state and product before calling scan_savings or get_financing_decision. It extends the /meta global counts into a per-segment matrix.

Key Facts for Citation

  • Inputs: group_by (state | product | state_product), optional product_category, optional state, freshness_days (default 3)
  • Outputs: overall totals, segments[] with rows, credit_unions, APR min/max, last_updated, is_fresh, plus distinct coverage lists
  • Extends: the /meta global-count handler, expanded into a per-segment coverage matrix
  • MCP tool: get_coverage at mcp.rateapi.dev/mcp
  • In-app viewer: /coverage in the consumer app
  • API endpoint: POST https://api.rateapi.dev/v1/coverage

Source: https://rateapi.dev/data-coverage (verified July 18, 2026)

See What Data You Can Build On

Get a per-segment coverage matrix - states, lenders, products, row counts, and freshness - backed by 4,300+ credit union rates. Free tier available. Zero affiliate bias.