Exchange Rate API for Singapore: MAS Daily Rates, GST and Customs Rules, Live SGD
One exchange rate API for Singapore: the official MAS daily table for 21 currencies with history from 1988, the rates IRAS and Singapore Customs point to for GST, import permits and corporate tax, and live SGD market rates for 160+ currencies. JSON, CSV, XLSX. Free key.
In Singapore one source does most of the official work. IRAS lists the Monetary Authority of Singapore (MAS) rates among the sources it accepts for GST, Singapore Customs converts import values at the MAS weekly average, and corporate tax in a foreign functional currency uses the average of MAS month-end rates. What changes from rule to rule is which MAS figure and which date. This API returns the MAS table for any date, with the live market rate beside it.
Which SGD rate applies to what
| Need | Rate the rule points to | Date | Endpoint |
|---|---|---|---|
| GST tax invoice in a foreign currency | An IRAS-accepted source such as MAS or a local bank, used consistently | Time of supply, or a consistent approximation | /api/v1/central-bank/mas/{date} |
| Import permit and GST on imports | MAS weekly average rate | The preceding week | /api/v1/central-bank/mas/history |
| Corporate tax return, non-SGD functional currency | Average of MAS month-end rates | The basis period | /api/v1/central-bank/mas/history |
| Stock option and share award gains (Appendix 8B) | Actual rate, or one documented source | Exercise, vesting or end of moratorium | /api/v1/central-bank/mas/{date} |
| Year-end closing | Closing rate from one documented source | Period end | /api/v1/central-bank/mas/{date} |
| Pricing, checkout, dashboards, FX exposure | Live mid-market rate | Every 60 seconds | /api/v1/rates |
The MAS table is read from the publisher's own page and never revised afterwards, so a figure fetched for a past date is the figure an auditor will find.
MAS official daily table
MAS releases its rates at 3 pm on every business day for 21 currencies and describes them as the average of buying and selling interbank rates quoted around midday in Singapore. On the MAS site only the US dollar, euro and sterling are shown per unit; the rest are per 100 units. The API returns every rate per one unit of foreign currency.
# Official MAS table for today
curl "https://allratestoday.com/api/v1/central-bank/mas/latest" \
-H "Authorization: Bearer art_live_your_key" {
"bank": "mas",
"rate_date": "2026-11-11",
"cadence": "daily",
"available_by_utc": "07:15",
"publisher_timezone": "Asia/Singapore",
"rates": [
{ "base": "USD", "quote": "SGD", "type": "reference", "value": 1.2819 },
{ "base": "EUR", "quote": "SGD", "type": "reference", "value": 1.4309 },
{ "base": "GBP", "quote": "SGD", "type": "reference", "value": 1.7106 },
{ "base": "CNY", "quote": "SGD", "type": "reference", "value": 0.1921 },
{ "base": "MYR", "quote": "SGD", "type": "reference", "value": 0.3146 }
]
} In Google Sheets, one formula puts today's US dollar row in a sheet:
=QUERY(IMPORTDATA("https://allratestoday.com/api/open/central-bank/mas?format=csv"),
"select * where Col2 = 'USD'", 1) Dated tables and history from 1988
Every Singapore rule above needs a rate for a past date or an average over a period. A dated
request returns the table for that day, with rate_date showing the earlier table
when the day was a weekend or a public holiday. A history request returns the daily series for
a range, from which a weekly average or an average of month-end rates is a few lines of code.
# the MAS table for an invoice date or a closing date
curl "https://allratestoday.com/api/v1/central-bank/mas/2025-12-31" \
-H "Authorization: Bearer art_live_your_key"
# a year of daily USD rates as CSV: weekly averages, month-end averages
curl "https://allratestoday.com/api/v1/central-bank/mas/history?symbol=USD&from=2025-01-01&to=2025-12-31&format=csv" \
-H "Authorization: Bearer art_live_your_key" Worked figures are in the guides: the MAS closing rates for 31 December 2025, the month-end average for corporate tax, and the whole series as CSV or Excel in the MAS history download guide.
Live SGD market rates
For pricing and conversion the mid-market rate is refreshed every 60 seconds for SGD against
160+ currencies, in either direction. A free key covers it; add amount to get the
converted figure in the same response. The central banks of Malaysia, Indonesia, Thailand, Hong
Kong and China are on the same key for regional work.
# Live mid-market USD/SGD, refreshed every 60 seconds (free key)
curl "https://allratestoday.com/api/v1/rates?source=USD&target=SGD&amount=1000" \
-H "Authorization: Bearer art_live_your_key"
The SDKs for JavaScript, Python, PHP, Go and Rust wrap the same call,
and the mas-exchange-rate package wraps
the MAS table.
Singapore rules that name a rate
- GST Act, Third Schedule and the IRAS e-Tax Guide on exchange rates: accepted sources and the consistency conditions. Guide.
- Singapore Customs: MAS weekly average from the preceding week for customs values. Guide.
- Corporate income tax, non-SGD functional currency: average of MAS month-end rates. Guide.
- Appendix 8B: the rate on the exercise or vesting date for stock options and share awards. Guide.
- GST InvoiceNow: Singapore dollar totals in PINT SG, with no exchange rate field. Guide.
These guides describe the rules as published; confirm the treatment for your facts with your tax agent.
Endpoints used on this page
| Endpoint | Returns | Plan |
|---|---|---|
/api/v1/central-bank/mas/latest | Today's official MAS table | Free |
/api/v1/rates?source=&target=SGD | Live mid-market rate, optional amount | Free |
/api/v1/central-bank/mas/{date} | The MAS table for a past date | Paid |
/api/v1/central-bank/mas/history | MAS rates for any date range | Paid |
Every table endpoint accepts &format=json|csv|xml|xlsx. The /api/open/ endpoints are
CORS-open and can be called from a browser or a spreadsheet; the keyed ones are for servers.
Full reference in the documentation.
Frequently asked questions
Which exchange rate should a Singapore business use for GST?
IRAS accepts rates from local banks, MAS, locally circulated newspapers, reputable news agencies and foreign central banks without exchange controls. The rate must be updated at least every three months, used consistently for books and GST, and kept for at least one year. A tax invoice in a foreign currency shows the total excluding GST, the GST and the total including GST in Singapore dollars.
Which exchange rate does Singapore Customs use?
Singapore Customs does not publish its own table. Customs values are converted at the weekly average exchange rates released by MAS, taken from the preceding week.
Which rate applies to a company with a non-SGD functional currency?
IRAS requires the average of the MAS month-end exchange rates for the basis period to translate the amounts declared in the Corporate Income Tax Return.
How many currencies does the MAS table cover?
21 currencies against the Singapore dollar, released at 3 pm on every business day. MAS displays most of them per 100 units; the API returns every rate per one unit.
How far back does the history go?
The MAS series starts in January 1988. Early years are weekly for a few currencies, and all 21 currencies are daily by 2010.
Is there a free plan?
A free API key covers live rates and conversion, with no card. Dated tables and history need a paid plan, from €4.99 a month.
Start with the Singapore endpoints
Live SGD rates with a free key in 30 seconds.
Get a free API key See today's MAS table