Bankrate API: List best savings, CD or money market rates
Lists Bankrate's current high-yield savings, CD (for a chosen term) or money market account rates in Bankrate's listed order, with APY, minimum deposit and whether the listing is sponsored.
Unofficial. Not affiliated with or endorsed by Bankrate.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Cd Term optional
cd_term CD term when product is cd, for example 1_year.
1_year
One of
3_months,6_months,1_year,18_months,2_years,3_years,5_years. Default1_year.- Product optional
product Account type to list, for example high_yield_savings.
cd
One of
high_yield_savings,cd,money_market. Defaulthigh_yield_savings.- Max Results optional
max_results Maximum accounts to return, for example 15.
15
Whole number from 1 to 50. Default
15.
Input as JSON
{ "cd_term": "1_year", "product": "cd", "max_results": 15}Output
{ "accounts": [ { "term": "1 year", "bank_name": "E*TRADE", "page_link": "https://www.bankrate.com/banking/cds/cd-rates/" , "sponsored": true, "apy_percent": 4.35, "account_name": "E*TRADE Certificate of Deposit", "minimum_deposit_usd": 0 }, { "term": "1 year", "bank_name": "BTG Pactual Bank", "page_link": "https://www.bankrate.com/banking/reviews/btg-pactual/" , "sponsored": false, "apy_percent": 4.45, "account_name": "1 Yr CD", "minimum_deposit_usd": 500 }, { "term": "1 year", "bank_name": "EagleBank", "page_link": "https://www.bankrate.com/banking/cds/cd-rates/" , "sponsored": false, "apy_percent": 4.45, "account_name": "1 Yr CD", "minimum_deposit_usd": 1000 } ], "as_of_date": "2026-09-29"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"bankrate.com/list_best_savings_rates","input":{"cd_term":"1_year","product":"cd","max_results":15}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "bankrate.com/list_best_savings_rates" , "input": { "cd_term": "1_year", "product": "cd", "max_results": 15 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "bankrate.com/list_best_savings_rates" , "input": { "cd_term": "1_year", "product": "cd", "max_results": 15 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run bankrate.com/list_best_savings_rates# with {"cd_term":"1_year","product":"cd","max_results":15}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "cd_term": { "enum": [ "3_months", "6_months", "1_year", "18_months", "2_years", "3_years", "5_years" ], "type": "string", "default": "1_year", "description": "CD term when product is cd, for example 1_year." }, "product": { "enum": [ "high_yield_savings", "cd", "money_market" ], "type": "string", "default": "high_yield_savings", "description": "Account type to list, for example high_yield_savings." }, "max_results": { "type": "integer", "default": 15, "maximum": 50, "minimum": 1, "description": "Maximum accounts to return, for example 15." } }}Output schema
{ "type": "object", "required": [ "as_of_date", "accounts" ], "properties": { "accounts": { "type": "array", "items": { "type": "object", "required": [ "bank_name", "account_name", "apy_percent", "minimum_deposit_usd", "sponsored", "page_link" ], "properties": { "term": { "type": "string", "description": "CD term; present only on CDs." }, "bank_name": { "type": "string", "description": "Bank or credit union name." }, "page_link": { "type": "string", "description": "Bankrate page for this account or its rate listing." }, "sponsored": { "type": "boolean", "description": "Whether Bankrate marks this account as a sponsored listing." }, "apy_percent": { "type": "number", "description": "Annual percentage yield, in percent." }, "account_name": { "type": "string", "description": "Account name." }, "minimum_deposit_usd": { "type": [ "number", "null" ], "description": "Minimum opening deposit in US dollars, or null if not provided." } }, "additionalProperties": false }, "description": "Accounts in Bankrate's listed order." }, "as_of_date": { "type": "string", "format": "date", "description": "Date the listed rates were retrieved (YYYY-MM-DD)." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
bankrate.com/list_best_savings_rates- Returns
- as-of date; bank, account, APY, minimum deposit, sponsored flag, page link, CD term
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method bankrate.com/list_best_savings_rates with the inputs above.
Ask your agent
- What are the top high-yield savings account APYs on Bankrate right now? Show me the top 10 with minimum deposits.
- I have $20k I won't need for about 18 months — which banks are paying the best 18-month CD rates today, and which listings are sponsored?
- Compare current money market account rates: bank name, APY and minimum opening deposit, top 25.
- Pull Bankrate's list of the best 5-year CD rates as of today, flagging any paid placements.
- Which 6-month CDs have the highest APY at the moment? Just give me the top 5.
See more
All Bankrate methodsGets Bankrate's published mortgage or refinance interest rates and APRs by loan type, with the as-of date of the rate table. A ZIP code or state picks the matching state page; Bankrate describes these tables as national averages. Weekly changes are included only when Bankrate publishes a matching change.
bankrate.com/get_mortgage_ratesReturns Freddie Mac's U.S. 30-year and 15-year fixed mortgage rates for the latest survey or a chosen date, with weekly and year-ago changes, and optionally a weekly history for a date range.
freddiemac.com/get_mortgage_ratesGets current government bond yields from Investing.com's world government bonds table, optionally filtered by country and maturity term.
investing.com/get_bond_yieldsReturns the ECB's current deposit facility, main refinancing operations and marginal lending facility rates with their effective date. Optionally includes earlier rate changes, newest first.
ecb.europa.eu/get_key_interest_ratesLists featured launches in Product Hunt's daily leaderboard order for a given US Pacific day, with each product's website when its public page shows one.
producthunt.com/list_launchesGets official daily Treasury par yield curve rates for a date, or the latest published date on or before it.
home.treasury.gov/get_treasury_yieldsLists the highest-Metascore games, movies or TV shows on Metacritic for a release year or all time. You can filter by genre, and by platform for games.
metacritic.com/list_best_reviewedLists ranked Android apps or games from the Google Play top free, top paid or top grossing chart for a country and category.
play.google.com/list_top_charts