SwitchWize for AI

Verified financial intelligence for AI

Give agents live rates, savings-gap answers, card offer intelligence, and CD maturity rules through18 read-only tools. Every response includes source, freshness, and attribution context.

Read-only by design
No API key required
Freshness on every response
Official sources where available

Useful before technical

Build answers people can act on

Savings gap

What is my bank costing me?

Compare a balance with current market rates and quantify the annual gap.

Best next move

Where is the strongest verified offer?

Surface current rates and card offers with timestamps and source links.

Maturity decision

What happens when my CD matures?

Explain rollover defaults, grace periods, and verified opt-out instructions.

Live playground

Ask a useful financial question

These examples call the same read-only tools available through our hosted MCP server. No account, API key, or financial credentials are required.

Choose a workflow

Tool call

get_bank_gap
{
  "name": "get_bank_gap",
  "arguments": {
    "bank": "Chase",
    "balance": 25000
  }
}

Results include freshness, attribution, and source metadata so an agent can explain where its answer came from.

60-second proof

Choose your AI client, then verify one answer

Connect the public read-only endpoint, ask one decision question, and check that the answer includes a source and freshness context.

1. ChatGPT

Add a custom connector

In ChatGPT, turn on Developer mode under Settings → Security & login. Then open Plugins, choose Add, and enter this public MCP URL.

https://www.switchwize.com/api/mcp

2. Verify the connection

Ask this exact question

“What could $25,000 at Chase be missing each year? Include the source and freshness of the rates you use.”

Success looks like a quantified answer backed by current rate observations, with source and freshness metadata—not an unsupported recommendation.

Versions and changes

What each tool is, and how stable it is

Every tool has a version number. 10 of 18 are stable: the fields in the answer will not change without a new major version and 30 days of notice here. The rest are beta: the data is still being filled in, so the shape of the answer may change. Every answer also carries asOf (the date of the data, or null), source, attribution and toolMeta (this version and stability).

ToolVersionStatusWhere the data comes from
get_top_rates
Top Rates
1.2.0stableEditor-approved deposit snapshots; mortgage from tracked rate observations
get_top_hysa_rates
High-Yield Savings Rates
1.2.0stableEditor-approved high-yield savings snapshot
get_bank_gap
Bank Savings Gap
1.0.0stableTracked savings rates and the national savings benchmark
compare_switch_savings
Compare Savings Rates
1.0.0stableTracked savings rates
get_rate_freshness
Data Freshness
1.0.0stableSwitchWize collection logs per data category
get_index_dataset
Index Dataset
1.0.0stableSwitchWize monthly index series
get_bank_gap_index
Bank Gap Index
1.0.0stableBank Gap Index monthly release
get_reality_score
Card Reality Score
1.0.0betaCard Reality Index (SwitchWize model over issuer-published terms)
get_card_offers
Card Offers
1.0.0stableIssuer pages, with a verification timestamp on every row
get_transfer_bonuses
Transfer Bonuses
1.0.0stableIssuer and program pages, with best-ever-for-route history
get_card_changes
Card Changes
1.0.0stableDetected fee and APR changes on issuer pages
get_reward_valuations
Reward Valuations
1.0.0betaAward Scout observations; values stay provisional until 60 observations per currency
best_move_this_week
Best Move This Week
1.0.0betaCombines card, transfer bonus and savings data for one person's inputs
get_cd_rollover_rules
CD Rollover Rules
1.0.0betaEach bank's own CD disclosure; unverified fields are null, never guessed
get_card_downgrade_path
Card Downgrade Path
1.0.0betaEach issuer's own product-change disclosure; unverified cards are not listed
get_fed_hike_pass_through
Fed Hike Pass-Through
1.0.0betaBank savings rates before and after the latest Federal Reserve move
compare_accounts
Compare Accounts
1.0.0betaEditor-approved deposit snapshots
business_card_cost
Business Card Cost
1.0.0betaIssuer pages read and quoted by a reviewer

