Mudah.my Scraper — Malaysia Marketplace Listings & Prices avatar

Mudah.my Scraper — Malaysia Marketplace Listings & Prices

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Mudah.my Scraper — Malaysia Marketplace Listings & Prices

Mudah.my Scraper — Malaysia Marketplace Listings & Prices

Scrape Mudah.my, Malaysia’s largest online marketplace, in bulk: listing title, price in MYR, item condition, category, image and the canonical listing URL as separate, sortable columns. Browse any category or run a keyword search. No login, no API key. Export to JSON, CSV or Excel.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Scrape Mudah.my, Malaysia's largest online marketplace, in bulk — no login, no API key, no browser. Point the Actor at any category or result page and it walks the pages, parses every card into flat, sortable columns, and saves rows as it goes.

12 columns per row · thousands of rows per run · numeric prices, not strings · JSON, CSV, Excel or API · pay only for the rows you keep.


Why this Mudah.my scraper

Mudah.my publishes everything a buyer needs on the result page — but as prose, inside a card, behind pagination. Reading it at any useful scale by hand is not realistic, and copy-paste gives you text where you need numbers.

This Actor turns those pages into a table. price is a number, not "1.149,90 €". Location, seller and category are their own columns instead of one blob. That is the difference between data you can pivot on and data you have to clean first.

It is built on the same engine as the rest of this fleet, which means three things you only notice when they are missing:

  • It respects the clock. Every run carries a time budget and saves rows continuously, so a slow page never costs you the whole run.
  • One bad page does not end the crawl. An unreachable page is retried, then skipped and logged — not treated as the end of the listing.
  • It says what it did. Row counts, skipped pages and stop reasons all appear in the log, so a short run is always explainable.

What you get

Price monitoring across a Malaysian category

Track what phones, cars or furniture actually sell for on Mudah week by week. Because every row carries a numeric price rather than a formatted string, you can chart medians, spot undercutting and build a repricing rule without cleaning the data first.

Sourcing and arbitrage

Pull a full category, sort by price ascending and filter on condition to surface underpriced used stock before it moves.

Market research for Malaysia

Category-level supply and price distribution is the cheapest proxy there is for local demand. Export to Excel, pivot on category, and you have a picture no survey will give you at this price.

Feeding a marketplace or comparison app

listingUrl, imageUrl, price and condition are exactly the fields a comparison front-end needs, and they arrive already normalised.


Input

FieldTypeWhat it does
startUrlstringAny Mudah.my category or result URL. The Actor paginates from here.
searchQuerystringOptional keyword. When set, the site is searched for it and the category URL is ignored.
maxResultsintegerStop after this many rows (default 200).
proxyConfigurationobjectApify Proxy settings. The default is fine.

Example input

{
"startUrl": "https://www.mudah.my/malaysia/mobile-phones-tablets-for-sale",
"searchQuery": "",
"maxResults": 200,
"proxyConfiguration": { "useApifyProxy": true }
}

Output

One row per listing, 12 columns:

ColumnTypeDescription
listingIdstringMudah listing id taken from the listing URL.
titlestringListing headline as shown on Mudah.
listingUrlstringCanonical link to the listing.
pricenumberAsking price as a number.
priceMinnumberLower bound when the seller advertises a range.
currencystringAlways MYR.
conditionstringNew or used, as declared by the seller.
categorystringMudah category the listing sits in.
imageUrlstringFirst listing photo.
countrystringAlways Malaysia.
sourcestringAlways mudah_my.
scrapedAtstringISO timestamp of collection.

Example row

{
"listingId": "…",
"title": "…",
"listingUrl": "…",
"price": 0,
"priceMin": 0,
"currency": "…",
"condition": "…",
"category": "…",
"imageUrl": "…",
"country": "…",
"source": "…",
"scrapedAt": "…"
}

Export from the Apify Console as JSON, CSV, Excel, XML or RSS, or pull it straight from the Dataset API.


How to use it

  1. Open the Actor and paste a Mudah.my category URL into Category or listing URL.
  2. Set Maximum results to how many rows you want.
  3. Click Start. Rows appear in the dataset while the run is still going.
  4. Export, or schedule the run daily and diff the results to track price moves.

You can also run it from the Apify API, the JavaScript client or the Python client, and wire the output into Google Sheets, Zapier, Make or your own warehouse.


Frequently asked questions

Do I need a Mudah account or API key?

No. The Actor reads the same public pages your browser does. There is no login and no third-party key.

Can I scrape a keyword search instead of a category?

Yes. Fill in Search keyword and the category URL is ignored.

How many listings can I get?

As many as the category holds. Raise Maximum results; the Actor walks pages until the target is met or the listing runs out.

Is the price a number or text?

A number. price is parsed to a numeric column so you can sort and average it directly.

Which currency?

Malaysian ringgit (MYR), stated explicitly in the currency column.

How much does it cost?

You pay per row kept, plus Apify platform usage. A 1,000-row run is inexpensive; run it on a schedule and you have a continuous price feed for the cost of a coffee.

Is scraping Mudah.my legal?

This Actor reads only publicly available pages — the same ones anyone can open in a browser — and collects no personal data beyond the seller display name that Mudah.my itself publishes next to each listing. You are responsible for how you use the output, including compliance with Mudah.my's terms and with data-protection law such as the GDPR. If in doubt, take legal advice.


Browse the rest of the fleet for country marketplace, classifieds, property and company-registry scrapers covering more than eighty countries.


Support

Found a broken column or a site change? Open an issue on the Actor's Issues tab and it will be looked at. This Actor is actively maintained — see the Changelog for its history.


Mudah.my is a trademark of its respective owner. This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Mudah.my.


Use cases

  • Export listings in bulk and analyse them in a spreadsheet or database.
  • Track how the data changes over time by scheduling repeat runs.
  • Feed listings into a dashboard, CRM or internal tool through the Apify API.
  • Build a research dataset without writing or maintaining a scraper.
  • Monitor Mudah.my for new entries and alert your team when they appear.

Other Actors from the same collection:

Mudah.my scraping — frequently asked questions

Do I need a Mudah.my API key, account or login?

No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.

How do I export Mudah.my data to CSV, Excel, JSON or Google Sheets?

Open the Storage tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.

Can I schedule this Mudah.my scraper to run daily or hourly?

Yes. Use the Schedules tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the ads you care about really do change that fast.

How many ads can I get, and what does it cost?

See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.

This Actor collects only information that Mudah.my publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.

What happens if Mudah.my blocks the run or changes its layout?

A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run fails with the reason instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".

Can I use this with an AI agent, LangChain or an MCP client?

Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.

This Actor collects publicly available information from Mudah.my only. It does not log in, does not circumvent access controls, and collects no private data. You are responsible for using the output lawfully, including under GDPR and comparable regimes where the rows contain personal data, and for respecting Mudah.my's terms where they apply to you.