RateAPI — live US mortgage, auto, HELOC, personal & deposit rates
Live US mortgage, auto, HELOC, personal & deposit rates with evidence, plus who can join each lender
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.rateapi.dev/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.rateapi.dev/mcp{
"mcpServers": {
"mcp": {
"url": "https://mcp.rateapi.dev/mcp"
}
}
}claude mcp add --transport http mcp https://mcp.rateapi.dev/mcp{
"servers": {
"mcp": {
"type": "http",
"url": "https://mcp.rateapi.dev/mcp"
}
}
}89 tools, verified live
get_financing_decisionread-onlyRECOMMENDED WHEN SHOPPING: Get personalized financing recommendations for ANY loan or credit product across every major type: mortgages (30yr/15yr/20yr/10yr fixed and ARMs), auto loans (new/used/CPO, 36-84 month terms), RV/boat/motorcycle/powersports loans, HELOCs (fixed/variable), personal loans (secured/unsecured), student loans, equipment loans, and credit cards (rewards, cash_back, secured, ba
list_credit_unionsread-onlyReference tool: Discover credit unions by state or nearest to a 5-digit ZIP. State listings include rate availability, member count, and reported location count. ZIP discovery ranks NCUA-reported branches by estimated straight-line miles from the ZIP center. For personalized rate recommendations, use get_financing_decision instead.
find_credit_unions_near_zipread-onlyUse when someone asks for "credit unions near me," the closest credit union, local credit-union branches, or nearby alternatives to a bank. Given a 5-digit ZIP, returns credit unions ordered by the estimated straight-line distance to each institution's closest NCUA-reported branch. Includes approximate miles, branch address, and profile identifiers for checking rates, services, and membership. Dis
find_product_rates_near_zipread-onlyUse when someone asks for the best mortgage, auto-loan, HELOC, personal-loan, student-loan, equipment-loan, or credit-card rates near them and provides a ZIP. Finds the nearest NCUA-reported branch set, keeps credit unions with a current product-matched published rate, and ranks those offers by lowest APR with approximate distance as a tie-breaker. HELOC matching excludes closed-end home-equity lo
get_credit_unionread-onlyReference tool: Get a credit union's rates, membership eligibility, and source-labelled NCUA quarterly profile: members, assets, year opened, charter, reported services, and branch locations. Eligibility annotates published criteria and never asserts that an individual is ineligible; profile facts are regulatory snapshots, not live prices. Use this when a user asks about a specific credit union. F
check_membership_eligibilityread-only`relative_memberships` carries confirmed current/deceased relative membership scoped to one exact target credit union; one institution is never reused for another. Check whether a user can JOIN specific credit unions (field-of-membership eligibility). Batch-friendly: pass 1-50 credit_union_ids (from get_financing_decision offers, list_credit_unions, or get_credit_union) plus whatever is known abou
find_eligible_credit_unionsread-only`relative_memberships` carries confirmed current/deceased relative membership scoped to one exact target credit union; one institution is never reused for another. `next_questions.unlocks_cu_count` counts membership decisions an answer may clarify, never guaranteed products. Discovery tool: find candidate credit unions a person may be able to JOIN, from their own facts rather than from a list of i
find_reachable_offersread-onlyFind the best fresh, evidence-backed credit-union rates reachable from this person’s membership facts. This composed graph-first operation evaluates the complete active US credit-union fleet BEFORE rates are queried, so a strong out-of-state employer, association, school, military, family, property, work/payroll, or facility door is not lost behind a candidate cap or state-only rate search. `reach
get_personal_access_catalogread-onlyEvaluate one person across 1-19 explicit loan or deposit selectors using one exhaustive eligibility snapshot. Returns separate membership, published availability, product suitability, published pricing, underwriting, and approval layers. Lead only with reachable_now or reachable_after_action; unresolved and no_published_price are unknown, never a denial. Published APY, APR, or clearly labeled nomi
compare_personal_access_catalogsread-onlyCompare baseline and candidate confirmed person facts across the same 1-19 explicit products. Both catalogs use one pinned immutable eligibility graph snapshot; rate rows retain independent evidence and as_of. Returns access, membership-path, and like-for-like published-price basis-point deltas: APY for deposits, APR for lending when both sides publish APR, otherwise nominal rate only when both si
search_eligibility_entitiesread-onlyBrowse or search canonical employers, associations, schools, or worship organizations that appear in positive conditions in current active eligibility publications. Omit query to browse by active-publication graph connectivity; that order is NOT popularity, quality, or a recommendation. With query, normalized exact matches rank before bounded prefix matches. A returned organization is a selectable
resolve_eligibility_entitiesread-onlyResolve up to 50 typed organization names for canonical eligibility input. Only one exact normalized active-publication match with confidence of at least 0.8 is authoritative (`resolved`); a lower-confidence exact match remains `unresolved`, multiple exact matches are `ambiguous`, and prefix candidates are suggestions only. Never convert an unresolved, ambiguous, or suggested candidate into a pers
compare_reachable_offersread-onlyCompare one baseline person-fact panel with one candidate panel against the same active eligibility snapshot and exact product request. Use this for explicit what-if questions such as adding a confirmed employer or association. Newly reachable means current positive evidence now proves a path; no_longer_reachable or absence never proves ineligibility. Supply only facts the person confirmed, prefer
get_product_access_envelopesread-onlyGet non-personal, evidence-bound membership-access metadata for up to 50 exact deposit product references. Returns active-publication path kinds and documented joinable-association actions alongside the current evidenced product rate. This does NOT decide whether a person is eligible, easy to qualify, approved, or within a published balance/audience constraint; unavailable evidence stays unavailab
evaluate_eligibility_cohortread-onlyEvaluate a caller-supplied panel of 1-10 named fact profiles for one exact product against one serving snapshot, deduplicating reachable institutions and exact offers. This is descriptive only for the supplied panel: never call it a population estimate, conversion rate, approval forecast, or negative eligibility result. Use neutral profile labels instead of names, emails, account numbers, or other
get_eligibility_changesread-onlyRead the bounded, cursor-paginated feed of currently active eligibility publication replacements since an ISO timestamp. Use it to invalidate caches keyed by credit_union_id or publication identity. It exposes aggregate publication metadata only: no personal facts, no historical verdict, and no claim that a person is eligible or ineligible.
extract_eligibility_factsread-onlyTurn a person's own words about themselves into the structured facts the eligibility tools accept. Pass their sentence verbatim ("I'm a nurse at a Tulsa hospital, I live in Broken Arrow, my late father was a TTCU member") and this returns each fact it could read, with the exact words it read it from, a confidence, and a needs_confirmation flag. THIS DOES NOT DECIDE ELIGIBILITY and never returns a
create_monitorCreate a new decision monitor that watches for rate changes and sends webhook notifications when conditions are met. Returns the monitor with a webhook_signing_secret for verifying webhook payloads.
create_competitor_monitorSubscribe a monitor to a SPECIFIC named credit union's published rate and alert via webhook when that CU changes its rate (vs the aggregate market-best decision). Returns the monitor with a webhook_signing_secret (shown once) and a baseline snapshot of the CU's current rate.
list_monitorsread-onlyList all monitors associated with your API key. Supports pagination and filtering by status.
get_monitorread-onlyGet detailed information about a specific monitor by its ID.
update_monitorUpdate an existing monitor. Only provided fields will be updated.
delete_monitorcan modifyPermanently delete a monitor. This action cannot be undone.
simulate_monitorTest a monitor with a simulated rate change to see if it would trigger. No webhook is sent. It is not a pure dry run: the simulation IS recorded, as a monitor_evaluations row (and a webhook audit row) flagged is_simulation = 1, so it appears in the monitor's history clearly marked as a simulation. It does not touch the monitor's cooldown or last_triggered_at. Use deliver_test_webhook to actually s
deliver_test_webhookSend a test webhook for a monitor using a simulated rate change. This actually delivers an HTTP request to the monitor's configured webhook URL. IMPORTANT: a test delivery is NOT signed with the monitor's signing secret — only a hash of that secret is stored, so test deliveries use a placeholder and will FAIL signature verification. Use this to test payload handling, not signature verification. On
list_webhook_deliveriesOrg-scoped webhook delivery observability for the authenticated API key. Lists the per-event webhook delivery log for your monitors — each row shows status (delivered/failed/pending), HTTP response code, error, response time, the destination URL, and timestamp — with a roll-up summary (total/delivered/failed/pending). Use this to surface SILENT webhook failures (a delivery that never reached your
get_eligibility_coverageread-onlyEnterprise RateAPI Routes coverage: how many US credit unions RateAPI holds live, verbatim-evidenced membership rules for (and what share of the active fleet that is), how the rules split by kind, how many counties, states and employers they name, verification status, and freshness. The `authority` object distinguishes exact immutable active publications from older graph and flat compatibility rec
get_extraction_statsread-onlyGet data extraction statistics showing the scale and health of rate data collection. Use this to understand extraction volumes, product coverage, and data freshness. Supports filtering by date range and product type. Great for building transparency dashboards or monitoring data collection health.
get_benchmarksread-onlyGet rate benchmark statistics (min/median/max APR) across all institutions. Use this for market analysis, comparing user quotes against market rates, or building benchmark dashboards. Returns statistics for mortgages (30yr fixed, 15yr fixed, and `mortgage_arm` — one bucket covering every adjustable-rate mortgage regardless of initial fixed period), auto loans (new/used — cars only), RV/boat/motorc
compare_productsread-onlyCompare the best real rates across MULTIPLE lending products in a single call — e.g. show a buyer mortgage vs HELOC, or new vs used auto. Runs the decision engine for each product and returns a ranked, true-cost (APR + fees) table. Use this instead of calling get_financing_decision repeatedly. Each product returns its top offer with rate, APR, and monthly payment.
refinance_break_evenread-onlyTell a borrower whether refinancing is worth it. Compares their current rate against the best real market offer and returns monthly savings, lifetime savings, and break-even months. Use for 'should I refinance?' questions.
optimize_buydownread-onlyGiven a discount-points / lender-credit tradeoff menu for a candidate loan, returns break-even months, lifetime savings, and the optimal point-spend. The points analog of refinance_break_even.
max_loanread-onlyEstimate the largest loan a borrower can afford from income and a target debt-to-income (DTI) ratio. Returns max monthly payment, max loan amount, and the rate used. If no rate is supplied, the current best market rate for the product/state is used.
estimate_affordabilityread-onlyBorrower-facing home affordability estimate: given gross income, existing monthly debts, down payment, and front-end/back-end DTI caps, compute the max monthly payment, max loan amount, and max home price. Surfaces the max_loan annuity engine. If no rate is supplied, the current best market rate for the state is used.
estimate_monthly_costread-onlyTotal monthly housing cost (PITI): principal+interest plus property tax, homeowners insurance, PMI, and HOA, so affordability reflects real monthly outlay. If no rate is supplied, the current best market rate for the state is used.
analyze_rent_vs_buyread-onlyCompare projected cost of renting vs buying a home over a holding period, anchored to LIVE market mortgage rates. Given home price, down payment, monthly rent, and a holding period, returns year-by-year cumulative cost of each path (rent vs PITI), equity built, net cost of owning after sale, and the breakeven year where buying becomes cheaper than renting. If no rate is supplied, the current best
project_pmi_removalread-onlyFor low-down-payment borrowers (LTV > 80%): projects when private mortgage insurance (PMI) drops off, the total PMI paid until then, and how much extra monthly principal cancels PMI sooner. Reuses the same amortization + PMI logic as estimate_monthly_cost. If no rate is supplied, the current best market rate for the state is used. Use for 'when does my PMI go away / how do I get rid of PMI faster?
get_usageread-onlyCheck the calling account's API usage and remaining quota for this month (tier, used, remaining, limit, reset date). Use BEFORE running many calls to avoid hitting rate limits.
get_monitor_statsread-onlyGet rollup stats for the account's rate monitors: total, active, and webhooks sent. Complements list_monitors.
save_scenarioSave a rate comparison for a named client so it can be recalled later (a lightweight CRM for loan officers). Pass the client label and the inputs/results you want to keep.
list_scenariosread-onlyList saved client scenarios for the account, newest first.
get_scenarioread-onlyGet a single saved scenario by id (inputs + stored comparison).
delete_scenariocan modifyDelete a saved scenario by id.
list_decision_logsread-onlyRecall past financing decisions made on this account (audit log). Filter by request_id to look up a specific prior decision, or paginate with limit/offset.
generate_client_reportread-onlyProduce a clean, client-facing markdown rate comparison report a loan officer can share with a buyer. Pass either a saved scenario_id, or an inline client_name + comparison result (from get_financing_decision/compare_products).
rate_sanity_checkread-onlyRECOMMENDED WHEN THE USER ALREADY HAS A QUOTE: answers "is this rate any good?" for a specific number a borrower was offered. Use this whenever someone says they were quoted / offered / approved at a rate and wants to know if it is fair, good, competitive, high, or a rip-off — e.g. "I got offered 6.9% on a 30-year in Ohio, is that fair?", "my dealer quoted 8.4% on a used car loan", "is 7.1% high f
get_coverageread-onlyIntrospect what mortgage/loan data the API covers BEFORE scanning — which states, lenders, and product types are present, row counts per segment, and last-updated freshness per segment. Returns a coverage matrix so an agent can pick a scannable state/product before calling scan_savings or get_financing_decision. Mirrors the /meta global counts, expanded into a per-segment matrix. Boats, RVs, motor
check_competitive_positionread-onlyLENDER-side 'is my offer competitive' check — input your OWN published rate for a state+product, get the market percentile, bps vs the state median, and a leading/competitive/overpriced verdict. This is for a loan officer or credit union benchmarking their published pricing against the live market distribution. Do NOT use this for a consumer's quote: if the user is a BORROWER asking whether a rate
scan_savingsread-onlyScan a list of existing debts and find, for EACH debt, the best qualifying market refinance offer. Returns a ranked "savings stack" with monthly and lifetime savings (net of typical closing costs) per debt plus whether refinancing is worth it, and overall totals. Use this to find refinance opportunities across a borrower's whole debt portfolio.
get_league_tableread-onlyLoan-officer competitive-landscape report: ranked roster of the top N lenders publishing a given mortgage product in a state today — per-lender rows (name, best APR/rate, product, position, bps above the leader) — plus the market min/median/max. The market median is INSTITUTION-level — one vote per lender, using each lender's best APR (basis = total_lenders, not market.count) — so a lender publish
get_deposit_benchmarksread-onlyBest/median/spread credit-union deposit APY by product, term, and state, with per-CU peer ranking. Pass the MCP field `product` using one exact underscore value: savings, cd, share_certificate, money_market, ira_cd, ira, or share_savings. The MCP server translates it to REST `product_category`; do not send `product_category`, `mma`, or `money-market` to this tool. Deposits quote APY (no APR); CDs/
get_deposit_betaread-onlyDeposit beta (repricing sensitivity) = change in deposit APY per 100bps change in a benchmark/market rate — the core credit-union/bank ALM & interest-rate-risk (IRR) model input. Pass the MCP field `product` using an exact underscore value such as `money_market`; do not send `product_category`, `mma`, or `money-market`. Derived from RateAPI's retained published deposit-rate history. SHORT-WINDOW /
explain_rankingread-onlyExplain WHY each top lender ranked where it did for a financing decision. Takes a full decision scenario (same shape as get_financing_decision) and returns a structured per-offer cost breakdown (rate, points, fees, lifetime interest), scoring signals, how much each offer beats the next by, and a plain-language summary of the ranking weights. Use this when a user asks why one lender beat another.
simulate_decisionread-onlyRun a what-if sweep over a financing decision. Holds a scenario fixed while sweeping one input (credit_score, down_payment_percent, or rate_shift_bps) across a from/to/step range, returning a grid of best_lender / best_apr / monthly_payment at each value plus any flip_points where the winning lender changes. Use this to show how rate eligibility or affordability changes with credit score, down pay
build_amortization_scheduleread-onlyBuild a year-by-year amortization / payoff schedule for a loan: total lifetime interest, principal/interest split per period, and a what-if extra-payment accelerator showing months saved and interest saved. Resolves the market rate from real credit-union offers when no rate is provided.
compare_total_costread-onlyApples-to-apples multi-lender ranking by TOTAL cost of a loan (upfront origination/lender fees + lifetime interest over the holding period), not just the headline rate. Re-ranks real credit union offers and flags when the lowest-rate lender is not the cheapest overall.
batch_decisionsread-onlyScore an array of inline financing scenarios in one stateless call; returns ranked decisions and top offers per item — no persisted cohorts, no per-borrower HTTP loops.
get_rate_deltaread-onlyCompare the LIVE market rate distribution now vs ~1/2/4 weeks ago for a product and state. Returns now/then min, median, max, count plus the median and min delta and a direction (down/up/flat). Bounded by data retention — if no comparable historical snapshot exists, then is null with an explanatory note. Use this to show how rates have moved recently.
list_ratesread-onlyList and filter raw rate rows (the core data primitive) by product, state, lender, and term with limit/offset pagination. Boats, RVs, motorcycles, and powersports are first-class product types; auto_loan means cars.
get_rate_historyread-onlyHistorical rate time-series: a date-ranged array of {date, min/median/max APR, count} points per product/state for dashboards, charts, backtests, and timing confidence — bounded by data retention. Differs from get_rate_delta (a single now-vs-then comparison): this returns the full series. Boats, RVs, motorcycles, and powersports are first-class product types; auto_loan means cars. Calls the /v1/ra
assess_buy_timingread-onlyFrame a buy/refi-now vs wait recommendation. Combines recent rate movement (direction + magnitude over 1w/2w/4w) with break-even sensitivity on the borrower's loan to return a forward 'lock now' vs 'wait' lean, the bps swing that would change the call, and the cost of waiting. Use for 'should I lock now or wait for rates to drop?' questions. Distinct from get_rate_delta (raw historical deltas only
assess_rate_lockread-onlyLock-window-aware lock-vs-float-down recommendation for a deal already in the pipeline. Given a known lock-expiration date, the currently locked rate, and the float-down cost, returns a defensible hold-lock vs exercise-float-down call a loan officer can document — combining recent market movement (1w/2w/4w) with payment and break-even math on this loan. Builds on the same recent-movement signal as
check_advice_guardrailsread-onlyRun compliance/suitability guardrails over a financing scenario and an optional recommendation. Returns flags (red/yellow with code + message) for things like DTI strain, long auto terms with negative-equity risk, possible balloon payments, and stale market data, plus generic disclaimers and an overall verdict (ok/caution/stop). Use this before presenting a rate recommendation to a borrower.
save_cohortSave a named cohort ("book of business") — a list of borrower scenarios you want to track and re-scan over time. Each member has a label and a scenario (product_type, state, intent, amount, term_months, optional credit_score and current_offer). Returns the created cohort. Use scan_portfolio later to re-price every member against the live market.
list_cohortsread-onlyList saved cohorts for the account (newest first). Returns id, name, member count, and last scan time. Keeps the payload small — use get_cohort for full member detail.
get_cohortread-onlyGet a single saved cohort by id, including all members and the last scan snapshot (triage list).
delete_cohortcan modifyPermanently delete a saved cohort by id. This action cannot be undone.
scan_portfolioRe-scan every member of a saved cohort against the live decision engine to find each member's current best offer. Returns a triage list (label, best lender, best APR, monthly payment, optional savings vs current) and a diff vs the previous scan (who's new, whose best lender changed, APR deltas). Persists the new snapshot. Use this to refresh a book of business and surface what changed.
generate_share_linkTurn a saved client scenario into a public, branded, shareable URL (https://app.rateapi.dev/r/TOKEN) that anyone can view without logging in. Returns a token and url. The link shows the client name, scenario inputs, and the ranked comparison with a "Powered by RateAPI" footer. Use revoke_share to disable a link later.
list_sharesread-onlyList all hosted shareable report links for the account, newest first. Returns token, scenario_id, client_name, views, last_viewed_at, revoked, created_at, and url for each share. Use this to see view analytics and manage which links are still live.
revoke_sharecan modifyRevoke a hosted shareable report link by its token. Once revoked, the public URL returns a 404 and no longer exposes the report. This action cannot be undone.
schedule_digestSet up a recurring digest: on a cadence (default weekly), automatically re-scan a saved cohort and EMAIL the loan officer a triage of which clients have a new opportunity (best lender changed, crossed a threshold). Turns a one-time portfolio scan into a standing operation. Requires a cohort_id (from save_cohort/list_cohorts) and a delivery email.
list_digestsread-onlyList the account's scheduled digests (cohort, email, cadence, enabled, last run).
delete_digestcan modifyDelete a scheduled digest by id. Stops the recurring email.
set_email_brandingSet the organization's white-label email branding: display name (used as the From name and CAN-SPAM advertiser identity), brand color (#hex), default intro text, business_address (CAN-SPAM physical address — required before a campaign can be activated), and reply_to_email. Requires a Pro plan. (Logo upload is app-only — not available over MCP.)
get_email_brandingread-onlyGet the organization's current email branding (display name, logo URL, brand color, intro, business address, reply-to).
create_email_campaignCreate a branded rate-email campaign: on a cadence, email the campaign's recipient list the latest rates for one or more states (or a named region preset) under the org's branding, with ONE OR MORE products (1-5, no duplicates). Each product is one of: {category:'mortgage', subtype:'30-year-fixed'|'15-year-fixed'}, {category:'auto', condition:'new'|'used'|'any', term_months?:36|48|60|72|84} (auto
list_email_campaignsread-onlyList the organization's branded rate-email campaigns (name, criteria, cadence, status, last run).
update_email_campaignUpdate a campaign's name, geography, cadence, intro override, products, or status. products (if given) is the full replacement set (1-5, same union as create_email_campaign). Any geography field replaces the campaign's whole state selection. Set status 'active' to start sending (requires branding display_name + business_address) or 'paused' to stop. Provide exactly one of state_code, state_codes,
delete_email_campaigncan modifyDelete a branded rate-email campaign and its recipients. This cannot be undone.
add_campaign_recipientsAdd recipients (email + optional name) to a campaign. Up to 50 per request, 200 per campaign. Duplicate addresses are ignored.
remove_campaign_recipientcan modifyRemove one recipient from a campaign by recipient id.
send_test_campaignSend a one-off test render of a campaign (with live rates and the org's branding) to the organization owner's email. Does not affect the campaign schedule.
send_campaign_nowSend a campaign to ALL of its recipients immediately (one full send, the same path the daily cron uses). The campaign must be active. Honors suppressions and the per-org daily cap, resets the cadence clock (the next scheduled send counts from now), and is guarded against double-fires. Returns { run_id, sent, suppressed, failed }.
subscribe_rate_alertSubscribe a consumer to an EMAIL rate alert: notify them when the live market meets their target (rate/apr/monthly_payment crossing a threshold). Consent-first — sends a double-opt-in confirmation email; the alert only activates after the recipient confirms. One-click unsubscribe in every email (CAN-SPAM). Stores only email + alert criteria. Provide exactly one of state, states, or region.
list_rate_alertsread-onlyList the rate alerts subscribed for a given email (status, product, state, intent, target, last notified).
unsubscribe_rate_alertcan modifyOne-click unsubscribe via the per-alert token embedded in every email.
search_docsread-onlyDOCS: search the RateAPI documentation (authentication, rate limits and pricing, coverage, freshness, methodology, eligibility, endpoint map, product parameters, errors, the MCP server itself, and the rules for quoting the data). Use this whenever the question is about the API rather than about a rate — "how do I authenticate?", "what does rate_phase mean?", "which endpoint gives deposit APYs?", "
get_docread-onlyDOCS: return the full text of one RateAPI documentation page by slug (from search_docs) or by its published URL. Documentation only — it describes the contract, not live rates. Available slugs: quickstart, authentication, rate-limits-and-pricing, coverage, freshness, evidence-and-methodology, quoting-rules, eligibility, endpoints, mcp-server, products-and-parameters, errors-and-troubleshooting, de
Alternatives in Other
Compare →
TracePassB
Manage products, EU Digital Product Passports, operator parties, and GS1 EPCIS supply-chain events.
MBmailbox.botB
Hosted mailbox.bot postal MCP. $15/mo mailboxes are live now.
MAMacfaxB
Identify any Apple serial and read its device record, plus used-Mac prices, listings and checks.
KNKenwea NotaryB
Signed, traced record of what an npm package or file attempts when run, network included. No key.
ABaboardB
Falsifiable claims about systemic problems: causal graph, forecasts, dossiers.
BBBible by MidvashB
Free, no-key Bible MCP server — 86 translations in 32 languages, from any MCP client.