Changelog

get_top_rates v1.2.0
  • 1.2.0 (2026-10-09) Added detail=full for savings: every listed account marked verified or tracked, best picks, movers and history.
  • 1.1.0 (2026-10-01) Savings, CDs, checking and money market answer only from an approved snapshot. A category with no release returns no ranked rates and says approval_status: not_yet_approved.
  • 1.0.0 (2026-08-11) Original release (hosted MCP launch, versioned afterwards). Ranked rates with freshness and attribution.
get_top_hysa_rates v1.2.0
  • 1.2.0 (2026-10-09) Added detail=full: every listed account marked verified or tracked, best picks, movers and history.
  • 1.1.0 (2026-10-01) Answers only from the approved snapshot; before its first release it returns no ranked rates.
  • 1.0.0 (2026-08-11) Original release (hosted MCP launch, versioned afterwards). Top high-yield savings rates.
get_bank_gap v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Savings interest given up for a balance and an optional bank.
compare_switch_savings v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Your APY against the current top savings APY for a balance.
get_rate_freshness v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Freshness status and affected routes per data source.
get_index_dataset v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Dated monthly series for each SwitchWize index.
get_bank_gap_index v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Latest Bank Gap Index with top bank gaps.
get_reality_score v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Reality Score for a card and spending segment. Beta: the scoring model is still being tuned.
get_card_offers v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Current welcome offers on tracked cards.
get_transfer_bonuses v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Active point-transfer bonuses.
get_card_changes v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Recent card term changes, most recent first.
get_reward_valuations v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Cents-per-point ranges. Beta: most currencies are still below the publish threshold and are labelled provisional.
best_move_this_week v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. One suggested move for a wallet and savings balance. Beta: the ranking rules may change.
get_cd_rollover_rules v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. What a bank does automatically at CD maturity. Beta: institution coverage is still growing.
get_card_downgrade_path v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Verified no-fee downgrade targets and fee-refund windows. Beta: card coverage is still growing.
get_fed_hike_pass_through v1.0.0
  • 1.0.0 (2026-10-31) First versioned release. Share of the latest Fed move each bank passed to savers. Beta: tied to one rate move at a time.
compare_accounts v1.0.0
  • 1.0.0 (2026-11-01) Compare two to five named banks for a balance, on approved rates only.
business_card_cost v1.0.0
  • 1.0.0 (2026-11-01) Yearly rewards minus fees for four small-business cards; unverified fees are never shown as zero.

Limits and the Data API

How much you can call, and where to get bigger feeds

The hosted MCP endpoint allows 60 requests a minute from one address. Go over and you get a 429 reply with a Retry-After header: wait that long and try again. No key is needed. The public rates API is cached for about an hour, so calling it more often than that returns the same numbers.

Way inKeyLimit
MCP: /api/mcpNone60 per minute per address
Data API, public datasets: /api/v1None60 per minute per address
Data API, partner keyswk_...600 per minute

The Data API is for programs that need a steady feed. See the dataset catalog and the OpenAPI file. Every reply has the same shape: apiVersion, asOf, attribution and the data. Partner keys are issued by email to editorial@switchwize.com.

Citing our data

How to cite SwitchWize data

Use the wording below in articles, reports and AI answers. Replace the bracket with the day you viewed the page.

Reference list

SwitchWize, "Citibank CD rates," https://www.switchwize.com/banks/citibank/cd-rates, accessed [date you viewed the page].

Inside a sentence

Citibank CD rates (SwitchWize, accessed [date you viewed the page])

Web link

<a href="https://www.switchwize.com/banks/citibank/cd-rates">SwitchWize: Citibank CD rates</a>, accessed [date you viewed the page]

  • Name SwitchWize and link to the exact page you used, not only the home page.
  • Write the date you viewed the page. Rates change, so the date is part of the fact.
  • Quote the figure and the date shown on the page. Do not round a rate into a different claim.
  • For machine use, keep the attribution field that every API and MCP response returns.

