BNM API - Malaysia FX Rates, OPR, Kijang Emas & MGS Yields
Pricing
Pay per event
BNM API - Malaysia FX Rates, OPR, Kijang Emas & MGS Yields
Scrape Bank Negara Malaysia (BNM) Open API: daily MYR FX rates for 27 currencies, Overnight Policy Rate (OPR), bank base/lending rates (BR/BLR), kijang emas gold prices, MGS yields, and interbank rates. Date-range backfill. No auth required.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
12 hours ago
Last modified
Categories
Share
Extract data from the Bank Negara Malaysia (BNM) Open API — the official Malaysian central bank data portal. Covers MYR foreign exchange rates, Overnight Policy Rate (OPR), bank base/lending rates, kijang emas gold prices, Malaysian Government Securities (MGS) yields, interbank swap volumes, and more. No authentication required.
What you get
Each run returns clean, flat JSON records across all requested BNM endpoints:
- Exchange Rates (
exchange_rate) — Daily MYR buying, selling, and middle rates for 27 currencies (USD, EUR, SGD, CNY, AUD, JPY, GBP, CAD, CHF, AED, and more). These are the legally-recognised BNM reference rates for MYR-denominated financial reporting. - Kijang Emas Gold (
kijang_emas) — BNM's official gold coin reference prices in RM per troy oz, half oz, and quarter oz. Used by gold dealers and jewellers across Malaysia. - Overnight Policy Rate (
opr) — BNM's benchmark monetary policy rate. Updated after each Monetary Policy Committee (MPC) meeting. - Bank Base Rates (
base_rate) — Published base rate (BR) and base lending rate (BLR) for 35+ Malaysian banks. - MGS Yields (
mgs_yields) — Daily trading yields for Malaysian Government Securities (MGS), Government Investment Issues (GII), and short-term bills (BNM Monetary Notes, Treasury Bills). - FX Turnover (
fx_turnover) — Total daily MYR foreign exchange market turnover (all deals, in billion USD). - Interbank Swap (
interbank_swap) — Daily interbank swap volume across all published maturities (overnight through beyond one year). - Interest Rates (
interest_rate) — Money market interest rates for overnight, 1-month, and 3-month tenors.
Use cases
- Fintech and accounting tools — BNM rates are the legally-recognised reference for MYR-denominated financial reporting in Malaysia and Singapore
- Gold dealers — kijang emas is BNM's official gold reference, updated daily
- Fixed-income teams — MGS yield data for Malaysian Government Securities
- Treasury and FX desks — Daily MYR rates against 27 currencies for hedging and exposure management
- Corporate finance — OPR and bank base rate tracking for loan pricing analysis
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
endpoints | array | ["exchange_rate", "kijang_emas", "opr"] | BNM endpoints to fetch. Choose from: exchange_rate, kijang_emas, base_rate, opr, mgs_yields, fx_turnover, interbank_swap, interest_rate |
currencies | array | [] (all) | ISO 4217 currency codes to filter for the exchange_rate endpoint. Empty = return all 27 currencies. |
dateMode | string | "latest" | "latest" (current day), "specific_date" (one historical period), or "date_range" (multi-period backfill) |
startDate | string | — | Required for specific_date and date_range. Format: YYYY-MM-DD |
endDate | string | — | Required for date_range. Format: YYYY-MM-DD |
maxItems | integer | 200 | Maximum number of records to return |
Output
Each record includes:
{"endpoint": "exchange_rate","currency_code": "USD","unit": 1,"buying_rate": 4.42,"selling_rate": 4.4255,"middle_rate": 4.4227,"date": "2026-05-15","source_endpoint": "https://api.bnm.gov.my/public/exchange-rate","scraped_at": "2026-05-16T10:00:00.000Z"}
Gold (kijang emas) records:
{"endpoint": "kijang_emas","date": "2026-05-15","gold_buying_per_oz": 18660,"gold_selling_per_oz": 19434,"gold_buying_per_half_oz": 9330,"gold_selling_per_half_oz": 9900,"gold_buying_per_quarter_oz": 4665,"gold_selling_per_quarter_oz": 5042,"source_endpoint": "https://api.bnm.gov.my/public/kijang-emas","scraped_at": "2026-05-16T10:00:00.000Z"}
OPR records:
{"endpoint": "opr","date": "2026-05-07","opr_rate": 2.75,"source_endpoint": "https://api.bnm.gov.my/public/opr","scraped_at": "2026-05-16T10:00:00.000Z"}
FX turnover records:
{"endpoint": "fx_turnover","date": "2026-08-18","fx_turnover_total_usd_bn": 23.69,"source_endpoint": "https://api.bnm.gov.my/public/fx-turn-over","scraped_at": "2026-08-18T10:00:00.000Z"}
MGS yield records (one row per security; mgs_security_type distinguishes MGS / GII / short-term bills):
{"endpoint": "mgs_yields","date": "2026-08-18","mgs_security_type": "mgs","mgs_tenure": "10Y","mgs_coupon_pct": 3.476,"mgs_yield_close_pct": 3.74,"mgs_volume_rm_million": 5.07,"source_endpoint": "https://api.bnm.gov.my/public/gov-sec-yield","scraped_at": "2026-08-18T10:00:00.000Z"}
Data source
All data is sourced from the BNM Open API — Bank Negara Malaysia's publicly documented API with no authentication required. Data is official and updated daily by BNM.
Notes
- Rate limit: 60 requests per minute (handled automatically with built-in throttling)
- Date-range backfill mode generates one API call per calendar month for most endpoints;
mgs_yieldsbackfills one call per calendar day, since BNM does not publish a monthly batch for it mgs_yieldsreflects real trading activity and can return no rows for a given day (e.g. a non-trading day) — that is expected, not an error