OrbTop

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

BUSINESS

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) — Malaysian Government Securities yields.
  • FX Turnover (fx_turnover) — Daily MYR foreign exchange market turnover by tenor.
  • Interbank Swap (interbank_swap) — Daily interbank swap volume by maturity (overnight through 12 months).
  • Interest Rates (interest_rate) — Money market interest rates for overnight, 1-month, and 3-month tenors.
  • Welfare Fund Rate (welfare_fund_rate) — Government welfare fund reference rates.

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, welfare_fund_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 month), or "date_range" (multi-month 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"
}

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

  • No proxy required — the BNM API is globally accessible without IP restrictions
  • Rate limit: 60 requests per minute (handled automatically with built-in throttling)
  • Date-range backfill mode generates one API call per calendar month — historical data availability varies by endpoint
  • Some endpoints (e.g. mgs_yields, fx_turnover) may return no data on weekends and public holidays