Data API
The whole directory as machine-readable JSON, so your code or AI agent can pick a gateway programmatically. It is a static file rebuilt on every deploy, so it is fast, free, and always matches what you see on the site.
Endpoints
GET /api/gateways.jsonAll gateways, ordered like the site (lowest estimated fee first, then "on request" by popularity), wrapped with schema, generated_at, count, a disclaimer and the weighting.
GET /api/gateways/<slug>.jsonA single gateway object (same shape as one item in the array above).
Example: /api/gateways/chip.json โExamples
Fetch the whole directory:
curl -s https://malaysiapg.com.my/api/gateways.jsonCheapest gateways that support FPX, with a real published rate (jq):
curl -s https://malaysiapg.com.my/api/gateways.json \
| jq '.gateways
| map(select(.rankable and (.channels | index("fpx"))))
| sort_by(.est_fee_rm100)
| .[0:5]
| map({slug, est_fee_rm100})'In JavaScript:
const { gateways } = await fetch(
"https://malaysiapg.com.my/api/gateways.json"
).then((r) => r.json());
const recurringWithMcp = gateways.filter(
(g) => g.features.recurring && g.mcp === "official"
);Fields
| slug | Stable id, matches /gateway/<slug> and the per-gateway endpoint. |
|---|---|
| name, tagline, website, category | Display basics. category = gateway | bank | ewallet | bnpl | infrastructure. |
| access | { key, short } โ how a merchant onboards: integrate | account | infrastructure. |
| fees | Raw published fee strings per channel (fpx, card, card_intl, ewallet, duitnowqr, bnpl, setup, monthly). A trailing ' *' means third-party/indicative. |
| est_fee_rm100 | Blended effective cost (RM) on a RM100 sale, FPX/card/e-wallet weighted 50/30/20. null when the gateway has no comparable published rates. |
| rankable | true when est_fee_rm100 is comparable; false gateways are 'pricing on request'. |
| channels, features, methods, banks | Supported rails, capability flags (no_code/api/recurring), e-wallets, and FPX banks. |
| mcp, webhooks, plugins, dev_docs, skill | Developer experience: AI-agent MCP support, webhooks, CMS plugins, API docs, and the matching setup-* skill. |
| popularity | Editorial market-presence score (0-100). Estimate, not a measured metric. |
| verified_date, source | When the fees were last checked, and where they came from. Always reconfirm before relying on them. |
Use the fees responsibly
Fees are indicative and change. Values marked with a trailing *are third-party / not officially published, and est_fee_rm100is a modelled estimate, not a quote. Always confirm with the provider and check each gateway's verified_date and source.
MCP server
AI coding agents (Claude, Cursor) can query this directory live while you build, via the Model Context Protocol. Point your client at:
https://mpg-mcp.afuitdev.workers.dev/mcpExample (Claude Code):
claude mcp add --transport http mpg https://mpg-mcp.afuitdev.workers.dev/mcpTools: list_gateways, get_gateway,compare_gateways, recommend_gateway. Then ask e.g. "cheapest Malaysian gateway for FPX + recurring?". See Build with AI agents.