BusinessList.my Malaysia Business Directory Scraper
Pricing
from $3.00 / 1,000 results
BusinessList.my Malaysia Business Directory Scraper
Scrape businesslist.my, Malaysia's verified online business directory with 280,000+ listings. Search by category and city to get business name, address, phone, category, website, rating, opening hours, and more.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
BusinessList.my Scraper - Malaysia Business Directory
Scrape businesslist.my — Malaysia's verified online business directory with 280,000+ listings across 210 cities and towns. Search any business category in any Malaysian city (or nationwide) and get business names, addresses, phone numbers, ratings, verification status, and more. Optionally follow through to each business's full profile page for website, description, structured opening hours, precise GPS coordinates, and all listed categories. No login, no cookies, no API key required.
What this actor does
- Two modes:
search(free-text keyword, and/or category and/or city browse) andbyUrl(direct business profile URLs) - Directory-wide keyword search — search by business name, service, or product (e.g. "laksa", "web design", "car rental") instead of browsing a fixed category list
- 367 curated categories to pick from — every category businesslist.my publishes, from Restaurants and Hotels to niche trades like Solar Panels or Pest Control — or type any custom category slug
- 96 curated Malaysian cities/towns — Kuala Lumpur, Penang, Johor Bahru, Kuching, Kota Kinabalu, and more — or type any custom city
- Nationwide or city-scoped — leave the city empty for a nationwide category browse, or leave the category empty to browse every category in one city
- Sort by relevance, rating, review count, or name (A-Z)
- Filter by verified-listing status, minimum rating (0-5 stars), and minimum review count
- Rich business profiles — real (unmasked) website URL, full description, structured opening hours, exact GPS coordinates, all listed categories, registration/last-updated dates
- Empty fields are omitted — you only ever see fields that were actually found for a business
Output per business
name— business namecategory— primary listed category,categories[]— all categories the business is listed under (when profile fetched)rating— average star rating (0-5),reviewCount— number of written reviewsverified— whether the listing carries businesslist.my's "Verified Listing" badgestreet,postalCode,city,state,countrylatitude,longitude— GPS coordinatesphone,alternatePhones[]— additional phone numbers if published, including a separately listed mobile number (when profile fetched)managerName— the business's listed manager/contact person, when published (when profile fetched)sponsored— whether the listing is a paid/sponsored placement on its search results page (mode=search)website— the business's real destination URL (when profile fetched)tagline— short one-line business taglinedescription— full business description (when profile fetched)openingHours[]— structured weekly opening hours (when profile fetched)photoCount— number of photos on the listing,logoUrl/imageUrl— business photoestablishedYear— year the business was established (when published),yearsWithUs— years registered with the directoryregisteredAt,lastUpdatedAt— when the listing was created/last updated on the directory (when profile fetched)searchCategory,searchCity— the search parameters used (mode=search)sourceUrl— canonical businesslist.my profile URL for the businessrecordType: "business",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string (select) | search | search (keyword/category/city browse) or byUrl (fetch by URL) |
searchQuery | string | – | Free-text keyword search across business names/services/taglines (e.g. "laksa", "web design"), directory-wide. Takes priority over category (mode=search) |
category | string (select) | restaurants | Pick one of 367 categories, or custom to use customCategory. Ignored when searchQuery is set (mode=search) |
customCategory | string | – | Any free-text category slug, overrides category (mode=search) |
city | string (select) | – (all cities) | Pick one of 96 curated Malaysian cities, or leave empty for nationwide (mode=search) |
customCity | string | – | Any free-text city slug not in the dropdown, overrides city (mode=search) |
businessUrls | array | – | businesslist.my company profile URLs to fetch directly (mode=byUrl) |
sortBy | string (select) | relevance | relevance / rating / reviews / name (A-Z) — applied client-side across the fetched batch |
minRating | integer | 0 (no minimum) | Only return businesses rated at least 0-5 stars |
minReviews | integer | 0 (no minimum) | Only return businesses with at least this many reviews |
verifiedOnly | boolean | false | Only return businesses with the "Verified Listing" badge |
fetchDetails | boolean | false | Also visit each business's profile page for richer data (slower — roughly doubles requests) |
maxItems | integer | 20 | Hard cap on returned records (1-1000) |
At least one of searchQuery, category/customCategory, or city/customCity must be set for mode=search.
Example: keyword search for "web design" in Penang
{"mode": "search","searchQuery": "web design","city": "penang","maxItems": 20}
Example: search restaurants in Kuala Lumpur
{"mode": "search","category": "restaurants","city": "kuala-lumpur","maxItems": 20}
Example: highest-rated hotels in Penang, with full profiles
{"mode": "search","category": "hotels","city": "penang","sortBy": "rating","fetchDetails": true,"maxItems": 30}
Example: verified dentists nationwide
{"mode": "search","category": "dentists","verifiedOnly": true,"maxItems": 50}
Example: every business category in Kuching
{"mode": "search","city": "kuching","maxItems": 40}
Example: fetch specific business profiles
{"mode": "byUrl","businessUrls": [{ "url": "https://www.businesslist.my/company/209832/ah-cheng-laksa" }]}
Use cases
- Local lead generation — build a prospect list of Malaysian businesses by trade and city for B2B outreach
- Market research — measure business density and average ratings for a category across Malaysian cities and states
- Directory aggregation — feed structured Malaysian business data into your own local-search product
- Competitor mapping — see who else operates in a category and area, with ratings and contact info
- Franchise & site-selection analysis — evaluate service-business coverage across Malaysian states and cities
Limitations
- Email addresses are not included. businesslist.my gates every listing's email behind a "Show Email"/sign-in action — this actor never accesses gated content, so
emailis never populated. sortByis applied client-side. businesslist.my's listing pages don't expose a server-side sort parameter, so sorting is applied across the batch of records this run actually collected, not the entire category/city.- Some fields are only available with
fetchDetails: true(mode=search) or inbyUrlmode. The listing/browse pages show name, address, phone, rating, verification status, and a short tagline; website, full description, structured opening hours, and all listed categories require visiting the business's own profile page. minRatingandminReviewsrequire the field to be present. A business with no rating yet is excluded once you set a minimum, since there's nothing to compare against; it is not treated as passing.
FAQ
What data source does this actor use? It reads the publicly available category, city, and business-profile pages on businesslist.my, Malaysia's online business directory. No account or API key is needed.
Is this affiliated with businesslist.my? No. This is an independent, third-party actor that reads publicly accessible pages.
Why do some businesses have no rating, website, or photo? businesslist.my only shows a rating once a business has received at least one review, and only shows contact/website details a business itself provided. Fields with no data are simply omitted from the record rather than shown as empty or null.
Can I search a whole state instead of a single city?
The directory itself only exposes city-level browsing (no state-level browse page), but every business record includes its state field (parsed from the business's own address), so you can filter the output dataset by state after the run.
Can I search all of Malaysia at once?
Yes — leave city empty and set only category for a nationwide search across all cities.
How accurate are the GPS coordinates?
latitude/longitude are available on every search result; with fetchDetails: true (or in byUrl mode) they come directly from the business's own profile page for maximum precision.
Why is fetchDetails off by default?
Fetching each business's full profile page requires one extra request per result, which is slower. Turn it on when you need website, full description, structured opening hours, or all listed categories.
Does this actor need a proxy or login? No — businesslist.my's category, city, and profile pages are served without a login wall, so this actor runs entirely on Apify's free plan with no credentials required. It automatically uses Apify's free proxy to stay reliable against occasional rate limiting.