KLSE Screener — Bursa Malaysia Listed Companies avatar

KLSE Screener — Bursa Malaysia Listed Companies

Pricing

Pay per event

Go to Apify Store
KLSE Screener — Bursa Malaysia Listed Companies

KLSE Screener — Bursa Malaysia Listed Companies

Scrape Bursa Malaysia listed companies via KLSE Screener. Three modes: full KLSE roster (P/E, dividend yield, ROE, EPS, NTA), per-company quarterly financials, and the live Bursa announcement stream. For retail-investor tooling, quant screeners and equity-research desks. No API key needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

KLSE / Bursa Malaysia Listed Company Scraper

Scrape the entire Bursa Malaysia (KLSE) listed-company universe. Returns the full Main / ACE / LEAP market roster with current prices and fundamentals, per-company deep financials, and the live company-announcement stream mirrored from Bursa LINK.

What you get

Roster snapshot — a single call returns ~1,139 rows covering every stock listed on Bursa Malaysia's three market boards:

FieldDescription
stock_codeBursa 4-digit code (e.g. 1155 = Maybank)
stock_nameTicker short name
company_full_nameFull registered company name
market_boardMAIN / ACE / LEAP
sectorBursa sector classification
last_priceLast traded price (MYR)
price_change / price_change_pctIntraday movement
volumeTraded volume
market_cap_rmMarket capitalisation (MYR millions)
epsEarnings per share (sen)
pe_ratioPrice/earnings ratio
dividend_yield_pctDividend yield (%)
roe_pctReturn on equity (%)
ntaNet tangible assets per share
week_52_high / week_52_low52-week range

Company deep-dive — per-company financials for specific stock codes:

  • Annual revenue and net profit history
  • 52-week price range, ROE, EPS, NTA, market cap, shares outstanding
  • Supply a list of stock codes or leave blank to derive from the roster

Announcement stream — the live Bursa company-announcement feed, paginated:

  • Announcement title, category, company name, datetime
  • Categories: Financial Results, General Announcement, Changes in Corporate Info, etc.
  • Filter by category or scrape all

Modes

ModeInputDescription
roster_snapshotFull ~1,139-company roster with fundamentals
company_deepstockCodesPer-company financials for supplied codes
announcementsannouncementCategoriesLive announcement stream (paginated)

Why KLSE Screener (not Bursa Malaysia official)

The official bursamalaysia.com site is Cloudflare-challenged on every market-data path (verified 403 + "Just a moment" interstitial). KLSE Screener mirrors the same Bursa data without Cloudflare. The roster endpoint returns all listed companies in a single AJAX call (~2.9 MB) with complete fundamentals — no page-by-page pagination required.

Input

{
"mode": "roster_snapshot",
"maxItems": 200,
"stockCodes": ["1155", "1023"],
"sectors": [],
"announcementCategories": [],
"sp_intended_usage": "Building a screener for MY retail investors",
"sp_improvement_suggestions": ""
}

Parameters

ParameterDefaultDescription
moderoster_snapshotWhich data to scrape
maxItems200Maximum records to return
stockCodes[]For company_deep mode: Bursa 4-digit codes. Empty = use roster
sectors[]For roster_snapshot: filter by sector name. Empty = all sectors
announcementCategories[]For announcements: filter by category. Empty = all

Output sample (roster_snapshot)

{
"record_type": "company",
"stock_code": "1155",
"stock_name": "MAYBANK",
"company_full_name": "MALAYAN BANKING BERHAD",
"market_board": "MAIN",
"sector": "Banking",
"sub_sector": "Financial Services",
"last_price": 11.1,
"price_change": 0.04,
"price_change_pct": 0.36,
"volume": 12340000,
"market_cap_rm": 134300,
"eps": 86.93,
"pe_ratio": 12.77,
"dividend_yield_pct": 5.68,
"roe_pct": 11.24,
"nta": 7.73,
"week_52_high": 12.42,
"week_52_low": 9.39,
"source_url": "https://www.klsescreener.com/v2/screener/quote_results",
"scraped_at": "2026-05-17T00:37:00.000Z"
}

Use cases

  • Quant screeners: Pull the entire ~1,139-company universe with P/E, DY, ROE, EPS in one run — filter for value/dividend/growth criteria
  • Retail investor tools: Power a portfolio tracker or stock discovery app for the Malaysian market
  • Research desks: Monitor the Bursa announcement feed for material information, substantial-shareholding changes, and quarterly results
  • Data pipelines: Feed an automated screener or alerting system — run on a schedule, compare snapshots to detect price movement or new announcements

Pricing

Per-result pricing via Apify PPE. The roster snapshot fetches all ~1,139 companies in a single network call, making it exceptionally cost-efficient for full-universe pulls.

Notes

  • No API key required
  • Datacenter proxy sufficient — KLSE Screener has no Cloudflare protection
  • Self-throttle applies (~1 req/2s for detail pages) to respect the site's AdSense-funded free model
  • Data is sourced from KLSE Screener which mirrors Bursa Malaysia's official listing; prices may lag real-time by minutes