If you write about housing — an agent's blog, a local newsletter, a housing nonprofit, a class — you can show your readers what actually happened in their market rather than describing it. One line of HTML, one script tag. No account, no key, no tracking, no cookies, no dependencies.
<div data-frc="metro" data-value="cleveland-oh"></div> <script src="https://financeratecalc.com/embed/frc.js" async></script>
The widget reads the background it actually sits on, so the same tag works on a light or dark page:
<div data-frc="lender" data-value="rocket-mortgage"></div>
<div data-frc="state" data-value="oh"></div>
The widget reads a static API. So can you — 470 endpoints, no key, no rate limit, plain files:
https://financeratecalc.com/api/metro/cleveland-oh.json https://financeratecalc.com/api/lender/rocket-mortgage.json https://financeratecalc.com/api/state/oh.json https://financeratecalc.com/api/index.json ← every slug, all three types
Each response carries its universe definition, the method link, the dataset DOI, and a verification_status field reading "reproducible; not independently reproduced". That is accurate, and attaching it to every response makes it harder to drop in transit than a caveat sitting at the bottom of a page.
Metro and lender slugs are lowercase with hyphens. The full list is in index.json; the largest are:
| Metro | Slug |
|---|---|
| Houston-The Woodlands-Sugar Land, TX | houston-the-woodlands-sugar-land-tx |
| Atlanta-Sandy Springs-Roswell, GA | atlanta-sandy-springs-roswell-ga |
| Phoenix-Mesa-Scottsdale, AZ | phoenix-mesa-scottsdale-az |
| Dallas-Plano-Irving, TX | dallas-plano-irving-tx |
| Riverside-San Bernardino-Ontario, CA | riverside-san-bernardino-ontario-ca |
| Chicago-Naperville-Evanston, IL | chicago-naperville-evanston-il |
| Tampa, FL | tampa-fl |
| Orlando-Kissimmee-Sanford, FL | orlando-kissimmee-sanford-fl |
| San Antonio-New Braunfels, TX | san-antonio-new-braunfels-tx |
| Charlotte-Concord-Gastonia, NC-SC | charlotte-concord-gastonia-nc-sc |
| Denver-Aurora-Lakewood, CO | denver-aurora-lakewood-co |
| Indianapolis-Carmel-Anderson, IN | indianapolis-carmel-anderson-in |
| Lender | Slug |
|---|---|
| United Wholesale Mortgage | united-wholesale-mortgage |
| ROCKET MORTGAGE | rocket-mortgage |
| FREEDOM MORTGAGE CORPORATION | freedom-mortgage |
| DHI Mortgage Company, LTD. | dhi-mortgage |
| loanDepot.com LLC | loandepotcom |
| PENNYMAC LOAN SERVICES LLC | pennymac-loan-services |
| CROSSCOUNTRY MORTGAGE, LLC | crosscountry-mortgage |
| Lennar Mortgage, LLC | lennar-mortgage |
| NEW AMERICAN FUNDING, LLC. | new-american-funding |
| GUILD MORTGAGE COMPANY | guild-mortgage |
| AMERISAVE MORTGAGE COMPANY | amerisave-mortgage |
| NEWREZ LLC | newrez |
Everything is CC BY 4.0: use it commercially, restyle it, put it behind your own navigation, build a product on the JSON. The attribution line is part of the widget and stays — that line is the licence, and it is also what lets your reader check the figure rather than take it from you.
What the widget will not do: predict an outcome for an individual, rate a lender, or return a figure computed on too few observations. Metros below 500 decisioned applications and institutions below 1,500 are withheld rather than shown on thin counts, and the widget says so instead of guessing.
Until tonight, every figure computed here lived only on this site. To use one you had to visit a page and screenshot it. That is a real cost, and it meant the data reached exactly as far as this domain does — which is not very far.
A number that can be embedded travels. It ends up on pages we did not write, in front of readers we could not reach, carrying its own source line and its own verification status. That is a better outcome than any amount of traffic to this site, and it costs us nothing.