DEV Community

viraj geeth
viraj geeth

Posted on Originally published at allratestoday.com

The RBI Reference Rate in Python and Google Sheets, From One URL (No API Key)

If you work with a finance team in India, someone copies the RBI reference rate into a spreadsheet every afternoon: USD/INR for export invoices, EUR and GBP for vendor payments, the month-end rate for book closing. This post replaces that with one URL.

Who publishes it

Since 10 July 2018 the reference rate has been computed and announced by Financial Benchmarks India Ltd (FBIL), once per Mumbai business day at about 13:30 IST. The RBI lists the same figures in its Reference Rate Archive, so the "RBI rate" and the "FBIL rate" are the same numbers. There is no rate on weekends or Mumbai bank holidays.

The URL

https://allratestoday.com/api/open/central-bank/rbi?format=csv
Enter fullscreen mode Exit fullscreen mode
rate_date,base,quote,rate_type,value
2026-10-14,AED,INR,reference,25.8734
2026-10-14,EUR,INR,reference,106.5264
2026-10-14,GBP,INR,reference,126.0969
2026-10-14,IDR,INR,reference,0.00530858
2026-10-14,JPY,INR,reference,0.6003
2026-10-14,USD,INR,reference,95.0317
Enter fullscreen mode Exit fullscreen mode

Six currencies against the rupee, with the publication date on every row. No key, no sign-up; it is free with a visible link back to the source. (JPY is per 1 yen. The RBI prints it per 100.)

Python

One pair as JSON, standard library only:

import json, urllib.request

url = "https://allratestoday.com/api/open/central-bank/rbi?source=USD&target=INR"
data = json.load(urllib.request.urlopen(url))
print(data["rate_date"], data["rate"])   # 2026-10-14 95.0317
Enter fullscreen mode Exit fullscreen mode

The whole table with pandas:

import pandas as pd

df = pd.read_csv("https://allratestoday.com/api/open/central-bank/rbi?format=csv",
                 encoding="utf-8-sig")   # strips the BOM Excel needs
print(df[["rate_date", "base", "value"]])
Enter fullscreen mode Exit fullscreen mode

Google Sheets

=VLOOKUP("USD", QUERY(IMPORTDATA("https://allratestoday.com/api/open/central-bank/rbi?format=csv"), "select Col2, Col5"), 2, FALSE)
Enter fullscreen mode Exit fullscreen mode

Swap "USD" for "EUR", "GBP", "JPY", "AED" or "IDR". Keep the date next to it so every figure says which day's rate it is:

=INDEX(IMPORTDATA("https://allratestoday.com/api/open/central-bank/rbi?format=csv"), 2, 1)
Enter fullscreen mode Exit fullscreen mode

Excel works too through Data → Get Data → From Web with the same URL; the full guide has the steps.

Past dates

The open URL always returns the latest table. For an invoice date, a month-end, or a series back to 2003 there are dated endpoints that need a free key. They are listed on the RBI exchange rate API page, and a holiday date returns the previous business day's rate labelled with its real publication date.

Top comments (0)