# 🇲🇾 Bursa Malaysia Stock Screener — KLCI Quotes (`nexgendata/bursa-malaysia-stock-screener`) Actor

Bursa Malaysia stock screener API — FBMKLCI / KLCI live quotes, market cap (MYR), P/E, P/B, dividend yield, ROE, sector. Maybank, Public Bank, Tenaga Nasional, CIMB universe. Bloomberg Terminal / FactSet / Refinitiv Eikon alternative for ASEAN / EM equity data. Pay-per-result.

- **URL**: https://apify.com/nexgendata/bursa-malaysia-stock-screener.md
- **Developed by:** [Stephan Corbeil](https://apify.com/nexgendata) (community)
- **Categories:** Business, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $250.00 / 1,000 bursa malaysia stock records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🇲🇾 Bursa Malaysia Stock Screener — KLCI, KLSE & Sharia-Compliant Quotes

Institutional-grade screener for **Bursa Malaysia** (formerly the Kuala Lumpur Stock Exchange, KLSE) — Southeast Asia's fourth-largest equity venue and a unique market that sits at the intersection of palm-oil plantations, oil and gas (Petronas), Islamic finance, and ASEAN consumer demographics. This actor returns live quotes, market capitalization (in MYR billion), valuation ratios, dividend yields, sector classifications, and **Sharia-compliance flags** for the FTSE Bursa Malaysia KLCI top 30, the broader Bursa Main Market universe, and the Islamic-equity subset in a single structured JSON payload.

Malaysia is ASEAN's third-largest economy by GDP, a top-three global producer of palm oil, the largest exporter of liquefied natural gas in the region, and the world's largest single hub for Sharia-compliant equity, Islamic banking, and sukuk issuance. Yet research desks covering Kuala Lumpur–listed names still pay Bloomberg / Refinitiv terminal fees in excess of **USD 24,000 per seat per year** to access the same Bursa prices, P/E ratios, market caps, dividend yields, and Sharia status that this actor delivers programmatically for **USD 0.25 per stock**.

If you cover Malaysian equities, run a quant strategy on the KLCI, build a fintech dashboard for retail investors in Kuala Lumpur, manage an ASEAN ETF, run an Islamic-equity fund that screens against the SC Shariah Advisory Council list, or simply want clean structured data on Maybank, Public Bank, Tenaga Nasional, CIMB, Petronas Chemicals, IHH Healthcare, MISC, Sime Darby Plantation, or Axiata — this is your Bloomberg alternative. Buy what you need, when you need it, and pay nothing the moment you stop running queries.

---

### What this actor returns

For every constituent ticker, the actor emits one JSON record with:

| Field | Description |
|---|---|
| `ticker` | Yahoo Finance symbol with `.KL` suffix (e.g., `MAYBANK.KL`) |
| `symbol_no_suffix` | Bare KLSE trading code (e.g., `MAYBANK`) |
| `name` | Long legal company name (e.g., *Malayan Banking Berhad*) |
| `sector` | GICS-style sector classification |
| `sharia_compliant` | Boolean — whether the stock is on the Securities Commission Malaysia's Shariah Advisory Council list |
| `index_membership` | List of indices the stock belongs to (`KLCI`, `Bursa-all`) |
| `exchange` | Always `KLSE` |
| `exchange_full_name` | Always `Bursa Malaysia` |
| `currency` | Always `MYR` (Malaysian Ringgit) |
| `price_myr` | Last regular-market price in MYR |
| `previous_close_myr` | Previous session close |
| `day_change_pct` | Intraday % change |
| `day_high_myr` / `day_low_myr` | Intraday range |
| `fifty_two_week_high_myr` / `fifty_two_week_low_myr` | 52-week range |
| `market_cap_myr` | Raw market capitalization in MYR |
| `market_cap_myr_billion` | Market cap in **billion MYR** (the standard reporting unit for Malaysian equities) |
| `pe_ratio` | Trailing twelve-month P/E |
| `forward_pe` | Forward P/E estimate |
| `pb_ratio` | Price-to-book ratio |
| `eps_trailing` | Trailing twelve-month EPS |
| `dividend_yield` | Trailing annual dividend yield (decimal) |
| `volume` | Latest session volume |
| `avg_volume_3m` | 3-month average daily volume |
| `source` | Data source attribution |

---

### The FTSE Bursa Malaysia KLCI — the blue-chip index

The **FTSE Bursa Malaysia KLCI** (formerly the Kuala Lumpur Composite Index) is the headline benchmark for Malaysian equities. It comprises the **30 largest, most-liquid, free-float-adjusted Main Market companies**, reconstituted semi-annually by FTSE Russell. The KLCI is the index that BNM (Bank Negara Malaysia), the EPF (Employees Provident Fund), KWAP (Kumpulan Wang Persaraan), Khazanah Nasional, and PNB (Permodalan Nasional Berhad) — Malaysia's massive domestic institutional buy-side — benchmark against. It includes household names such as:

- **Maybank** (MAYBANK.KL) — Malayan Banking, Malaysia's largest bank by assets and a top-3 ASEAN bank, market cap typically over RM 100 billion.
- **Public Bank** (PBBANK.KL) — Founded by the late Tan Sri Teh Hong Piow, the second-largest Malaysian bank and one of the most consistently profitable banks in Southeast Asia.
- **Tenaga Nasional** (TENAGA.KL) — Malaysia's national electricity utility, the dominant generator, transmitter, and distributor of power.
- **CIMB Group** (CIMB.KL) — Malaysia's second-largest banking group, with operations across Indonesia, Singapore, Thailand, the Philippines, and Vietnam.
- **IHH Healthcare** (IHH.KL) — One of the world's largest private healthcare operators, with hospitals across Malaysia, Singapore, Turkey, India, and Greater China.
- **Petronas Chemicals** (PCHEM.KL) — Listed petrochemical arm of Petronas, the national oil and gas major.
- **Petronas Gas** (PETGAS.KL) — Listed gas-transportation and processing arm of the Petronas group.
- **MISC** (MISC.KL) — Petronas-affiliated shipping group, one of the world's largest LNG fleet operators.
- **Sime Darby Plantation** (SDG.KL) — One of the world's largest palm-oil producers by planted area.
- **IOI Corporation** (IOICORP.KL) — Integrated palm-oil play across upstream plantation, midstream refining, and downstream specialty chemicals.
- **Kuala Lumpur Kepong** (KLK.KL) — Another global palm-oil major, controlled by the Lee family.
- **Hong Leong Bank** (HLBANK.KL) — Hong Leong Group's listed commercial bank arm.
- **RHB Bank** (RHBBANK.KL) — Top-four Malaysian banking group.
- **Telekom Malaysia** (TM.KL) — Incumbent fixed-line operator and the dominant fibre-broadband provider.
- **Maxis** (MAXIS.KL) and **CelcomDigi** (CDB.KL) — Malaysia's two largest mobile-network operators.
- **Axiata** (AXIATA.KL) — Regional telecom holding (Celcom, XL Axiata Indonesia, Robi Bangladesh, Dialog Sri Lanka, Smart Cambodia, Ncell Nepal).
- **Genting** (GENTING.KL) and **Genting Malaysia** (GENM.KL) — Lim Goh Tong's gaming, hospitality and plantation empire (Genting Highlands, Resorts World casinos).
- **Nestle (Malaysia)** (NESTLE.KL) — The local subsidiary of Nestle SA, one of the most premium-rated consumer staples in the region.
- **MR DIY** (MRDIY.KL) — Malaysia's largest home-improvement and budget-retail chain, a post-IPO consumer growth story.

---

### Why MYR is reported in **billions**

The Malaysian Ringgit trades at roughly **1 USD ≈ 4.65 MYR** at the time of writing. The convention used by Bank Negara Malaysia (BNM), Bursa Malaysia, the Securities Commission (SC), and every domestic broker is to quote corporate market capitalizations and earnings in **billion MYR** (RM bilion). A small Bursa Main Market company typically has a market cap of around 1 billion MYR (≈ USD 215 million). The largest Malaysian blue chips — Maybank, Public Bank, Tenaga Nasional, Petronas Chemicals — sit in the RM 50–110 billion range (≈ USD 10–25 billion). We expose both `market_cap_myr` and `market_cap_myr_billion` so you can pick the reporting unit that matches your model.

---

### Sharia-compliant equities — Malaysia's distinctive niche

Malaysia is the **global hub for Islamic finance**. Roughly **75-80% of all Bursa-listed equities** are classified as Sharia-compliant by the Securities Commission Malaysia's **Shariah Advisory Council (SAC)**, with the list reformulated and published semi-annually. The screening filters out companies with material exposure to conventional (interest-based) banking, conventional insurance, gambling, alcohol, pork, tobacco, adult entertainment, and stocks where mixed-income from non-permissible activities exceeds prescribed financial-ratio thresholds.

Conventional banks (Maybank, Public Bank, CIMB, Hong Leong, RHB, AMBank) are NOT on the SAC list — they have separately incorporated Islamic-banking subsidiaries (Maybank Islamic, Public Islamic, CIMB Islamic, Bank Islam BIMB, RHB Islamic, AmBank Islamic) which are themselves Sharia-compliant but not separately listed as parent equity. Gaming names (Genting, Genting Malaysia) and brewers (Carlsberg Malaysia, Heineken Malaysia) are likewise non-compliant.

The `sharia_only=true` input filter restricts results to the SAC list — useful if you manage an Islamic-equity portfolio, build a robo-advisor for Muslim retail investors, run an Islamic ETF (e.g., MyETF Dow Jones Islamic Market Malaysia Titans 25), or write academic research on faith-based investing.

---

### Use cases

1. **ASEAN equity quants.** Pair this actor with our `idx-indonesia-stock-screener`, `set-thailand-stock-screener`, `sgx-singapore-stock-screener` and `hose-vietnam-stock-screener` to build a pan-ASEAN factor model. Malaysia is the bridge between insular ASEAN (Indonesia, Philippines) and mainland ASEAN (Thailand, Vietnam) and its banks frequently lead regional rate-cycle moves.
2. **Palm-oil and soft-commodity strategies.** Roughly 30% of the world's palm-oil supply originates from Malaysia, and Bursa is home to the deepest cluster of palm-oil pure-plays anywhere — Sime Darby Plantation, IOI Corp, KLK, FGV, Genting Plantations, IJM Plantations. Filter by `Consumer Staples` or pair with our CPO futures actors.
3. **Islamic-equity research.** Use `sharia_only=true` to build a Sharia-compliant Bursa screen, suitable for Islamic ETFs, halal robo-advisors, fatwa-screened pension mandates, GCC-Malaysia cross-listings, and academic finance research on faith-based investing.
4. **Bank and telecom sector dashboards.** Malaysia's "Big Four" banks (Maybank, Public Bank, CIMB, RHB plus Hong Leong) and the dominant telcos (Maxis, CelcomDigi, Axiata, Telekom Malaysia) drive a large share of KLCI returns. Track P/E, P/B, and dividend yield over time without licensing Bloomberg.
5. **Petronas-complex tracking.** Petronas itself is unlisted, but its listed affiliates — Petronas Chemicals (PCHEM), Petronas Gas (PETGAS), Petronas Dagangan (PETDAG), and MISC — form one of the largest listed oil-and-gas clusters in Asia ex-Greater China. Filter by `Energy` or `Utilities`.
6. **Healthcare and pandemic supply chain.** IHH Healthcare is one of the world's largest hospital operators; Top Glove, Hartalega, Kossan and Supermax are the world's largest rubber-glove manufacturers (a critical pandemic-era supply chain). Filter by `Healthcare`.
7. **Tech and semiconductor backend.** Malaysia hosts a globally significant cluster of semiconductor outsourced assembly and test (OSAT) names — Inari Amertron, Vitrox, Pentamaster, Unisem, MPI — riding the same AI/data-centre tailwind as Taiwan's TSMC ecosystem at much lower valuations.
8. **REITs and property income.** KLCC Property, IGB REIT, Pavilion REIT, Sunway REIT, Axis REIT and others give exposure to Kuala Lumpur office, retail and logistics property at high yields. Filter by `Real Estate`.

---

### Input

| Field | Type | Description |
|---|---|---|
| `limit` | integer | Max stocks to return. Default 30, max 1000. Each returned stock is billed at $0.25. |
| `index` | enum | `KLCI` (top 30 FTSE Bursa Malaysia KLCI blue chips) or `Bursa-all` (broader Bursa Main Market universe including mid-caps). |
| `min_market_cap_myr_billion` | integer | Filter out small-caps below this threshold in **billion MYR**. Default 0 (no filter). |
| `sector` | enum | Optional sector filter (Financials, Utilities, Consumer Staples, Healthcare, Energy, Industrials, Communication Services, Real Estate, Technology, Basic Materials, Consumer Cyclical). |
| `sharia_only` | boolean | If true, return only stocks on the Securities Commission Malaysia Shariah Advisory Council list. Default false. |

#### Sample input (smoke test)

```json
{
  "limit": 10,
  "index": "KLCI"
}
````

#### Sample input — Malaysian banks only

```json
{
  "limit": 20,
  "index": "Bursa-all",
  "sector": "Financials"
}
```

#### Sample input — Sharia-compliant blue chips

```json
{
  "limit": 30,
  "index": "KLCI",
  "sharia_only": true
}
```

#### Sample input — palm-oil plantations

```json
{
  "limit": 20,
  "index": "Bursa-all",
  "sector": "Consumer Staples",
  "min_market_cap_myr_billion": 1
}
```

***

### Sample output (one record)

```json
{
  "ticker": "MAYBANK.KL",
  "symbol_no_suffix": "MAYBANK",
  "name": "Malayan Banking Berhad",
  "sector": "Financials",
  "sharia_compliant": false,
  "index_membership": ["KLCI"],
  "exchange": "KLSE",
  "exchange_full_name": "Bursa Malaysia",
  "currency": "MYR",
  "price_myr": 10.20,
  "previous_close_myr": 10.16,
  "day_change_pct": 0.39,
  "market_cap_myr": 123000000000,
  "market_cap_myr_billion": 123.0,
  "pe_ratio": 13.2,
  "forward_pe": 12.4,
  "pb_ratio": 1.32,
  "dividend_yield": 0.058,
  "volume": 14000000,
  "source": "yahoo_finance"
}
```

***

### Pricing — Pay Per Event

This actor uses Apify's **Pay-Per-Event (PPE)** model:

| Event | Price |
|---|---|
| Actor start | $0.01 |
| Each stock returned | $0.25 |

A run with `limit: 10` costs **$0.01 + (10 × $0.25) = $2.51**. There is no platform-usage markup, no proxy surcharge, and no monthly subscription. You only pay for the data you actually consume.

Compare to the alternatives:

- **Bloomberg Terminal:** ~USD 2,000/month, multi-year contract.
- **Refinitiv Eikon:** ~USD 1,800/month.
- **Direct Bursa data licensing:** five-figure annual contracts via Bursa Marketplace / Bursa Anywhere data feeds.
- **This actor:** USD 0.25 per stock, on demand, no contract.

For a daily refresh of the KLCI top 30, you're looking at **~USD 7.51/day, ~USD 230/month** — and you can stop billing the moment you stop needing the data.

***

### Data sources & methodology

1. **Primary:** `stockanalysis.com/list/bursa-malaysia/` — a single page load returns the full Bursa Malaysia listing universe with bare KLSE ticker, name, price, market cap, % change, and revenue. Quote prefixes use `/quote/klse/{ticker}/`.
2. **Secondary:** Yahoo Finance public quote API for `.KL`-suffixed Malaysian symbols. Yahoo aggregates Bursa end-of-day and near-real-time quotes, exposing them under the same schema as NYSE/NASDAQ tickers, and adds valuation fields (P/E, forward P/E, P/B, dividend yield, EPS) that the listing page does not always include.
3. **Universe construction:** A curated, regularly-updated list of FTSE Bursa Malaysia KLCI constituents (the 30 blue chips) plus a broader Bursa Main Market layer of large- and mid-caps shipped with the actor. The `Bursa-all` mode adds palm-oil plantations, glove manufacturers, OSAT semiconductors, REITs, property developers, and additional consumer and industrial names.
4. **Sharia status:** The `sharia_compliant` flag reflects the most recent Securities Commission Malaysia (SC) Shariah Advisory Council list. SAC publishes updates twice a year (May and November). We update the shipped flags within days of each release.

Quotes are typically delayed by 15 minutes for end-users without a real-time Bursa data subscription. If you need real-time millisecond-level data, you will need to license the Bursa MarketPlace feed directly — but for 99% of research, monitoring, factor-backtesting, and dashboard workflows, 15-minute delayed quotes are perfectly sufficient.

***

### Frequently asked questions

**Does this work for stocks outside the KLCI?** Yes — set `index` to `Bursa-all` to get the broader Bursa Main Market universe including AMMB, Bursa Malaysia itself, Top Glove, Hartalega, IGB REIT, Pavilion REIT, MR DIY, Genting Plantations, FGV, Westports, Malaysia Airports, Inari Amertron, ViTrox, Pentamaster, and dozens of others.

**What about ACE Market (small-cap board)?** ACE Market is Bursa's growth-board for emerging companies. This actor focuses on the Main Market where institutional liquidity is concentrated. ACE coverage may be added in a future revision based on user demand.

**What about LEAP Market?** LEAP is Bursa's restricted-access market for sophisticated investors and is not the focus of this screener.

**Does this cover the FTSE4Good Bursa Malaysia ESG index?** ESG-focused constituents are heavily represented in our KLCI + Bursa-all coverage. You can apply your own ESG screen on top of the returned dataset.

**What about real-time intraday quotes?** Yahoo Finance and stockanalysis.com both serve delayed quotes (typically 15 min). For real-time millisecond-level data you would need to license the Bursa feed directly via Bursa Marketplace or via an authorized vendor.

**How fresh is the constituent list?** The FTSE Bursa Malaysia KLCI reconstitutes semi-annually (typically June/December). We update the shipped universe and the SC SAC Sharia-compliance flags on each rebalance.

**Are Malaysian GLCs (government-linked companies) covered?** Yes — Tenaga Nasional, Petronas Chemicals, Petronas Gas, MISC, CIMB, Maybank (PNB-anchored), Sime Darby, IHH (Khazanah-anchored), Axiata, Telekom Malaysia, Malaysia Airports and many others are explicitly included.

**What is the difference between KLSE and Bursa Malaysia?** They refer to the same exchange. KLSE (Kuala Lumpur Stock Exchange) was the legacy name; Bursa Malaysia is the current corporate name following the 2004 demutualization. Yahoo Finance and stockanalysis.com both still use the `KLSE` / `.KL` shorthand.

***

### Sister actors in the NexGenData global equity fleet

If you're covering Malaysia, you almost certainly want one or more of these ASEAN- and EM-Asia-focused screeners:

- **🇸🇬 [SGX Singapore Stock Screener](https://apify.com/nexgendata/sgx-singapore-stock-screener?fpr=2ayu9b)** — Singapore Exchange (DBS, OCBC, UOB, Singtel, CapitaLand REITs). Singapore is the ASEAN financial hub and the natural complement to onshore Kuala Lumpur exposure — many Malaysian conglomerates are also dual-listed or have Singapore subsidiaries.
- **🇹🇭 [SET Thailand Stock Screener](https://apify.com/nexgendata/set-thailand-stock-screener?fpr=2ayu9b)** — Stock Exchange of Thailand (PTT, CPALL, Kasikornbank, AOT). Thailand is Malaysia's largest mainland-ASEAN trading partner and a frequent pair-trade in regional banking and consumer factor strategies.
- **🇮🇩 [IDX Indonesia Stock Screener](https://apify.com/nexgendata/idx-indonesia-stock-screener?fpr=2ayu9b)** — LQ45 / IDX30 / Bursa Efek Indonesia. Malaysia–Indonesia is the world's most important palm-oil duopoly (together ~85% of global supply), and the two markets co-move heavily on CPO prices and regional banking cycle.
- **🇻🇳 [HOSE Vietnam Stock Screener](https://apify.com/nexgendata/hose-vietnam-stock-screener?fpr=2ayu9b)** — Ho Chi Minh Stock Exchange and VN30 constituents. Vietnam is the frontier ASEAN growth story complementing Malaysia's more mature consumer story.
- **🇮🇳 [NSE India Stock Screener](https://apify.com/nexgendata/nse-india-stock-screener?fpr=2ayu9b)** — Nifty 50, BSE Sensex constituents. India is the natural EM Asia peer to Malaysia in the Asia-ex-China growth basket.
- **🇰🇷 [KOSPI Stock Screener](https://apify.com/nexgendata/kospi-stock-screener?fpr=2ayu9b)** — Samsung, SK Hynix, Hyundai. Korea = developed-Asia counterweight to ASEAN.
- **🇹🇼 [TWSE Stock Screener](https://apify.com/nexgendata/twse-stock-screener?fpr=2ayu9b)** — Taiwan Stock Exchange (TSMC, MediaTek, Foxconn). The semiconductor mirror to Malaysia's OSAT cluster (Inari, ViTrox, Pentamaster, Unisem, MPI).
- **🇭🇰 [HKEX Hang Seng Stock Screener](https://apify.com/nexgendata/hkex-hang-seng-stock-screener?fpr=2ayu9b)** — Hong Kong listings, gateway to China-Asia capital flows.

Together these actors form a **single-API, pay-as-you-go alternative to Bloomberg / Refinitiv for global equity research**, covering the Americas, Europe, Asia-Pacific, and the major emerging and frontier markets.

***

### Support & feedback

Issues, feature requests, or universe-update suggestions — open an issue against the actor or contact the NexGenData team via the Apify console. We monitor incoming runs, watch coverage on FTSE Bursa Malaysia KLCI reconstitutions and SC Shariah Advisory Council updates, and ship universe updates within days of each rebalance.

***

### About NexGenData

NexGenData builds and maintains 100+ structured-data actors on Apify covering finance, real estate, news, public records, sports, e-commerce, and SaaS analytics. Every actor follows the same pattern: **transparent pay-per-event pricing, institutional-grade data quality, no contracts, no markups**.

Explore the full catalog and earn affiliate credits at: **https://apify.com/nexgendata?fpr=2ayu9b**

# Actor input Schema

## `limit` (type: `integer`):

Maximum number of Bursa Malaysia (KLSE) listings to return. Use a small number (5-20) for quick smoke tests and exploration; larger values (30-100) to scan the full FTSE Bursa Malaysia KLCI or broader Bursa universe. Each returned stock is billed independently at $0.25 per stock.

## `index` (type: `string`):

Which Bursa Malaysia universe to screen. 'KLCI' returns the 30 FTSE Bursa Malaysia KLCI blue chips (Maybank, Public Bank, Tenaga Nasional, CIMB, IHH, Petronas Chemicals, Sime Darby, MISC, Axiata, MAXIS, etc.). 'Bursa-all' covers a broader Malaysian listing universe across the Main Market including mid-caps and ACE Market growth names.

## `min_market_cap_myr_billion` (type: `integer`):

Filter out small-cap stocks below this market capitalization threshold, expressed in billion Malaysian Ringgit (MYR). For reference: 1 billion MYR is approximately 215 million USD; the largest Malaysian blue chips such as Maybank, Public Bank, Tenaga Nasional and CIMB have market caps in the tens to low-hundreds of billions of MYR. Use 0 to disable the filter.

## `sector` (type: `string`):

Optional sector filter applied to results. Malaysia's listed market is dominated by Financials (Maybank, Public Bank, CIMB, RHB, Hong Leong), Utilities (Tenaga Nasional, Petronas Gas, YTL Power), Consumer Staples (Nestle Malaysia, F\&N, Dutch Lady), Basic Materials and palm oil plantations (Sime Darby Plantation, IOI Corp, Kuala Lumpur Kepong, Genting Plantations), Energy (Petronas Chemicals, Petronas Dagangan, Dialog Group), Healthcare (IHH Healthcare, KPJ), Communication Services (Maxis, Axiata, CelcomDigi, Telekom Malaysia), and Industrials/Real Estate (Sime Darby, Gamuda, IOI Properties). Leave blank to include all sectors.

## `sharia_only` (type: `boolean`):

If true, return only stocks designated as Sharia-compliant by the Securities Commission Malaysia (SC) Shariah Advisory Council. Approximately 75-80% of Bursa Malaysia listed equities are Sharia-compliant (notable exclusions: conventional banks like Maybank, Public Bank, CIMB — though their Islamic banking subsidiaries are separately listed/compliant — and gambling/alcohol names like Genting and Carlsberg). Malaysia is the global hub for Islamic finance and Sharia-compliant equity is a meaningful niche universe.

## Actor input object example

```json
{
  "limit": 30,
  "index": "KLCI",
  "min_market_cap_myr_billion": 0,
  "sector": "",
  "sharia_only": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "limit": 30,
    "index": "KLCI",
    "min_market_cap_myr_billion": 0,
    "sector": "",
    "sharia_only": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/bursa-malaysia-stock-screener").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "limit": 30,
    "index": "KLCI",
    "min_market_cap_myr_billion": 0,
    "sector": "",
    "sharia_only": False,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/bursa-malaysia-stock-screener").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "limit": 30,
  "index": "KLCI",
  "min_market_cap_myr_billion": 0,
  "sector": "",
  "sharia_only": false
}' |
apify call nexgendata/bursa-malaysia-stock-screener --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/bursa-malaysia-stock-screener",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🇲🇾 Bursa Malaysia Stock Screener — KLCI Quotes",
        "description": "Bursa Malaysia stock screener API — FBMKLCI / KLCI live quotes, market cap (MYR), P/E, P/B, dividend yield, ROE, sector. Maybank, Public Bank, Tenaga Nasional, CIMB universe. Bloomberg Terminal / FactSet / Refinitiv Eikon alternative for ASEAN / EM equity data. Pay-per-result.",
        "version": "0.0",
        "x-build-id": "XwdRwnXe5UQ3mugy4"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~bursa-malaysia-stock-screener/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-bursa-malaysia-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~bursa-malaysia-stock-screener/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-bursa-malaysia-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~bursa-malaysia-stock-screener/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-bursa-malaysia-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "limit": {
                        "title": "Maximum number of stocks to return",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of Bursa Malaysia (KLSE) listings to return. Use a small number (5-20) for quick smoke tests and exploration; larger values (30-100) to scan the full FTSE Bursa Malaysia KLCI or broader Bursa universe. Each returned stock is billed independently at $0.25 per stock.",
                        "default": 30
                    },
                    "index": {
                        "title": "Index universe",
                        "enum": [
                            "KLCI",
                            "Bursa-all"
                        ],
                        "type": "string",
                        "description": "Which Bursa Malaysia universe to screen. 'KLCI' returns the 30 FTSE Bursa Malaysia KLCI blue chips (Maybank, Public Bank, Tenaga Nasional, CIMB, IHH, Petronas Chemicals, Sime Darby, MISC, Axiata, MAXIS, etc.). 'Bursa-all' covers a broader Malaysian listing universe across the Main Market including mid-caps and ACE Market growth names.",
                        "default": "KLCI"
                    },
                    "min_market_cap_myr_billion": {
                        "title": "Minimum market capitalization (billion MYR)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter out small-cap stocks below this market capitalization threshold, expressed in billion Malaysian Ringgit (MYR). For reference: 1 billion MYR is approximately 215 million USD; the largest Malaysian blue chips such as Maybank, Public Bank, Tenaga Nasional and CIMB have market caps in the tens to low-hundreds of billions of MYR. Use 0 to disable the filter.",
                        "default": 0
                    },
                    "sector": {
                        "title": "Sector filter",
                        "enum": [
                            "",
                            "Financials",
                            "Utilities",
                            "Consumer Staples",
                            "Consumer Cyclical",
                            "Communication Services",
                            "Energy",
                            "Basic Materials",
                            "Industrials",
                            "Healthcare",
                            "Real Estate",
                            "Technology"
                        ],
                        "type": "string",
                        "description": "Optional sector filter applied to results. Malaysia's listed market is dominated by Financials (Maybank, Public Bank, CIMB, RHB, Hong Leong), Utilities (Tenaga Nasional, Petronas Gas, YTL Power), Consumer Staples (Nestle Malaysia, F&N, Dutch Lady), Basic Materials and palm oil plantations (Sime Darby Plantation, IOI Corp, Kuala Lumpur Kepong, Genting Plantations), Energy (Petronas Chemicals, Petronas Dagangan, Dialog Group), Healthcare (IHH Healthcare, KPJ), Communication Services (Maxis, Axiata, CelcomDigi, Telekom Malaysia), and Industrials/Real Estate (Sime Darby, Gamuda, IOI Properties). Leave blank to include all sectors.",
                        "default": ""
                    },
                    "sharia_only": {
                        "title": "Sharia-compliant stocks only",
                        "type": "boolean",
                        "description": "If true, return only stocks designated as Sharia-compliant by the Securities Commission Malaysia (SC) Shariah Advisory Council. Approximately 75-80% of Bursa Malaysia listed equities are Sharia-compliant (notable exclusions: conventional banks like Maybank, Public Bank, CIMB — though their Islamic banking subsidiaries are separately listed/compliant — and gambling/alcohol names like Genting and Carlsberg). Malaysia is the global hub for Islamic finance and Sharia-compliant equity is a meaningful niche universe.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
