MAS Exchange Rate History: Download Singapore Dollar Rates 1988 to 2026 as CSV, Excel or API

Reviewed by Madhushan, Fintech Developer — November 2026

The Monetary Authority of Singapore (MAS) offers its exchange rates through a web form: choose a frequency, a period and currencies, then download. That works for one request. For a GST policy review, a functional-currency tax computation or a pricing model you want the whole series in one place. This guide points to it and shows how to use it.

What MAS itself provides

The MAS exchange rate viewer returns yearly, monthly, weekly or daily figures from 1988 for 21 currencies. Daily figures are values as of noon and are released at 3 pm on every business day; weekly and monthly outputs carry an end-of-period value and an average for the period. MAS quotes the US dollar, euro and sterling per unit and every other currency per 100 units.

The assembled series: one CSV per year

The central-bank-exchange-rates repository holds the MAS table under data/mas/: latest.json for the newest table, daily/ for one JSON file per date, and history/ with one CSV per year from 1988 to 2026.

https://raw.githubusercontent.com/AllRates-Today/central-bank-exchange-rates/main/data/mas/history/2025.csv

date,base,quote,type,value
2025-01-02,AED,SGD,reference,0.3704
2025-01-02,AUD,SGD,reference,0.8456
...

Each row is Singapore dollars per one unit of the base currency, so the per-100 currencies are already divided through. The series holds about 125,000 rows across 6,771 dates. Coverage grows over time: weekly figures for 7 currencies in 1988, daily figures from the 2000s, and all 21 currencies by 2010. Licence: CC BY-NC 4.0, so free for research, study and internal non-commercial use with attribution; commercial systems use the API below.

Excel

Data > Get Data > From Web, paste the raw URL above, and Power Query loads it as a table. Filter base to the currencies you need and pivot on date. Refresh re-reads the file, so the current year's sheet stays up to date.

Google Sheets

=QUERY(IMPORTDATA("https://raw.githubusercontent.com/AllRates-Today/central-bank-exchange-rates/main/data/mas/history/2026.csv"),
       "select Col1, Col5 where Col2 = 'USD'", 1)

That returns the date and the US dollar rate for every business day of 2026. Wrap it in VLOOKUP to pick the rate for an invoice date.

Python

import pandas as pd
base = "https://raw.githubusercontent.com/AllRates-Today/central-bank-exchange-rates/main/data/mas/history/{}.csv"
df = pd.concat(pd.read_csv(base.format(y), parse_dates=["date"]) for y in range(2024, 2027))
wide = df.pivot(index="date", columns="base", values="value")

print(wide.loc["2025-12-31", ["USD", "EUR", "GBP"]])
# USD 1.2841, EUR 1.5077, GBP 1.7288
usd25 = wide["USD"]["2025"]
print(round(usd25.resample("ME").last().mean(), 4))   # 1.3056, average of month-end rates
print(round(usd25.mean(), 4))                          # 1.3066, average of daily rates
print(wide["USD"].asof("2026-11-08"))                  # a Sunday: Friday's table

The month-end average is the figure IRAS prescribes for tax computations in a non-Singapore dollar functional currency. asof gives the last table before a weekend or holiday date.

One date, as an API call

# today's MAS table
curl "https://allratestoday.com/api/open/central-bank/mas"

# a past date or a range, with a key
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://allratestoday.com/api/v1/central-bank/mas/2025-12-31"

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://allratestoday.com/api/v1/central-bank/mas/history?symbol=EUR&from=2026-01-01&to=2026-11-10"

The dated response includes requested_date and rate_date, so a weekend fallback is explicit in the data. Add ?format=csv, xml or xlsx to any table endpoint. Dated tables and history are on paid plans; a history request is counted as one call per currency per month of data.

Reference points for checking your load

DateUSDEURGBPHKDMYR
31 Dec 20241.36031.41601.70740.17520.3043
30 Jun 20251.27581.49431.74940.16250.3025
31 Dec 20251.28411.50771.72880.16500.3165
30 Jun 20261.29431.47521.71270.16500.3180
30 Sep 20261.27801.44831.69040.16290.3133

If the Hong Kong dollar loads as 16.50 where you expect 0.1650, your source was the MAS display in units of 100.

What people use the history for

FAQ

How far back does MAS exchange rate history go?

The MAS series starts in January 1988. Early years are weekly for a handful of currencies; daily figures begin in the 2000s and all 21 currencies are covered by 2010.

How many currencies does MAS publish?

21 currencies against the Singapore dollar.

When are MAS daily rates released?

At 3 pm on every business day. Daily figures are values as of noon.

Can I download MAS exchange rates as CSV or Excel?

Yes. The assembled series is one CSV per year from 1988 to 2026, and the API returns any table as CSV, XML or Excel.

MAS rates and live SGD on one key

Mid-market rates every 60 seconds and the official tables of 123 central banks and 6 tax authorities, as JSON, CSV, XML or Excel. Paid plans from €4.99 a month.

See plans

Related Articles