Alpaca Trading API integration for Model Context Protocol (MCP)
RateAPI — live US mortgage, auto, HELOC, personal & deposit is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Live US mortgage, auto, HELOC, personal & deposit rates with evidence, plus who can join each lender
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http rateapi-live-us-mortgage-auto-heloc-personal-mcp https://mcp.rateapi.dev/mcp
# 2 — ask your agent for something these tools do
# get_financing_decision, list_credit_unions, find_credit_unions_near_zip and 86 more
RateAPI — live US mortgage, auto, HELOC, personal & deposit costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http rateapi-live-us-mortgage-auto-heloc-personal-mcp https://mcp.rateapi.dev/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
89 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
RECOMMENDED 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | Valid 50-state/DC code (2-letter, e.g., CA, TX, NY). Required; lowercase is accepted and normalized. |
| product_type | string | no | Type of financing product: "mortgage" (FIXED-rate home purchase/refinance), "mortgage_arm" (ADJUSTABLE-rate mortgage), "auto_loan" (vehicle financing), "heloc" (home equity line of credit), "personal_ |
| intent | string | yes | The loan intent. For mortgages, use "purchase" or "refinance". For auto loans, use "purchase" (new/used car) or "refinance" (existing auto loan). Required. |
| amount | number | yes | Loan amount in dollars (minimum 1000). Required. |
| term_months | number | no | Loan term in months (12-480). Defaults to 360 (30-year) for mortgages, 60 (5-year) for auto loans. Common auto loan terms: 36, 48, 60, 72, 84 months. Common mortgage terms: 180 (15-year), 360 (30-year |
| current_rate | number | no | Current offer rate if refinancing (percentage, e.g., 6.5 for 6.5%). |
| current_apr | number | no | Current offer APR if refinancing (percentage). |
| credit_score | number | no | Borrower's credit score (300-850). Highly recommended for accurate rate matching. |
| no_points | boolean | no | If true, prefer no-points loans only. Applies to mortgages. |
| max_providers | number | no | Maximum number of providers to return (1-5). Defaults to 5. |
| vehicle_condition | string | no | AUTO LOANS ONLY: Condition of the vehicle being purchased or refinanced. Affects rate eligibility. |
| vehicle_year | number | no | AUTO LOANS ONLY: Model year of the vehicle (e.g., 2024, 2020). Used to determine age-based rate tiers. |
| vehicle_type | string | no | AUTO LOANS ONLY: Type of vehicle being financed. Some lenders offer specialized rates by vehicle type. |
| county | string | no | User's county for membership-eligibility matching (credit union field-of-membership). Helps flag which lenders the user can actually join. |
| zip | string | no | User's US 5-digit ZIP or ZIP+4. Resolves to a county server-side for membership-eligibility matching; its crosswalk state must agree with state. |
| employer | string | no | User's employer, matched against credit union employer/SEG membership lists for eligibility. |
| military_status | string | no | User's military affiliation. Annotates offers with eligible_via_military where the credit union has a military field of membership. |
| school | string | no | User's school/college/university. Supply school_relationship too; a school name alone does not affirm a typed eligibility path. |
| school_relationship | string | no | How the user relates to the named school. Required with school to affirm a typed student, alumni, or school-employee path. |
| worship | string | no | User's place of worship, used to annotate offers with worship-org-affinity eligibility. |
Reference 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | Optional: Filter to a specific state (2-letter code). If not provided, returns all states. |
| zip | string | no | Optional: Find the closest credit unions by NCUA-reported branch location. Distances are ZIP-centroid straight-line estimates. When supplied, ZIP discovery takes precedence over state listing. |
Use 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| zip | string | yes | Five-digit US ZIP code used as the center of the nearest-branch search. |
| max_results | number | no | Maximum credit unions to return (1-25, default 10). |
Use 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| zip | string | yes | Five-digit US ZIP code used as the center of the nearby-branch search. |
| product_type | string | yes | Product whose current published rates should be compared. |
| term_months | number | no | Optional comparable loan term. For fixed mortgages, under 300 months selects the 15-year market and 300+ selects 30-year. |
| vehicle_condition | string | no | Auto loans only. Omit to use the new-auto market. |
| max_offers | number | no | Maximum product-matched offers to return (1-8, default 5). |
Reference 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | US state code (2-letter, e.g., CA, TX, NY). Required. |
| slug | string | yes | Credit union slug (URL-friendly name, e.g., "navy-federal-credit-union"). Required. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| credit_union_ids | array | yes | Credit union ids to check (1-50), e.g. from get_financing_decision offers or list_credit_unions. Required. |
| state | string | no | User's valid 50-state/DC code for geographic field-of-membership matching. Lowercase is accepted and normalized. |
| zip | string | no | User's US 5-digit ZIP or ZIP+4. Resolves to a county server-side; when state is supplied, the ZIP crosswalk must agree with it. |
| county | string | no | User's home county for residence matching. Original name; home_county is an equivalent merge-and-retry alias. |
| home_state | string | no | Alias for state, accepted so missing_facts can be merged into this same tool request. Conflicting duplicate forms are rejected. |
| home_zip | string | no | Alias for zip, accepted so missing_facts can be merged into this same tool request. It must agree with state/home_state when either is supplied; conflicting duplicate forms are rejected. |
| home_county | string | no | Alias for county, accepted so missing_facts can be merged into this same tool request. Conflicting duplicate forms are rejected. |
| home_city | string | no | User's Census-recognized home city. Requires state or a recognized zip that uniquely identifies one state; unresolved labels are rejected rather than guessed. |
| work_state | string | no | Valid 50-state/DC code where the user works, for work-area membership matching. Lowercase is accepted and normalized. |
| work_zip | string | no | User's US 5-digit work ZIP or ZIP+4. Resolves to a work county server-side; when work_state is supplied, the crosswalk must agree with it. |
| work_county | string | no | County where the user works, for work-area membership matching. |
| work_city | string | no | Census-recognized city where the user works. Requires work_state or a recognized work_zip that uniquely identifies one state. |
| payroll_state | string | no | Valid state code from which the user's employer issues payroll. This is distinct from work_state. |
| payroll_zip | string | no | ZIP from which the user's employer issues payroll. This is distinct from the worksite ZIP. |
| payroll_county | string | no | County from which the user's employer issues payroll. This is distinct from work_county. |
| payroll_city | string | no | Census-recognized payroll city. Requires payroll_state or a recognized payroll_zip that uniquely identifies one state. |
| employer | string | no | User's employer, matched against credit union employer/SEG membership lists. |
| employer_org_ids | array | no | Canonical employer ids selected through resolve_eligibility_entities. The API revalidates entity type and active-publication authority before use. |
| occupation | string | no | User's occupation, matched against trade/industry/profession (TIP) charters. |
| military_status | string | no | User's military affiliation, matched against military field-of-membership (yields eligible_via_military). |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| home_zip | string | no | User's US 5-digit home ZIP or ZIP+4. Resolves to candidate counties; when home_state is supplied, the crosswalk must agree with it. |
| home_state | string | no | User's valid 50-state/DC code (e.g., CA, TX, NY). Lowercase is accepted and normalized. |
| home_county | string | no | User's county. Wins over the ZIP-derived counties when supplied. |
| home_city | string | no | User's Census-recognized home city. Requires home_state or a recognized home_zip that uniquely identifies one state; unresolved labels are rejected rather than guessed. |
| work_zip | string | no | User's US 5-digit work ZIP or ZIP+4. Resolves to candidate work counties; when work_state is supplied, the crosswalk must agree with it. |
| work_state | string | no | Valid 50-state/DC code where the user works (e.g., CA, TX, NY). Lowercase is accepted and normalized. |
| work_county | string | no | County where the user works. Wins over work-ZIP-derived counties when supplied. |
| work_city | string | no | Census-recognized city where the user works. Requires work_state or a recognized work_zip that uniquely identifies one state. |
| payroll_zip | string | no | ZIP from which the user's employer issues payroll; distinct from the worksite ZIP. When payroll_state is supplied, the ZIP must agree with it. |
| payroll_state | string | no | State from which the user's employer issues payroll; distinct from work_state. |
| payroll_county | string | no | County from which the user's employer issues payroll; distinct from work_county. |
| payroll_city | string | no | Census-recognized city from which payroll is issued. Requires payroll_state or a recognized payroll_zip that uniquely identifies one state. |
| occupation | string | no | User's occupation, matched against trade, industry, and profession fields of membership. |
| employer | string | no | User's employer, resolved to a canonical organization for SEG matching. |
| employer_org_ids | array | no | Canonical employer ids selected through resolve_eligibility_entities. The API revalidates entity type and active-publication authority before use. |
| school | string | no | User's school/college/university, resolved to a canonical organization. Supply school_relationship too; a name alone is not a positive match. |
| school_org_ids | array | no | Canonical school ids selected through resolve_eligibility_entities; never populate these from prose extraction. |
| school_relationship | string | no | How the user relates to the school. Required with school to affirm a typed student, alumni, or school-employee path. |
| associations | array | no | Associations, unions, or member organizations the user already belongs to. |
| association_org_ids | array | no | Canonical association ids selected through resolve_eligibility_entities; each is type- and publication-revalidated. |
Find 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| person | object | yes | Confirmed person facts accepted by find_eligible_credit_unions, including canonical *_org_ids selected through resolve_eligibility_entities. Unknown facts stay absent and canonical ids are revalidated |
| product | object | yes | The financial product and matching attributes to route. |
| limit | number | no | Visible offers per bucket, 1-50. Candidate intersection happens before this cap. |
Evaluate 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| person | object | yes | Explicit caller-supplied person facts. Unknown facts stay absent; do not infer them. |
| products | array | yes | One to nineteen unique explicit product selectors. Do not invent missing scenario facts. |
| limit_per_product | integer | no | Maximum detail rows for each selector, subject to the total and plan caps. Default 5. |
| total_limit | integer | no | Maximum detail rows across all selectors; must be at least the selector count. Default 50. |
Compare 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline_person | object | yes | Explicit caller-supplied person facts. Unknown facts stay absent; do not infer them. |
| candidate_person | object | yes | Explicit caller-supplied person facts. Unknown facts stay absent; do not infer them. |
| products | array | yes | — |
| limit_per_product | integer | no | — |
| total_limit | integer | no | — |
Browse 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Optional organization name or prefix, 2-120 characters. Omit to browse by active-publication connectivity. |
| types | array | no | Exact public organization types to search. Omit for all four types. |
| limit | integer | no | Maximum results; the response discloses truncation. |
Resolve 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| inputs | array | yes | Typed values to resolve in stable input order. |
| candidate_limit | integer | no | Maximum exact matches or prefix suggestions returned per input. |
Compare 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseline_person | object | yes | Confirmed facts before the proposed change. |
| candidate_person | object | yes | Confirmed facts after the proposed change. |
| product | object | yes | Exact product request used for both eligibility-backed rate evaluation and ranking. |
| limit | integer | no | Visible items per bucket and delta list. |
Get 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| products | array | yes | Exact deposit product references; no fuzzy product matching is performed. |
Evaluate 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| profiles | array | yes | Caller-supplied named panel. Names must be unique within this request. |
| product | object | yes | Exact product request used for both eligibility-backed rate evaluation and ranking. |
| limit | integer | no | Maximum aggregate institutions and deduplicated offers returned. |
Read 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | yes | Exclusive ISO 8601 activation boundary with an offset. |
| cursor | string | no | Opaque next_cursor from the prior page; do not construct or modify it. |
| limit | integer | no | Maximum publication changes returned. |
Turn 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | The person's own words, up to 2000 characters. Do not paraphrase or pre-structure it — the extractor needs the original sentence to anchor evidence spans. |
| known_facts | object | no | Optional. Fields you already know, in PersonSearch shape. These are echoed as source="supplied" and never overwritten. |
Create 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | A descriptive name for the monitor. Required. |
| decision_context | object | yes | The context for evaluating rate changes. Required. |
| conditions | array | yes | Array of conditions that must be met to trigger the monitor. Required. |
| subscribed_states | array | no | Optional array of state codes to monitor. If not provided, monitors all states. |
| subscribed_product_types | array | no | Optional array of product types to monitor (e.g., ["30yr_fixed", "15yr_fixed"]). |
| webhook_url | string | yes | The URL to send webhook notifications to. Required. |
| cooldown_hours | number | no | Minimum hours between webhook triggers (1-168). Defaults to 24. |
Subscribe 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Descriptive monitor name. Required. |
| target_credit_union | object | yes | The specific credit union whose published rate to watch. Required. |
| product_type | string | no | Default mortgage. |
| audience | string | no | Scope offers by WHO they are for: 'business' returns business-audience products (DSCR mortgages, commercial vehicle loans, SBA); 'consumer' excludes them. Omit for both. |
| occupancy | string | no | MORTGAGE/HELOC: property occupancy. 'investment' returns investor / non-owner-occupied / DSCR pricing; 'secondary' second-home pricing. Omit for standard primary-residence offers. |
| loan_program | string | no | e.g. '30-year-fixed'. |
| state | string | no | 2-letter state for the CU published rate. |
| conditions | object | no | Alert conditions on the named CU rate. Default: any change. |
| cooldown_hours | number | no | 1-168, default 24. |
| webhook_url | string | yes | HTTPS webhook. Required. |
List all monitors associated with your API key. Supports pagination and filtering by status.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | number | no | Maximum number of monitors to return (1-100). Defaults to 20. |
| offset | number | no | Number of monitors to skip for pagination. Defaults to 0. |
| status | string | no | Filter monitors by status. |
Get detailed information about a specific monitor by its ID.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| monitor_id | string | yes | The unique identifier of the monitor. Required. |
Update an existing monitor. Only provided fields will be updated.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| monitor_id | string | yes | The unique identifier of the monitor to update. Required. |
| name | string | no | New name for the monitor. |
| status | string | no | New status for the monitor. |
| conditions | array | no | New array of conditions. |
| webhook_url | string | no | New webhook URL. |
| cooldown_hours | number | no | New cooldown period in hours (1-168). |
Permanently delete a monitor. This action cannot be undone.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| monitor_id | string | yes | The unique identifier of the monitor to delete. Required. |
Test 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| monitor_id | string | yes | The unique identifier of the monitor to simulate. Required. |
| rate_change | object | yes | The simulated rate change event. Required. |
Send 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| monitor_id | string | yes | The unique identifier of the monitor to test. Required. |
| rate_change | object | yes | The simulated rate change event. Required. |
Org-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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| monitor_id | string | no | Filter to one monitor. |
| status | string | no | Filter by delivery outcome. |
| redeliver_id | integer | no | If set, replay the delivery with this audit-log id instead of listing (maps to action:redeliver, delivery_id). |
| limit | integer | no | — |
| offset | integer | no | — |
Enterprise 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
No parameter schema on file.
Get 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| startTime | string | no | Start of the time range. Supports ISO8601 (e.g., "2024-01-15T00:00:00Z") or relative times ("now-24h", "now-7d", "now-1m"). Defaults to "now-24h". |
| endTime | string | no | End of the time range. Supports ISO8601 or relative times. Defaults to "now". |
| product_type | string | no | Filter statistics to a specific product type. If omitted, returns stats for all product types. |
Get 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | no | Filter to a specific product type. If omitted, returns benchmarks for all product types. |
| state | string | no | Filter to a specific US state (2-letter code). If omitted, returns nationwide benchmarks. |
Compare 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | US state code, e.g. "CA" |
| amount | number | yes | Loan/credit amount in dollars |
| intent | string | no | purchase | refinance | cash_out | balance_transfer | new_credit |
| product_types | array | yes | Products to compare, e.g. ["mortgage","heloc"]. Any of: mortgage, mortgage_arm, auto, rv, boat, motorcycle, powersports, heloc, personal_loan, credit_card, student_loan. "mortgage" is fixed-rate and " |
| term_months | number | no | Optional loan term in months |
| credit_score | number | no | Optional borrower credit score |
Tell 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | US state code |
| product_type | string | yes | mortgage | auto | heloc | personal_loan | student_loan |
| balance | number | yes | Current loan balance in dollars |
| term_months | number | yes | Remaining or new term in months |
| current_rate | number | yes | Borrower's current interest rate, e.g. 7.25 |
| closing_costs | number | no | Lender fees / closing costs in dollars (default 0) |
| credit_score | number | no | Optional borrower credit score |
Given 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| loan_amount | number | yes | Loan principal in dollars (>0). |
| term_months | number | yes | Loan term in months, e.g. 360. |
| base_rate | number | yes | The no-points (par) interest rate, percent, e.g. 6.75. |
| options | array | yes | Points/lender-credit tradeoff menu to evaluate. |
| hold_months | number | no | Expected time-in-loan horizon for lifetime savings; defaults to term_months. |
| state | string | no | Optional 2-letter state (validated only if supplied). |
Estimate 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| income_annual | number | yes | Gross annual income in dollars |
| dti | number | yes | Target debt-to-income ratio as a decimal, e.g. 0.36 |
| term_months | number | yes | Loan term in months (e.g. 360) |
| rate | number | no | Optional annual interest rate, e.g. 6.5. If omitted, best market rate is used. |
| state | string | no | US state code (used to look up a market rate when rate is omitted) |
| product_type | string | no | Product for the market-rate lookup, default mortgage |
| existing_monthly_debt | number | no | Optional existing monthly debt payments to subtract |
Borrower-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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| income_annual | number | yes | Gross annual income in dollars |
| monthly_debts | number | no | Existing recurring monthly debt payments. Default 0. |
| down_payment | number | no | Cash down payment in dollars. Default 0. |
| front_end_dti | number | no | Housing-payment DTI cap as a decimal. Default 0.28. |
| back_end_dti | number | no | Total-debt DTI cap as a decimal. Default 0.36. |
| term_months | number | no | Loan term in months. Default 360. |
| rate | number | no | Optional annual interest rate, e.g. 6.5. If omitted, best market rate is used. |
| state | string | no | US state code for the market-rate lookup. Default CA. |
| product_type | string | no | Product for the market-rate lookup. Default mortgage. |
Total 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| home_price | number | no | Purchase price in dollars. Required unless loan_amount is given. |
| down_payment | number | no | Cash down payment in dollars. Default 0. loan_amount = home_price - down_payment. |
| loan_amount | number | no | Optional explicit loan amount; overrides home_price - down_payment. |
| rate | number | no | Annual interest rate, e.g. 6.5. If omitted, best market rate for the state is used. |
| term_months | number | no | Loan term in months. Default 360. |
| state | string | no | 2-letter US state code for the market-rate lookup. Default CA. |
| property_tax_rate | number | no | Annual property tax as % of home value. Default 1.1. |
| annual_insurance | number | no | Homeowners insurance in dollars/year. Default max(800, 0.35% of home price). |
| monthly_hoa | number | no | HOA dues in dollars/month. Default 0. |
| pmi_rate | number | no | Annual PMI as % of loan balance. Default 0.5, applied only when LTV > 80%. |
| credit_score | number | no | Optional borrower credit score, used for the market-rate lookup. |
Compare 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| home_price | number | yes | Purchase price in dollars. Required. |
| monthly_rent | number | yes | Current monthly rent in dollars. Required. |
| down_payment | number | no | Cash down payment in dollars. Default 20% of home_price. |
| state | string | no | 2-letter US state code for the market-rate lookup. Default CA. |
| rate | number | no | Annual interest rate, e.g. 6.5. If omitted, best market rate for the state is used. |
| term_months | number | no | Loan term in months. Default 360. |
| holding_period_years | number | no | How many years you plan to own. Default 7. |
| property_tax_rate | number | no | Annual property tax as % of home value. Default 1.1. |
| annual_insurance | number | no | Homeowners insurance in dollars/year. Default max(800, 0.35% of home price). |
| monthly_hoa | number | no | HOA dues in dollars/month. Default 0. |
| pmi_rate | number | no | Annual PMI as % of loan balance. Default 0.5, applied only when LTV > 80%. |
| home_appreciation_rate | number | no | Annual home appreciation as %. Default 3.0. |
| rent_growth_rate | number | no | Annual rent growth as %. Default 3.0. |
| investment_return_rate | number | no | Opportunity cost return on invested savings as %. Default 5.0. |
| maintenance_rate | number | no | Annual maintenance as % of home value. Default 1.0. |
| selling_cost_pct | number | no | Selling costs as % of sale price. Default 6.0. |
| closing_cost_pct | number | no | Buying closing costs as % of home price. Default 3.0. |
| marginal_tax_rate | number | no | Marginal tax rate as %, used to model mortgage-interest/property-tax deduction. Default 0 (no deduction). |
For 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?
| Parameter | Type | Required | Notes |
|---|---|---|---|
| home_price | number | no | Purchase/appraised price. Required unless loan_amount given. |
| down_payment | number | no | Cash down, dollars. Default 0. |
| loan_amount | number | no | Optional explicit loan; overrides home_price - down_payment. |
| rate | number | no | Annual rate %, e.g. 6.5. Omit -> best market rate for state. |
| term_months | number | no | Loan term in months. Default 360. |
| state | string | no | 2-letter code for market-rate lookup. Default CA. |
| pmi_rate | number | no | Annual PMI as % of loan balance. Default 0.5. |
| credit_score | number | no | Optional, for market-rate lookup. |
| extra_monthly_payment | number | no | Optional extra principal/month to model faster cancel. Default 0. |
Check 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.
No parameter schema on file.
Get rollup stats for the account's rate monitors: total, active, and webhooks sent. Complements list_monitors.
No parameter schema on file.
Save 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client_name | string | yes | Client/scenario label, e.g. "Smith — $400k purchase, CA" |
| input | object | yes | The scenario inputs (product, amount, state, term, etc.) |
| result_snapshot | yes | The comparison result to store (object from get_financing_decision/compare_products) |
List saved client scenarios for the account, newest first.
No parameter schema on file.
Get a single saved scenario by id (inputs + stored comparison).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Scenario id |
Delete a saved scenario by id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Scenario id |
Recall 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| request_id | string | no | Optional: look up a specific decision by its request_id |
| limit | number | no | Max rows (default 20, max 100) |
| offset | number | no | Pagination offset |
Produce 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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenario_id | string | no | Optional: a saved scenario id to build the report from |
| client_name | string | no | Client label, if not using scenario_id |
| result | object | no | The comparison result to format, if not using scenario_id |
| advisor_name | string | no | Optional advisor/company name for the report header |
RECOMMENDED 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | yes | Type of financing product the quote is for. Pick mortgage_arm — NOT mortgage — whenever the user names an adjustable-rate mortgage: "ARM", "adjustable", or a slash pair like "5/1", "5/5", "7/1", " |
| state | string | yes | US state code (2-letter, e.g., CA, TX). Required. |
| rate | number | yes | The quoted interest rate as a percentage (e.g., 4.25). Required. |
| apr | number | no | The quoted APR as a percentage. Optional — falls back to rate if omitted. |
| fees | number | no | Quoted fees in dollars. Optional, used only for the note. |
| amount | number | no | Loan amount in dollars. Optional — also sharpens better-offer payment math. |
| term_months | number | no | Loan term in months. For MORTGAGES this selects which market the quote is scored against: pass 180 for a 15-year and 360 for a 30-year. 15-year rates run structurally lower, so omitting it on a 15-yea |
| include_better_offers | boolean | no | Set TRUE for negotiation questions. Adds better_offers: named lenders currently beating the quote, each with the APR gap in basis points, estimated monthly savings, and can_you_join (yes / likely |
| credit_score | number | no | Borrower's credit score (300-850). Optional; improves better-offer matching. |
| zip | string | no | Borrower ZIP code. Optional; sharpens membership eligibility and enables include_nearby_offers. |
| include_nearby_offers | boolean | no | Set true with zip to return product-matched rates from credit unions ranked by the closest NCUA-reported branch. Results include approximate straight-line miles, branch details, and the basis-point di |
| max_offers | number | no | How many better offers to return (1-5, default 3). Only applies with include_better_offers. |
Introspect 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_category | string | no | Optional. Restrict the matrix to one product category. Omit for all. |
| state | string | no | Optional 2-letter US state code to scope the matrix to a single state. |
| group_by | string | no | Optional segmentation axis. Default 'state'. |
| freshness_days | number | no | Optional uniform staleness window in days (1-90). OMIT to use per-category freshness windows — supplying a value overrides every category and is echoed back as freshness_mode=override. |
LENDER-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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | US state code (2-letter, e.g. CA, TX). Required. |
| product | string | yes | Mortgage product the lender publishes. Required. |
| rate | number | yes | The lender's OWN published note rate as a percentage (e.g. 6.49). Required. |
| apr | number | no | The lender's published APR. Optional — falls back to rate. |
Scan 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | US state code (2-letter, e.g., TX). Required. |
| credit_score | number | no | Borrower's credit score (300-850). Recommended for accurate matching. |
| debts | array | yes | List of existing debts to evaluate for refinancing. |
Loan-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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | 2-letter US state code, e.g. CA, TX, NY |
| product | string | yes | Mortgage product |
| limit | number | no | Top N lenders to return (default 10, clamped 1..50) |
| metric | string | no | Rank by apr (default) or rate |
| include_institution_context | boolean | no | Include compact NCUA member, location, asset, founding-year, and selected service facts per lender. |
Best/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/
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product | string | no | MCP field for the deposit product category. Use an exact enum value such as money_market; do not use REST field name product_category, mma, or money-market. Omit for all deposit types. |
| state | string | no | 2-letter US state code; omit for nationwide. |
| term_months | number | no | For CD/share_certificate/ira_cd: filter to a specific term (savings_term_months). |
| limit | number | no | Top N credit unions to rank (default 10, clamp 1..50). |
| metric | string | no | Deposits rank by APY, highest first. No APR. |
Deposit 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 /
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product | string | yes | Required MCP product field. Use one exact underscore enum value; money market is money_market, never mma or money-market. |
| term_months | number | no | — |
| state | string | no | 2-letter US state code |
| window | string | no | — |
| group_by | string | no | — |
| benchmark | string | no | — |
Explain 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | US state code (2-letter). Required. |
| product_type | string | no | Type of financing product. |
| intent | string | yes | The loan intent. |
| amount | number | yes | Loan amount in dollars. Required. |
| term_months | number | no | Loan term in months. |
| credit_score | number | no | Borrower's credit score (300-850). |
| max_providers | number | no | Maximum number of lenders to explain (1-5). Defaults to 5. |
Run 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenario | object | yes | The fixed financing scenario. |
| sweep | object | yes | The input to sweep and its range. |
Build 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| loan_amount | number | yes | Loan principal in dollars (required, > 0). |
| term_months | number | yes | Loan term in months, e.g. 360 or 180 (required). |
| rate | number | no | Annual interest rate as a percent (e.g. 6.5). If omitted, the market rate is resolved from real credit-union offers via the decision engine. |
| product_type | string | no | Loan product; required only when rate is omitted. Default mortgage. |
| state | string | no | 2-letter US state code; required only when rate is omitted (for market-rate lookup). |
| credit_score | number | no | Optional borrower credit score used to qualify the market offer. |
| extra_monthly_payment | number | no | Optional extra principal paid each month. Drives the payoff-acceleration analysis (months saved, interest saved). |
| extra_one_time_payment | number | no | Optional one-time extra principal payment. |
| schedule_granularity | string | no | Schedule row granularity. Default year. |
Apples-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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | yes | Loan product to rank |
| state | string | yes | 2-letter US state |
| intent | string | no | default purchase |
| amount | number | yes | Loan principal |
| term_months | number | no | — |
| credit_score | number | no | — |
| down_payment_percent | number | no | — |
| holding_period_months | number | no | Horizon for total-cost; defaults to term_months |
| fees | object | no | — |
| max_lenders | number | no | cap on ranked rows (default 10, max 25) |
Score 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | Optional 2-letter default state applied to scenarios lacking one |
| credit_score | number | no | Optional default credit score applied to scenarios lacking one |
| max_providers | number | no | Top-N offers returned per scenario (default 3) |
| scenarios | array | yes | Inline scenarios to score in one stateless call (no persisted cohorts). |
Compare 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | yes | Type of financing product. Required. |
| state | string | yes | US state code (2-letter, e.g., CA, TX). Required. |
| since | string | no | How far back to compare against. Defaults to "1w". |
List 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | no | — |
| state | string | no | 2-letter US state code; omit for all states |
| lender | string | no | Filter by credit-union name (substring, case-insensitive) |
| term_months | number | no | — |
| loan_program | string | no | — |
| audience | string | no | WHO the product is for, orthogonal to product type: 'business' returns business-audience products across every category (DSCR mortgages, business deposits, SBA loans); 'consumer' excludes them. |
| min_apr | number | no | — |
| max_apr | number | no | — |
| sort | string | no | Default apr_asc |
| limit | number | no | 1-500, default 50 |
| offset | number | no | Pagination offset, default 0 |
Historical 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | yes | Type of financing product. Required. |
| state | string | yes | US state code (2-letter, e.g., CA, TX). Required. |
| window | string | no | Lookback window. Default "90d". Bounded by data retention. |
| interval | string | no | Bucket granularity per point. Default "week". |
| vehicle_condition | string | no | auto_loan only; selects the benchmark bucket. Default "new". |
Frame 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | yes | Loan product |
| state | string | yes | 2-letter US state code |
| loan_amount | number | yes | Loan amount in dollars — drives break-even sensitivity |
| term_months | number | no | Loan term in months (default 360 for mortgage) |
| current_rate | number | no | Borrower's existing or quoted rate %, enables refi-now framing |
| closing_costs | number | no | Closing/refi costs in dollars (default 0) |
| rate_shift_bps | number | no | Hypothetical bps move if waiting; default derived from observed movement |
| since | string | no | Movement window (default 4w) |
Lock-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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| product_type | string | yes | — |
| state | string | yes | 2-letter state code |
| loan_amount | number | yes | — |
| lock_expiration_date | string | yes | ISO date YYYY-MM-DD |
| locked_rate | number | yes | % already locked |
| float_down_cost | number | no | $ to exercise float-down; default 0 |
| float_down_rate | number | no | optional explicit floated rate % |
| float_down_bps | number | no | optional improvement in bps if float_down_rate omitted |
| term_months | number | no | default 360 |
| since | string | no | movement window; default 4w |
Run 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenario | object | yes | The borrower scenario. |
| recommendation | object | no | Optional recommended offer to evaluate. |
Save 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Cohort name, e.g. "Q2 refi prospects". Required. |
| members | array | yes | List of cohort members (max ~50). |
List 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.
No parameter schema on file.
Get a single saved cohort by id, including all members and the last scan snapshot (triage list).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Cohort id. Required. |
Permanently delete a saved cohort by id. This action cannot be undone.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Cohort id. Required. |
Re-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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Cohort id to scan. Required. |
Turn 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| scenario_id | string | yes | The saved scenario id to mint a share link for. Required. |
List 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.
No parameter schema on file.
Revoke 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | The share token to revoke. Required. |
Set 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cohort_id | string | yes | The cohort to scan on a schedule (from list_cohorts). |
| string | yes | Where to send the digest. | |
| cadence | string | no | weekly (default) or daily. |
List the account's scheduled digests (cohort, email, cadence, enabled, last run).
No parameter schema on file.
Delete a scheduled digest by id. Stops the recurring email.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The digest id to delete. |
Set 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.)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| display_name | string | no | The lender/brand name shown as the email sender and advertiser. |
| brand_color | string | no | Accent color as a #hex string (e.g. #00b368). |
| logo_background_color | string | no | Solid backdrop behind the logo in the email header, as a 6-digit #hex (e.g. #0d1b2a). Useful when the logo is white. Omit or null for the white default. |
| intro_text | string | no | Default intro paragraph for campaign emails. |
| business_address | string | no | Physical mailing address of the advertiser (CAN-SPAM). |
| reply_to_email | string | no | Optional Reply-To address for campaign emails. |
Get the organization's current email branding (display name, logo URL, brand color, intro, business address, reply-to).
No parameter schema on file.
Create 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Campaign label. Required. |
| state_code | string | no | Legacy single 2-letter US state code (e.g. CA). Prefer state_codes or region for multi-state coverage. |
| state_codes | array | no | 2-letter US state codes (up to 25) — best rates are ranked ACROSS all of them, not per state. |
| region | string | no | Named region preset (e.g. east_coast); expands server-side to its member states. |
| products | array | no | 1-5 products to feature (no duplicates). Each is {category:'mortgage', subtype:'30-year-fixed'|'15-year-fixed'}, {category:'auto', condition:'new'|'used'|'any', term_months?:36|48|60|72|84}, or {categ |
| cadence | string | no | Send cadence (default weekly). |
| intro_text_override | string | no | Per-campaign intro; falls back to branding intro_text. |
List the organization's branded rate-email campaigns (name, criteria, cadence, status, last run).
No parameter schema on file.
Update 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,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Campaign id. Required. |
| name | string | no | — |
| state_code | string | no | Legacy single 2-letter US state code. Prefer state_codes or region. |
| state_codes | array | no | 2-letter US state codes (up to 25) — best rates are ranked ACROSS all of them, not per state. |
| region | string | no | Named region preset (e.g. east_coast); expands server-side to its member states. |
| cadence | string | no | — |
| intro_text_override | string | no | — |
| products | array | no | Full replacement product set (1-5, no duplicates); same shapes as create_email_campaign. |
| status | string | no | — |
Delete a branded rate-email campaign and its recipients. This cannot be undone.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Campaign id. Required. |
Add recipients (email + optional name) to a campaign. Up to 50 per request, 200 per campaign. Duplicate addresses are ignored.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Campaign id. Required. |
| recipients | array | yes | Recipients to add. |
Remove one recipient from a campaign by recipient id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Campaign id. Required. |
| recipient_id | string | yes | Recipient id. Required. |
Send 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Campaign id. Required. |
Send 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 }.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Campaign id. Required. |
Subscribe 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | Consumer email address to send the alert to. Required. | |
| state | string | no | Legacy single US state code (2-letter, e.g., CA, TX, NY). Prefer states or region for multi-state alerts. |
| states | array | no | 2-letter US state codes (up to 25) — best rates are ranked ACROSS all of them, not per state. |
| region | string | no | Named region preset (e.g. east_coast); expands server-side to its member states. |
| product_type | string | yes | Type of loan product. Required. |
| intent | string | yes | The loan intent. Required. |
| amount | number | no | Loan amount in dollars. Optional. |
| term_months | number | no | Loan term in months (12-480). Optional. |
| credit_score | number | no | Credit score (300-850). Optional. |
| target | object | yes | The condition that triggers the alert. Required. |
List the rate alerts subscribed for a given email (status, product, state, intent, target, last notified).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | The email whose alerts to list. Required. |
One-click unsubscribe via the per-alert token embedded in every email.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | The unsubscribe token from the email. Required. |
DOCS: 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?", "
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | What you want to know about the API, in plain words (e.g. "oauth", "how fresh are rates", "429 error"). |
| limit | number | no | Maximum pages to return (1-12). Defaults to 5. |
DOCS: 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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | no | The page identifier returned by search_docs. |
| url | string | no | Alternatively, the canonical published URL of the page. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install RateAPI — live US mortgage, auto, HELOC, personal & deposit or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish RateAPI — live US mortgage, auto, HELOC, personal & deposit can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.