The RateScan.in API

A free, open JSON API over 280 banks and 8079 deposit rates — no key, CORS-open, CC-BY 4.0.

A free, open, read-only JSON API over every rate on RateScan.in — 280 banks and 8079 deposit rates with their official-source provenance. It's a set of static files on a CDN: no key, no rate limit, CORS-open, and safe to call from the browser. Licensed CC-BY 4.0 — free to use with attribution.

Base URL https://ratescan.in/api/v1/ · Format JSON · Freshness rebuilt whenever the dataset refreshes; every response carries generatedAt and a content build hash.

Endpoints

All relative to the base URL above

MethodPathReturns
GETmanifest.jsonSelf-describing index of every endpoint + counts + license.
GETopenapi.jsonOpenAPI 3.1 spec — the machine contract (import into agents, GPT Actions, codegen).
GETbanks.jsonAll banks (id, name, category, website, health metrics).
GETrates.jsonEvery rate row with full source provenance.
GETbanks/{bankId}.jsonOne bank's metadata + all of its rates.
GETbest/{product}.jsonTop 25 banks for a product — fd, rd, savings, nre_fd, fcnr_fd.

Building a tool or agent? Import the OpenAPI 3.1 spec for a typed, callable contract.

The best/ endpoints mirror the homepage default: domestic products (FD/RD/Savings) are limited to mainstream sectors — public, private & small finance banks (each response states its sectorFilter); NRI products (NRE/FCNR) include all. For every category and every rate, use rates.json.

The complete dataset and daily history are also available as single files: https://ratescan.in/data/dataset.json and https://ratescan.in/data/history.json.

Examples

Best fixed-deposit rates right now:

curl -s https://ratescan.in/api/v1/best/fd.json

Everything for one bank (e.g. SBI):

curl -s https://ratescan.in/api/v1/banks/sbi.json

Discover all endpoints:

curl -s https://ratescan.in/api/v1/manifest.json

Response shape

Every rate carries its provenance so you can trace it to the bank's own page:

{
  "bankId": "sbi", "product": "FD", "customer": "GENERAL",
  "ratePercent": 6.8,
  "tenure": { "minDays": 365, "maxDays": 729, "label": "1y to <2y" },
  "amount": { "minAmount": 0, "maxAmount": null, "label": "Any amount" },
  "source": {
    "url": "https://sbi.co.in/...", "effectiveDate": "2026-04-01",
    "quality": "OFFICIAL", "ingestedAt": "2026-10-03", "checkedAt": "2026-10-05"
  }
}

Filtering & nuances

How to query a static API — and the things to know before you rely on it

There are no query parameters — you filter client-side

This is a static API: flat JSON files on a CDN, not a query server. So ?product=FD&state=MH does nothing. Instead, fetch the collection that's closest to what you want and filter in your own code. The files are small and cacheable, so this is fast:

# Best 1-year FD for senior citizens, among public-sector banks (jq)
curl -s https://ratescan.in/api/v1/rates.json \
  | jq '[.rates[]
      | select(.product=="FD" and .customer=="SENIOR")
      | select(.tenure.minDays<=365 and (.tenure.maxDays==null or .tenure.maxDays>=365))]
      | sort_by(-.ratePercent)'

Fields you filter on

FieldValuesNotes
productFD, RD, SAVINGS, NRE_FD, FCNR_FDDeposit type.
customerGENERAL, SENIOR, SUPER_SENIOREach tier is a separate row; SENIOR/SUPER_SENIOR appear only where the bank offers a premium.
tenure{minDays, maxDays, label}A band. maxDays: null means open-ended ("and above"). Match a target day T with minDays ≤ T ≤ maxDays.
amount{minAmount, maxAmount, label}Deposit-size slab. maxAmount: null = any amount. Most banks tracked at the retail (< ₹3 crore) slab.
currencyUSD, GBP, EUR, …FCNR_FD only. Absent on all other products.
bank.categoryPUBLIC, PRIVATE, SMALL_FINANCE, PAYMENTS_BANK, FOREIGN, REGIONAL_RURAL, GOVERNMENT, STATE_COOP, DISTRICT_COOPOn the bank, not the rate — join via bankId (or use banks.json).
bank.states["ALL"] or state codesCo-op / regional banks may serve only certain states; ["ALL"] = pan-India.

Nuances worth knowing

Terms

Open under CC-BY 4.0 — attribute "RateScan.in" with a link to https://ratescan.in. Data is informational only; always confirm on the bank's official page before investing. No uptime guarantee — this is a free static endpoint.