OrbTop

BNM API - Malaysia FX Rates, OPR, Kijang Emas & MGS Yields

BUSINESS

Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.

BNM API - Malaysia FX Rates, OPR, Kijang Emas & MGS Yields

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_yields backfills one call per calendar day, since BNM does not publish a monthly batch for it
  • mgs_yields reflects real trading activity and can return no rows for a given day (e.g. a non-trading day) — that is expected, not an error