This comparison is for FX traders, quant developers, and analysts who need Malaysian macro data in a programmatic workflow and are deciding between the official OpenDOSM / data.gov.my API and FXMacroData. It also covers the Bank Negara Malaysia OpenAPI, because anyone trading the ringgit needs both the statistics office and the central bank.
The core finding: the Department of Statistics Malaysia (DOSM) runs one of the cleaner official open-data APIs in Asia. It is free, needs no API token, publishes under CC BY 4.0, and offers CSV and Parquet downloads for full history. It is also throttled to 4 requests per minute, covers Malaysia only, and dates releases by reference month rather than publication instant. FXMacroData reads the same official DOSM and BNM releases and adds what an FX workflow needs: second-level announcement timestamps, one schema across 22 currencies, a release calendar, USD/MYR pair context, and MCP access for AI agents.
Decision snapshot
Choose OpenDOSM / data.gov.my when
You research Malaysia in depth, want every CPI division, state, and sub-index, need full history as Parquet, and can live with 4 requests per minute.
Choose FXMacroData when
You trade MYR against other currencies and need publication-time stamps, a calendar, cross-country comparisons, pair dashboards, and one API for 22 currencies.
Entry access
data.gov.my: free, no token, CC BY 4.0.* FXMacroData: Always Free USD tier; MYR data on the $50/month Individual plan with a 14-day trial.
Takeaway: use the official API as the source of record for deep Malaysian research; use FXMacroData when Malaysian data has to sit inside a multi-currency, release-timed FX workflow.
* Access terms retrieved from the official data.gov.my developer documentation in October 2026.
Pricing And Access
This is not a price war. The Malaysian Government's Open API at api.data.gov.my is free, and its quickstart guide states that it does not require an API token. The FAQ and every catalogue page state that the data is open under the Creative Commons Attribution 4.0 International License, so it can be reused commercially with attribution. Bank Negara Malaysia's public OpenAPI is also free to call; it asks for a versioned Accept header rather than a key.
FXMacroData is a paid workflow product. The Always Free tier covers USD data only, with no key, 100 requests per day, and USD announcements delayed 15 minutes. MYR data needs a paid plan: Individual at $50/month or $500/year with a 14-day trial and 1,000,000 requests per month, or Business at $250/month for companies and teams of up to 10 people. What the money buys is not the Malaysian numbers themselves, which are public, but the release timing, normalisation, and cross-currency layer around them.
OpenDOSM / data.gov.my API
Free, no token*
CC BY 4.0 data, JSON API, CSV and Parquet file downloads, 4 requests per minute per API.
Bank Negara Malaysia OpenAPI
Free*
Overnight Policy Rate, exchange rates, and other BNM series; requests send the versioned BNM Accept header.
FXMacroData Individual
$50/month
22 currencies including MYR, 1,000,000 requests/month, bursts of 300/min, 14-day trial.
Takeaway: if all you need is Malaysian data and you can schedule around the throttle, the official API costs nothing; FXMacroData earns its fee when MYR is one leg of a multi-currency, release-driven process.
Malaysia CPI Straight From The Official API
To show what the official API returns, the chart below plots the last 12 monthly prints of headline Malaysian CPI inflation from the cpi_headline_inflation dataset, filtered to the overall index. A single request with filter=overall@division&sort=-date&limit=12 returns these rows as plain JSON with date, division, inflation_yoy, and inflation_mom fields.
Malaysia headline CPI inflation, % year on year
Overall index, September 2025 to August 2026. Hover a point for the exact print.
Takeaway: headline inflation drifted up from 1.3% in October 2025 to a 2.0% peak in May 2026 and held near 1.9% through August, a gentle trend that matters for MYR mostly through what it implies for the Overnight Policy Rate.
cpi_headline_inflation (CC BY 4.0), retrieved October 2026.The same rows exist in FXMacroData as MYR inflation announcements. The difference is not the value; it is the metadata attached to each print. The official catalogue dates the August reading as 2026-08-01, the reference month. An FX workflow also needs to know that the figure became public at noon Malaysia time on 18 September, so that a backtest does not use it in early August.
Side-By-Side Comparison
| Attribute | OpenDOSM / data.gov.my API | FXMacroData |
|---|---|---|
| Core job | Official open-data distribution for DOSM and other Malaysian government datasets. | FX macro data API, release calendar, pair dashboards, and MCP for 22 currencies. |
| Entry pricing | Free, no API token.* | Always Free (USD only); $50/month Individual; $250/month Business. |
| Free tier | Entire API is free.* | USD data, no key, 100 requests/day, 15-minute delay on USD announcements; 14-day trial on paid plans. |
| Coverage | Malaysia only, in depth: CPI by division and state, labour force, trade, industrial production, GDP, and many non-economic datasets. | 700+ indicator series across 22 currencies, MYR included: CPI, core CPI, PPI, GDP, labour, trade, current account, OPR, money supply, bond yields. |
| Release timing | DOSM disseminates at 12:00 MYT; the catalogue records a last-updated time and next-update time per dataset; rows are dated by reference month.* | Second-level announcement_datetime on every row; typically available within seconds of official publication, measured publicly. |
| API format | REST JSON with id, filter, sort, date_start, limit, include; CSV and Parquet files.* |
REST JSON with OpenAPI, header auth, SSE streaming, GraphQL, Python/JS SDKs. |
| Rate limits | 4 requests per minute per API; excess returns HTTP 429.* | 1,000,000 requests/month, bursts of 300/min and 5,000/hour, 20 concurrent. |
| History | Full official history; headline CPI index from January 1980.* | Long official history per series with source metadata and point-in-time announcement records. |
| AI / MCP | No official MCP server listed; an AI helper is linked from the developer docs.* | Official MCP server for Claude, ChatGPT, Cursor, and other clients. |
| Licence for programmatic or commercial use | CC BY 4.0: free reuse, including commercial, with attribution.* | Individual plan for personal and internal use; Business for teams; Commercial Redistribution add-on from $10/month per 100 measured users. |
| Best fit | Malaysia-focused research, official citation, bulk history, granular sub-indices. | MYR trading alongside USD, CNY, regional Asian currencies, and G10 pairs; event studies and automation. |
* Access terms, limits, and licence retrieved from the official data.gov.my developer documentation and OpenDOSM catalogue pages in October 2026.
What OpenDOSM And data.gov.my Do Well
The Malaysian open-data stack is well designed for an official service. The developer documentation lists two static APIs relevant here: the Data Catalogue API at /data-catalogue for the national catalogue, and the OpenDOSM API at /opendosm for DOSM-specific datasets such as cpi_core. Each dataset page on the OpenDOSM catalogue shows a sample API query, the field definitions, methodology notes, the last-updated and next-update times, and direct links to CSV and Parquet files on DOSM storage.
The query language is more capable than many statistics-office APIs. Beyond id and limit, the request-query page documents exact and case-insensitive filters, partial matches, numeric ranges, sorting, date and timestamp windows, and column include/exclude. For a researcher who wants every CPI division across every state, that granularity is something a cross-currency product will not replicate.
Official-source strength map
Authority
DOSM is the publisher. Citing data.gov.my is citing the source of record.
Bulk files
Parquet and CSV downloads load full history in one call, which sidesteps the API throttle.
Granularity
CPI by division and state, core CPI, labour, trade, and production detail beyond any FX headline set.
Open licence
CC BY 4.0 allows commercial reuse with attribution, with no account or token.
Takeaway: for depth on Malaysia alone, the official stack is the reference, and its Parquet files make bulk history easy.
Bank Negara Malaysia OpenAPI
DOSM publishes the statistics; Bank Negara Malaysia sets policy. The BNM OpenAPI exposes the Overnight Policy Rate, daily exchange rates, and other central-bank series as JSON. Calls go to api.bnm.gov.my/public with the header Accept: application/vnd.BNM.API.v1+json; the /opr route returns the latest decision date, the change, and the new level, which was held at 2.75% at the 3 September 2026 meeting. For how the OPR, Malaysian government bond yields, and MYR interact, see the Bank Negara Malaysia guide.
The practical consequence for a ringgit trader is two official APIs with two schemas, two authentication patterns, and two timing conventions, before any other currency is added. FXMacroData folds both into one MYR namespace next to the other 21 currencies.
Release Timing And Point-In-Time Data
DOSM disseminates its releases at 12:00 MYT under embargo, with the schedule published in its Advance Release Calendar. The catalogue metadata is transparent: the headline inflation page listed its last update as 18 September 2026 at 12:25 and its next update as 19 October 2026 at 12:30. That is a refresh record for the dataset, not a publication timestamp on each observation; the rows themselves carry only the reference month.
For a monthly research database, that is fine. For FX, the release instant is the event. FXMacroData records every MYR print with a second-level announcement_datetime anchored to the official publication, makes it available typically within seconds, and publishes its measured record by source at /release-speed. Upcoming DOSM and BNM events also appear in the release calendar.
One CPI release, two views of time
1. Scheduled
The release date appears in DOSM's Advance Release Calendar and in the FXMacroData calendar.
2. 12:00 MYT embargo lifts
DOSM publishes the statement. This is the moment USD/MYR can react.
3. Catalogue refresh
data.gov.my updates the dataset; the new row is dated by reference month.
4. FXMacroData row
The print carries announcement_datetime at publication, plus prior and change, in the same shape as every other currency.
Takeaway: the official API answers "what was CPI for August"; FXMacroData also answers "when could a trader first know it", which is what a no-lookahead backtest needs.
API Ergonomics And Rate Limits
A data.gov.my call is simple: GET https://api.data.gov.my/data-catalogue?id=cpi_headline_inflation&filter=overall@division&limit=12. No key, no signup. The limit is the constraint. At 4 requests per minute per API, a job that refreshes 30 Malaysian series one by one needs at least seven and a half minutes, and any burst at 12:00 MYT will hit HTTP 429. The documented way around this is to pull the Parquet or CSV file, which is efficient for history but not designed for polling a release.
FXMacroData uses one request shape for every currency. MYR inflation is the same call as US inflation with a different path segment:
curl -H "X-API-Key: YOUR_API_KEY" "https://api.fxmacrodata.com/v1/announcements/myr/inflation"
Example response (abridged, illustrative)
{
"currency": "MYR",
"indicator": "inflation",
"data": [
{
"date": "2026-08-01",
"val": 1.9,
"prior": 1.8,
"announcement_datetime": 1789704000
}
]
}
Fields that matter
date is the reference month, matching DOSM. announcement_datetime is the publication instant in epoch seconds, here 12:00 MYT on 18 September 2026.
Why it matters
Join the row to USD/MYR ticks on the timestamp, compare it with US CPI on the same schema, and keep the backtest free of lookahead.
Takeaway: the official API gives you the number; the FXMacroData row gives you the number plus the moment, in a shape shared by all 22 currencies.
A USD/MYR Workflow Example
Consider a trader positioning around Malaysian CPI while the market also prices the Federal Reserve. Using the official route, they would pull DOSM CPI from data.gov.my, the OPR from the BNM OpenAPI, US CPI from the BLS, and a Fed path from elsewhere, then reconcile four schemas and four timing conventions. Using FXMacroData, the same picture is four calls on one API.
USD/MYR release storyboard
Week before
Calendar shows Malaysian CPI at 12:00 MYT and the next BNM policy meeting; check the latest OPR and core inflation trend.
Release minute
The new print arrives with its announcement timestamp; an alert compares it with the prior reading.
Same afternoon
Compare Malaysian and US real rates, check Malaysian bond yields, and review the move on the USD/MYR dashboard.
In an AI assistant
Ask an MCP-connected assistant whether the print changes the OPR outlook, with source-labelled rows behind the answer.
Takeaway: the official APIs are where each number originates; the trading workflow needs them combined, timed, and set beside the other side of the pair.
Where OpenDOSM Is Genuinely Stronger
- Depth on Malaysia. CPI by division and by state, detailed labour-force tables, trade by product and partner, and many datasets that have no FX relevance but matter to a Malaysia economist.
- Cost and licence. Free, no token, and CC BY 4.0. For a redistributor or a public dashboard, attribution is the only obligation.
- Bulk history. One Parquet file loads decades of a series into pandas or DuckDB without any request budget.
- Source of record. When a figure is disputed or revised, the official catalogue and DOSM release are the reference that FXMacroData itself follows.
- Methodology on the page. Each catalogue page carries definitions, methodology notes, and update times next to the data.
Where FXMacroData Is Stronger
- Publication timestamps. Every MYR row records when it became public, to the second, so event studies and backtests line up with price data.
- One schema across 22 currencies. MYR sits next to USD, EUR, JPY, CNY, KRW, THB, TWD, and others with identical field names and request shapes.
- Throughput. 1,000,000 requests per month with bursts of 300 per minute versus 4 per minute on the official API.
- Both Malaysian publishers in one place. DOSM statistics and BNM policy rate, money supply, and bond yields under one key.
- FX context. Release calendar, USD/MYR dashboard, FX spot rates, commodities, and central-bank press releases.
- AI readiness. An official MCP server, OpenAPI spec, and SDKs for agent and notebook workflows.
OpenDOSM tradeoffs
- 4 requests per minute per API.
- Malaysia only; BNM data is a separate API.
- Rows dated by reference month, not publication instant.
- No release-event stream or pair context.
FXMacroData tradeoffs
- Not the original publisher.
- Headline and FX-relevant series, not every sub-index or state table.
- MYR data needs a paid plan.
- Redistribution needs the add-on rather than an open licence.
Takeaway: the tradeoffs mirror each other: official breadth and openness against FX timing, throughput, and cross-currency consistency.
Decision Matrix
| Reader | Better fit | Reason |
|---|---|---|
| Malaysia economist or academic | OpenDOSM / data.gov.my | Full official detail, methodology, bulk files, and an open licence. |
| Public dashboard or open-data app | OpenDOSM / data.gov.my | CC BY 4.0 reuse with attribution and no cost. |
| USD/MYR or Asia FX trader | FXMacroData | Release timestamps, calendar, OPR, and the US side of the pair in one place. |
| Quant running cross-country event studies | FXMacroData | One schema across 22 currencies and point-in-time publication stamps. |
| AI or automation builder | FXMacroData | MCP, OpenAPI, and request budgets that suit agents and scheduled jobs. |
| Data team building a Malaysia warehouse plus FX signals | Both | Load official history from Parquet; use FXMacroData for live, timed release rows. |
Recommendation
Use OpenDOSM and data.gov.my when the work is about Malaysia itself: detailed price indices, regional breakdowns, official citation, or a free public product. Pair it with the BNM OpenAPI for policy-rate and exchange-rate history. Plan around the 4-requests-per-minute limit by leaning on Parquet downloads.
Use FXMacroData when the ringgit is one currency in a trading or research process: you need to know when each Malaysian print became public, compare it with US, Chinese, or regional data on the same schema, watch the calendar, and hand the result to a model or an AI assistant. Check the API reference for the MYR indicator list, review the measured release speed record, and compare plans, including the 14-day trial.
Bottom line: OpenDOSM is the authoritative, free, openly licensed home of Malaysian statistics and the right choice for Malaysia-only depth. FXMacroData reads the same DOSM and BNM releases and adds publication-time stamps, higher throughput, one schema across 22 currencies, and MCP access, which is what MYR traders and multi-currency developers need.
Sources Checked
Evidence checked - October 2026
- data.gov.my API quickstart (no token): developer.data.gov.my/quickstart
- data.gov.my API rate limits: developer.data.gov.my/rate-limit
- data.gov.my request query parameters: developer.data.gov.my/request-query
- OpenDOSM API reference: developer.data.gov.my/static-api/opendosm
- data.gov.my FAQ (CC BY 4.0): developer.data.gov.my/faq
- OpenDOSM headline CPI inflation dataset: open.dosm.gov.my/data-catalogue/cpi_headline_inflation
- DOSM Advance Release Calendar: dosm.gov.my/portal-main/arc
- Bank Negara Malaysia OpenAPI: bnm.gov.my/-/bnm-openapi
- FXMacroData: pricing, API reference, release speed record, and MCP.
Related Reading
- FXMacroData vs ECB Data Portal API, another official-source comparison.
- FXMacroData vs CEIC Data, for emerging-Asia macro coverage.
- FXMacroData vs Trading Economics, a broad global macro alternative.
- Best macroeconomic data APIs in 2026.