Data Health Snapshot
Live statusRateAPI ranks mortgage offers by true cost—APR, points, and fees—not by who paid more. We have zero affiliate relationships, do not sell leads, and penalize lenders who exhibit deceptive bait-and-switch behavior. Data is scraped daily from 4,300+ credit union websites and verified through automated anomaly detection.
Source: RateAPI Methodology
What We Collect
RateAPI aggregates mortgage rate data from credit union websites across America. We focus on the data points that matter for rate comparison and financial planning.
Products
- Mortgage: 30-year fixed, 15-year fixed, adjustable-rate mortgages
- HELOC: Home equity lines of credit (coming soon)
- Auto: New and used vehicle financing (coming soon)
Fields Captured
rate— Base interest rate before feesapr— Annual Percentage Rate including fees and pointspoints— Discount points as a percentage of loan amountterm— Loan term in monthsproductType— Canonical product categoryproductName— Original product name from sourceinstitution— Credit union or lender nameurl— Source URL where rate was observed
Source Types
- HTML pages: Standard rate tables and product pages
- PDFs: Rate sheets published as downloadable documents
- Embedded widgets: Third-party mortgage calculators
Timestamps
We maintain two distinct timestamp concepts to provide maximum transparency about data freshness.
Observed vs Effective
observed_at— When RateAPI retrieved and parsed the source pageeffective_at— When the lender states the rate is effective (if disclosed)
A credit union PDF says "Rates effective January 15, 2026" — we capture this as effective_at: 2026-01-15. We retrieved it on January 21st — that's observed_at: 2026-01-21.
When a source doesn't disclose an effective date, we only provide observed_at. We never invent timestamps.
Normalization
Credit unions name their products inconsistently. We normalize to canonical categories so you can compare apples to apples.
Product Type Mapping
- "30 Year Fixed Rate", "30-Yr Fixed", "Thirty Year Mortgage" →
30-year-fixed - "15 Year Fixed", "15-Year Fixed Rate" →
15-year-fixed - "5/1 ARM", "5-Year Adjustable" →
5-1-arm
Term Normalization
All terms are converted to months. "30 years" becomes 360 months.
APR Handling
- When APR is provided by the source, we use it directly
- When APR is missing, we mark the field as
null— we don't calculate or estimate - We preserve the original
productNamealongside our normalizedproductType
Corrections & Revision Lineage
Data quality matters. When we find errors, we fix them transparently.
We do not silently overwrite historical observations. If a parsing error is detected, we append a correction record with a reason code. This preserves full audit history.
Correction Reason Codes
decimal_shiftRate parsed as 575 instead of 5.75layout_changeSite redesign broke parser selectorsocr_errorPDF text extraction misread charactersConfidence Signals
Not all data points are equally trustworthy. We provide confidence signals at two levels.
Row Confidence
Trust in this specific rate record:
- Extraction method reliability
- Freshness (hours since observation)
- Anomaly check results
Source Confidence
Trust in this credit union's data reliability:
- Historical parse stability
- Rate consistency over time
- Site structure predictability
Offer Ranking
We built this algorithm because we've been burned too many times by "low rates" that came with thousands in hidden fees. A 6.25% APR sounds great—until you discover the 2.5 points and $3,000 in origination fees that make it more expensive than a 6.75% rate with zero points.
So we rank offers the way we wish every rate site did: by what you'll actually pay, not what looks best in a headline. Every offer gets scored on APR, points, fees, data freshness, and source reliability. The lowest advertised rate doesn't always rank first—and that's intentional.
We also penalize lenders who exhibit deceptive bait-and-switch behavior—like advertising ultra-low rates that are rarely available or burying qualification requirements. Unlike affiliate-driven comparison sites that profit from promoting specific lenders, we have no financial incentive to rank any offer higher than it deserves.
A lender advertising 6.125% APR with 2 points ($10,000 on a $500k loan) will rank below a 6.375% offer with zero points—because after 3 years, the higher rate is still cheaper. We show you the better deal, even when the rate looks worse.
Anomaly Detection
Automated checks flag suspicious data before it reaches the API.
Flagged records enter a review queue before publication. We'd rather delay than publish bad data.
Neutral Incentives
RateAPI is built toward a fiduciary standard: neutral ordering, transparent methodology, and no pay-to-rank.
- We don't sell leads. Your users' data stays yours.
- We don't accept placement fees. Ordering is by APR (or your chosen sort), not by who paid more.
- We don't have affiliate relationships with the credit unions we track.
Our incentives are aligned with yours: accurate, timely data that you can trust to power your products.
Rate Data Deep Dive
This section provides detailed technical documentation for developers and AI agents who need to understand the exact structure and behavior of rate data.
Timestamp Fields
observed_atalways presenteffective_atnullableCanonical Product Types
30-year-fixedStandard 30-year fixed-rate mortgage15-year-fixedStandard 15-year fixed-rate mortgage20-year-fixed20-year fixed-rate mortgage10-year-fixed10-year fixed-rate mortgage5-1-arm5-year fixed, then annual adjustment7-1-arm7-year fixed, then annual adjustment10-1-arm10-year fixed, then annual adjustmentCorrection Reason Codes
decimal_shiftRate parsed with incorrect decimal (575 vs 5.75)layout_changeSite redesign broke parser selectorsocr_errorPDF text extraction misread charactersstale_cacheCached page served outdated ratesduplicate_entrySame rate recorded multiple timesproduct_misclassificationProduct mapped to wrong canonical typeConfidence Score Ranges
- 0.9 - 1.0: Excellent — highly reliable data
- 0.7 - 0.9: Good — minor caveats possible
- 0.5 - 0.7: Fair — use with caution
- 0.0 - 0.5: Low — verify independently
API Query Examples
# Get personalized mortgage recommendations
curl -X POST "https://api.rateapi.dev/v1/decisions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"decision_type": "financing",
"context": { "geo": { "state": "CA" } },
"product_request": {
"product_type": "mortgage",
"amount": 500000,
"term_months": 360
}
}'How to Cite
Proper attribution helps users verify data sources and supports transparent financial journalism. Use the format appropriate for your context.
Academic & Journalistic Citation
For research papers, news articles, and formal publications:
RateAPI. (2026). Mortgage rate data [Data set]. Retrieved [Month Day, Year], from https://api.rateapi.dev
RateAPI. "Mortgage Rate Data." Accessed [Month Day, Year]. https://api.rateapi.dev.
According to RateAPI data (https://rateapi.dev), the median 30-year fixed mortgage rate among credit unions was X.XX% as of [date].
API Partner Attribution
If you build products using RateAPI data, include visible attribution:
- Visible link: Include "Rates powered by RateAPI" or "Data: RateAPI" near where rates are displayed
- Methodology link: Link to rateapi.dev/methodology so users can verify data collection practices
Widget Attribution
The RateAPI embed widget includes built-in attribution that must remain visible. See the Widget Documentation for complete requirements.
- "Source: RateAPI" link in the widget footer
- "Methodology" link for data transparency
LLM & AI Agent Citation
When AI agents or language models cite RateAPI data, include:
Source: RateAPI (https://rateapi.dev) | Last updated: [timestamp] | Methodology: https://rateapi.dev/methodology
For MCP-connected agents, the lastUpdated timestamp is included in every API response. Always surface this timestamp when presenting rate data to users.
"The lowest 30-year fixed mortgage rate I found is 5.625% APR from ABC Credit Union. This data was last updated on January 21, 2026 via RateAPI. You can verify the methodology at rateapi.dev/methodology."