Mortgage decision intelligence endpoints · Free · No auth required · CC BY 4.0
FRC provides free, publicly accessible JSON endpoints for mortgage overlay intelligence data. All endpoints are static files updated quarterly. No API key required. Attribution required (CC BY 4.0).
https://financeratecalc.com/
Returns all active and archived FRC Signals — named underwriting intelligence alerts.
fetch('https://financeratecalc.com/signals.json')
.then(r => r.json())
.then(data => {
const active = data.active_signals;
// active[0].id → "FRC-TIGHTENING-001"
// active[0].description → plain English explanation
// active[0].recommendation → borrower action
});
Current Overlay Friction Index, climate state, and per-category breakdown with historical OFI series.
fetch('https://financeratecalc.com/overlay-climate.json')
.then(r => r.json())
.then(data => {
const ofi = data.current_state.ofi; // 47
const state = data.current_state.macro_state; // "MODERATE"
const history = data.ofi_history; // [{period, value}]
const categories = data.by_category; // per-lender-type breakdown
});
Complete mortgage denial taxonomy: 47 types, ECOA codes, overlay detection rule.
fetch('https://financeratecalc.com/decision-taxonomy.json')
.then(r => r.json())
.then(data => {
const rule = data.overlay_detection_rule;
const ecoa = data.ecoa_codes; // {"01": "description", ...}
const cats = data.categories; // agency_rule, lender_overlay, documentation, property
});
Current underwriting macro-state and historical state transitions.
fetch('https://financeratecalc.com/underwriting-cycle.json')
.then(r => r.json())
.then(data => {
const current = data.current; // {state, ofi, period, direction}
const transitions = data.transitions; // historical state changes
const states = data.states; // state definitions with OFI ranges
});
Complete OFI historical series with FHA Flexibility Tracker, SSDI Acceptance Rate, and all active signals in one file.
// Embed current OFI in your site
async function getFRCClimate() {
const res = await fetch('https://financeratecalc.com/overlay-climate.json');
const data = await res.json();
return {
ofi: data.current_state.ofi,
state: data.current_state.macro_state,
direction: data.current_state.direction,
source: 'FRC Research — financeratecalc.com'
};
}
// Widget display
getFRCClimate().then(climate => {
document.getElementById('ofi').textContent = climate.ofi;
document.getElementById('state').textContent = climate.state;
// Always display: Source: FRC Research
});
All FRC data is CC BY 4.0. Use is free with attribution. Required format:
// In your UI:
"Source: FRC Research — financeratecalc.com"
// In academic/research citations:
FinanceRateCalc Research. (2026). [Dataset name].
financeratecalc.com/[endpoint]. CC BY 4.0.
Embeddable OFI widget — no JavaScript required:
<iframe
src="https://financeratecalc.com/ofi-badge.html"
width="240" height="120"
frameborder="0"
style="border-radius:10px;"
></iframe>
All endpoints updated quarterly (Q1: Feb, Q2: May, Q3: Aug, Q4: Nov). Signal status may update mid-quarter when significant overlay behavior changes are detected. Subscribe to updates: [email protected]
For research partnerships, data licensing, or fair lending research access: [email protected]