mudah.my APImudah.my ↗
Search and retrieve used car and motorcycle listings from Mudah.my. Filter by make, price range, and page. Get full listing details including seller info and images.
curl -X GET 'https://api.parse.bot/scraper/9512b984-45da-4cff-b5d1-bc813aff6aa7/search_cars?page=1&price_range=30000-80000' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for car listings in Malaysia with optional filters for brand and price range. Returns paginated results sorted by most recent.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| make_id | string | Brand ID to filter by (e.g., '10' for Honda, '25' for Perodua). |
| price_range | string | Price range filter in MYR, formatted as 'min-max' (e.g., '20000-50000') or 'min-' for open-ended (e.g., '50000-'). |
{
"type": "object",
"fields": {
"meta": "object with total-results count, total-showing per page, and took (search time in ms)",
"listings": "array of car listing objects with id, title, price, make, model, year, mileage, condition, transmission, url, and more"
},
"sample": {
"data": {
"meta": {
"took": 17,
"total-results": 29147,
"total-showing": 24
},
"listings": [
{
"id": 114713831,
"url": "https://www.mudah.my/2022-perodua-myvi-1-5-av-a-fsr-1owner-114713831.htm",
"date": "2026-05-14 21:57:42",
"make": "Perodua",
"year": "2022",
"ad_id": 134732690,
"image": "https://img.rnudah.com/images/29/2983524470541446753.jpg",
"model": "MyVi",
"price": 43800,
"title": "2022 Perodua MYVI 1.5 AV (A) FSR 1OWNER",
"region": "Kuala Lumpur",
"list_id": 114713831,
"mileage": "55000-59999",
"location": "Kuala Lumpur - Sungai Besi",
"condition": "Used",
"fuel_type": "petrol",
"price_label": "RM 43,800",
"transmission": "Auto",
"engine_capacity": "1496"
}
]
},
"status": "success"
}
}About the mudah.my API
The Mudah.my API provides access to Malaysia's largest used vehicle marketplace through 3 endpoints covering cars, motorcycles, and individual listing details. The search_cars endpoint accepts filters for brand (via make_id) and price range in MYR, returning paginated arrays with fields like make, model, year, mileage, condition, and transmission. The get_listing_details endpoint returns seller contact information, image URLs, subarea, and the full ad description text.
Endpoints and What They Return
The API exposes three endpoints. search_cars searches car listings with optional make_id (e.g., '10' for Honda, '25' for Perodua) and price_range filters formatted as 'min-max' or 'min-' for open-ended ranges. Results include a meta object with total-results, total-showing, and took (search latency in ms), plus an array of listing objects with id, title, price, make, model, year, mileage, condition, transmission, and url. search_motorcycles works similarly but filters by price_min integer rather than a range string, and its listing objects include region alongside the standard fields.
Listing Detail Retrieval
get_listing_details accepts a full listing URL (as returned in search results) and returns a richer object: images (array of URLs), seller (name and phone), region, subarea, description (HTML-stripped ad text), and an attributes object containing all raw listing attributes from the source. This endpoint is the only one that exposes seller contact details and full image sets.
Pagination and Filtering
Both search endpoints support a page integer parameter for paginating through results, which are sorted by most recent listing. Make filtering is only available on search_cars via make_id; motorcycle results can be narrowed by minimum price but not by brand. All prices are denominated in Malaysian Ringgit (MYR).
- Track price trends for specific car brands by polling
search_carswith a fixedmake_idover time - Build a cross-listing alert tool that monitors newly posted vehicles using the
pageparameter and listingiddeduplication - Aggregate seller contact details from
get_listing_detailsfor a vehicle sourcing or fleet procurement workflow - Compare asking prices for a given make and model across different MYR price bands using the
price_rangefilter - Populate a used motorcycle price database for the Malaysian market using
search_motorcycleswith incremental pagination - Display full image galleries and ad descriptions in a third-party vehicle comparison app via
get_listing_details - Filter affordable used cars under a target budget by setting an upper bound in the
price_rangeparameter
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Mudah.my have an official developer API?+
Can I filter car listings by model, not just brand?+
search_cars endpoint filters by make_id (brand) and price_range only. Model-level filtering is not currently supported. You can fork this API on Parse and revise it to add a model filter parameter to the search endpoint.What does the `attributes` field in `get_listing_details` contain?+
attributes object returns all raw listing attributes from the source page — this typically includes fields like fuel type, colour, number of owners, and engine capacity, depending on what the seller entered. The exact keys vary by listing.Is motorcycle brand filtering supported like it is for cars?+
search_motorcycles supports only a price_min filter, not a brand or model filter. Car listings support brand filtering through make_id. You can fork this API on Parse and revise it to add brand filtering to the motorcycle search endpoint.How fresh are the listings returned by the search endpoints?+
id is the standard approach for monitoring new listings.