Find SwitchWize in MCP directories

Copy-paste prompts

Ask your agent one of these

Paste any of these into an agent connected to the hosted MCP endpoint or npm package above. Each maps to one or two of the 16 tools.

“Compare the best current savings rates and tell me how fresh each observation is.”

“Estimate my annual loss from keeping $25,000 at Chase.”

“Which of my cards should I use for dining, groceries, and travel this week?”

“Show active transfer bonuses, but only make best-ever claims when enough history exists.”

“What happens if I let my CD renew automatically?”

Connect in minutes

One endpoint, or one npm command

The hosted endpoint is the no-setup path: rate-limited, no secrets, works for anyone. The stdio package and Claude Desktop config below are for running against your own SwitchWize checkout.

Hosted MCP

Remote endpoint

https://www.switchwize.com/api/mcp

In Claude, open Settings → Connectors → Add custom connector, then paste this URL. Tool discovery and calls use the standard Streamable HTTP transport.

Local clients

Claude Desktop / stdio

{
  "mcpServers": {
    "switchwize": {
      "command": "npx",
      "args": ["-y", "switchwize-mcp"]
    }
  }
}

This published package is a thin stdio proxy to SwitchWize's public API. It needs only Node.js and network access—no SwitchWize account, API key, repository checkout, or database credentials. Use the hosted endpoint above when your client supports remote Streamable HTTP; use this configuration when it supports local stdio servers.

Coding clients

Cursor

// .cursor/mcp.json
{
  "mcpServers": {
    "switchwize": {
      "url": "https://www.switchwize.com/api/mcp"
    }
  }
}

Cursor connects directly to the hosted Streamable HTTP endpoint, no npm install needed. Other MCP-aware coding clients (Windsurf, Cline) use the same config shape.

OpenAI Responses API

Call the remote server from an application

const response = await client.responses.create({
  model: "gpt-5",
  tools: [{
    type: "mcp",
    server_label: "switchwize",
    server_url: "https://www.switchwize.com/api/mcp",
    require_approval: "never",
    allowed_tools: ["get_bank_gap", "get_top_rates"]
  }],
  input: "What could $25,000 at Chase be missing each year?"
})

Need the raw data instead?

The MCP tools are built on the public endpoints below. Use the REST API, datasets, spreadsheet integrations, or embeds directly with attribution as “SwitchWize (switchwize.com).” Commercial use is subject to our terms.

Public rates API

Top live rates as JSON. Auth-free, CORS-open, edge-cached (~1 hour). Categories: savings, cds, money-market, checking, mortgage. Optional ?limit= (1–25, default 8). The same contract is also available at /savings.json, /cds.json, /money-market.json, /checking.json, and /mortgage.json.

GET https://www.switchwize.com/api/public/rates/savings?limit=5

{
  "schemaVersion": "2026-07-01",
  "id": "rates:savings",
  "category": "savings",
  "rate_type": "APY",
  "count": 5,
  "asOf": "2026-07-02T14:31:00.644Z",
  "generatedAt": "2026-07-02T14:58:28.955Z",
  "freshnessStatus": "fresh",
  "attribution": "SwitchWize (https://www.switchwize.com)",
  "attributionDetails": {
    "requiredText": "SwitchWize (switchwize.com)"
  },
  "sourceDetails": {
    "method": "rate_observations"
  },
  "rates": [
    { "rank": 1, "institution": "...", "product": "...", "rate": 4.40, "rate_type": "APY", "observed_at": "2026-07-02T14:31:00.644Z", "verified_at": null, "source_url": null, "source_type": "aggregator", "fdic_insured": null }
  ]
}

Google Sheets & Excel

Pull live rates straight into a spreadsheet instead of copying numbers by hand. Both approaches call the same rates API above, so they stay live on every refresh.

Excel & Power BI (Power Query)

Data tab → Get Data → From Other Sources → Blank Query, then open the Advanced Editor and paste:

let
    Source = Json.Document(Web.Contents("https://www.switchwize.com/api/public/rates/savings")),
    rates = Source[rates],
    Table1 = Table.FromRecords(rates)
in
    Table1

Swap savings for cds, money-market, checking, or mortgage. Set the query to refresh on open (Query Properties → Refresh data when opening the file) to keep it live.

Google Sheets (Apps Script)

Sheets’ built-in IMPORTDATA only reads flat CSV/TSV, not JSON, so this needs a short custom function instead. Extensions → Apps Script, paste this, save, then use =SWITCHWIZE_RATES("savings") in any cell:

function SWITCHWIZE_RATES(category, limit) {
  var url = "https://www.switchwize.com/api/public/rates/" + category + "?limit=" + (limit || 5);
  var data = JSON.parse(UrlFetchApp.fetch(url).getContentText());
  var rows = data.rates.map(function(r) {
    return [r.rank, r.institution, r.product, r.rate, r.rate_type];
  });
  return [["Rank", "Institution", "Product", "Rate", "Type"]].concat(rows);
}

Read-only data tools

Agent-callable helper tools expose the same public data contracts. Tools are read-only and return freshness, source, and attribution metadata.

GET https://www.switchwize.com/api/public/tools

POST https://www.switchwize.com/api/public/tools/get_top_rates
{ "category": "savings", "limit": 5 }

POST https://www.switchwize.com/api/public/tools/compare_switch_savings
{ "currentApy": 0.01, "balance": 25000 }

POST https://www.switchwize.com/api/public/tools/get_bank_gap_index
{}

POST https://www.switchwize.com/api/public/tools/get_reality_score
{ "card": "platinum-card", "segment": "small-business-owner" }

The same tools are also available as a hosted MCP (Model Context Protocol) server at https://www.switchwize.com/api/mcp — add it as a remote MCP server in any MCP-compatible client, no local setup required. For local clients, the repository also ships a stdio MCP server inpackages/mcp-server. Start it with npm run mcp:start and verify the protocol handshake with npm run mcp:smoke.

The MCP server also exposes two stable resources for rate methodology and the public-data contract, plus guided prompts for verifying a current rate and comparing a savings-account switch. Prompts direct clients to fetch live tool results rather than treating a static prompt as rate evidence.

Embeddable widgets

Drop a live rate table or index figure into any page with an iframe. Widgets are self-contained and carry a backlink to SwitchWize.

<!-- Top rates table -->
<iframe src="https://www.switchwize.com/embed/rates/savings"
        width="440" height="320" style="border:0" loading="lazy"></iframe>

<!-- Index figure -->
<iframe src="https://www.switchwize.com/embed/indices/cd-spread"
        width="440" height="200" style="border:0" loading="lazy"></iframe>

<!-- Optional: auto-fit iframe heights to their content -->
<script>(function(){window.addEventListener("message",function(e){if(e.origin!=="https://www.switchwize.com")return;var d=e.data;if(!d||d.type!=="sw-embed-resize")return;var f=document.getElementsByTagName("iframe");for(var i=0;i<f.length;i++){if(f[i].contentWindow===e.source){f[i].style.height=d.height+"px";break;}}});})();</script>

Citable datasets

Dated monthly time series for each SwitchWize index, as machine-readable JSON with Dataset schema. JSON datasets include schemaVersion, asOf, freshnessStatus, and a series array.

Credit card data feeds

Current-state and event feeds for SwitchWize's tracked credit card catalog, refreshed hourly. Every row carries a real verification timestamp (verifiedAt or observedAt) and a sourceUrl.

Deposit and card decision data

What happens automatically at CD maturity, and which credit cards have a verified no-fee downgrade path — sourced directly from each institution's own disclosure, refreshed hourly. A field or card not listed has been checked and not confirmed, never assumed absent.

Rates are collected from official provider pages where available and cross-checked against trusted sources. Data is provided as-is for informational use; verify with the provider before acting. Questions: editorial@switchwize.com.