Motorist.sg Scraper - Singapore Used Cars & Dealer Leads
Pricing
from $4.00 / 1,000 used car listing scrapeds
Motorist.sg Scraper - Singapore Used Cars & Dealer Leads
Scrape used-car listings from Motorist.sg — price, depreciation, COE, OMV, ARF, mileage, reg date, full specs and photos, plus dealer/seller name, phone & WhatsApp for lead generation. Filter, monitor price drops. No login or API key.
Pricing
from $4.00 / 1,000 used car listing scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Motorist.sg Scraper — Singapore Used Cars & Dealer Leads
Extract complete used-car data from Motorist.sg — one of Singapore's fastest-growing car marketplaces and transaction platforms. Get every field that matters: price, yearly depreciation, monthly installment, COE left, registration date, mileage, number of owners, OMV, ARF, road tax, engine capacity, power, transmission, fuel type and the full photo gallery — plus, for lead generation, the dealer/seller's name, mobile number and WhatsApp link on every car.
No login, no cookies, no API key — fast extraction straight from Motorist's structured listing pages, with monitor mode to capture only new cars and price drops on a schedule.
Why this Motorist.sg scraper?
Most car scrapers grab the listing card and stop — a price and a photo, no contact and no cost-of-ownership numbers. This actor reads each Motorist listing in full and ships the richest Motorist.sg dataset in the category: every dealer turned into a contactable lead, plus the COE / OMV / ARF / depreciation figures Singapore buyers actually decide on.
| Data | Typical car scrapers | This actor |
|---|---|---|
| Price + monthly installment | ✅ | ✅ |
| Yearly depreciation | ❌ | ✅ |
| COE left (years + months) + registration date | partial | ✅ |
| Mileage + number of owners | partial | ✅ |
| OMV, ARF, road tax | ❌ | ✅ |
| Engine capacity, power (kW + bhp), transmission, fuel type | ❌ | ✅ |
| Dealer / seller name + mobile + WhatsApp | ❌ | ✅ on every car (detail mode) |
| Full photo gallery (all images, full-size) | ❌ first photo | ✅ |
| Cars and commercial vehicles, by body type or make | partial | ✅ |
| Monitor mode — new cars + price drops | ❌ | ✅ |
| No start fee | ❌ | ✅ |
Use cases
- Car dealer & seller lead generation — every detail page carries the dealer/seller's name, mobile number and WhatsApp link. Filter by make, price band or body type and build targeted outreach lists of Singapore car dealers.
- Pricing & depreciation intelligence — track asking prices, yearly depreciation, COE left and OMV/ARF across makes and body types; spot under- and over-priced units and segment trends.
- Cost-of-ownership & valuation screening — compare depreciation, OMV, ARF, road tax and COE remaining to shortlist value buys; filter by mileage, owners and price.
- New-listing & price-drop monitoring — watch a make, body type or the whole market for new cars and price reductions with monitor mode.
- Marketplaces & dashboards — power a Singapore used-car feed or BI dashboard from scheduled runs.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Motorist.sg Scraper, pick the segments (body type or make) — or paste Motorist category URLs — set any filters, and click Start.
- Watch results stream into the dataset table — one clean row per car.
- Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.
Input
{"segments": ["all-vehicles"],"includeDetails": true,"makes": ["Toyota", "BMW"],"minPrice": 50000,"maxPrice": 150000,"maxMileageKm": 80000,"minCoeMonthsLeft": 60,"maxResults": 200,"monitorMode": false}
- segments — body types (
all-vehicles,sedan,suv,hatchback,mpv,luxury-car,sports-car,stationwagon,hybrid-car,electric-car,diesel-car,all-commercial,truck,van,pickup,bus-mini-bus,vintage-car,motorcycle) or make slugs (toyota,bmw,mercedes-benz,honda, …). - startUrls — optional: paste Motorist category URLs (e.g.
https://motorist.sg/used-cars/suv); they override the segments above. - includeDetails (default true) — open each car's detail page to add OMV/ARF/road tax/engine/power/transmission/fuel, the full photo gallery and the dealer/seller phone & WhatsApp lead. Turn off for a fast, cheap grid-only run.
- minPrice / maxPrice — asking-price bounds (SGD). maxMileageKm / maxDepreciation / minCoeMonthsLeft / maxOwners — narrow by condition. makes / fuelTypes — keep only matching cars.
- maxResults / maxResultsPerSegment (default 100 / 0) — caps for test runs or budget control.
- monitorMode (default false) — emit only new or price-changed cars since the last run (see below).
- dedupStoreName (default
motorist-sg-state) — named store holding the monitor state. - proxyConfiguration — proxy settings (default Apify datacenter proxy; residential is not needed).
Output
One clean record per car:
{"listingId": 44004,"url": "https://www.motorist.sg/used-car/44004/lexus-ls500h-i-package","title": "LEXUS LS500H I PACKAGE","make": "Lexus","model": "LS500H I Package","adTier": "Premium","price": 369800,"currency": "SGD","depreciationPerYear": 38943,"monthlyInstallment": 3099,"registrationDate": "18/07/2023","registrationDateIso": "2023-07-18","coeLeftText": "(9y 5m COE left)","coeYearsLeft": 9,"coeMonthsLeft": 5,"coeMonthsTotalLeft": 113,"coeExpiryDate": "22/12/2035","coeExpiryDateIso": "2035-12-22","manufactureYear": 2023,"numberOfOwners": 1,"mileageKm": 27400,"omv": 56397,"arf": 79155,"roadTaxPerYear": 6200,"engineCapacityCc": 3456,"powerKw": 264,"powerBhp": 354,"transmission": "Auto","fuelType": "Petrol-Electric","scheme": "Normal","features": "Airbags, ABS, powerful and reliable 3.5L V6 Hybrid engine, keyless entry/start, cruise control, Moonroof.","accessories": "Leather seats, sports rims, heads up display, ventilated seats, blind spot monitor, electric seats.","description": "Elegant Lexus LS 500 hybrid, made in Japan, genuine low mileage, very well maintained, easy financing available.","dealerName": "Prime Motor & Leasing Pte Ltd","sellerName": "Larry Toh","sellerPhone": "96861029","sellerWhatsapp": "https://wa.me/6596861029","contacts": [{ "name": "Larry Toh", "mobile": "96861029", "whatsappUrl": "https://wa.me/6596861029" },{ "name": "Stanley Ng", "mobile": "97953533", "whatsappUrl": "https://wa.me/6597953533" }],"photoCount": 12,"photos": ["https://motoristprod.s3.ap-southeast-1.amazonaws.com/.../photo_1.jpeg", "..."],"thumbnailUrl": "https://motoristprod.s3.ap-southeast-1.amazonaws.com/.../thumb_1.jpeg","postedDate": "26 Jun 26","leadScore": 95,"sourceCategory": "all-vehicles","scrapedAt": "2026-06-26T04:30:00.000Z"}
What to expect (field coverage)
Motorist is dealer-entered data, so some fields appear only when the dealer published them. All prices are in SGD.
| Field group | Always present | Present when published / in detail mode |
|---|---|---|
| Identity & price | listingId, url, title, make, price, depreciationPerYear, registrationDate | model, monthlyInstallment, adTier, bodyType* |
| Condition | coeLeftText, coeMonthsTotalLeft, mileageKm, numberOfOwners | coeExpiryDate, manufactureYear (detail) |
| Specs (detail mode) | — | omv, arf, roadTaxPerYear, engineCapacityCc, powerKw/Bhp, transmission, fuelType, scheme |
| Dealer lead (detail mode) | dealerName | sellerName, sellerPhone, sellerWhatsapp, contacts[] |
| Content (detail mode) | — | description, features, accessories |
| Media | thumbnailUrl | photos[], photoCount (detail mode) |
| Scoring | leadScore, sourceCategory, scrapedAt | — |
A blank field means it wasn't published for that car — never that scraping failed. Nothing is dropped, so you always get the richest record available.
Dealer/seller leads (phone, WhatsApp, contact name), the OMV/ARF/engine/power specs and the description/features/accessories come from each car's detail page — keep
includeDetailson (the default) to get them.*
bodyTypeis filled only when you scrape a body-type segment (e.g.suv,sedan); it is blank when scrapingall-vehiclesor a specific make.
Monitor only new cars & price drops
Turn on monitorMode and the actor saves the price of every car it has seen in a named key-value store (dedupStoreName), then on each later run emits only cars that are new or whose price changed — tagged with monitorStatus:
new— a car not seen before.price_drop— the price fell (withpreviousPrice).price_increase— the price rose (withpreviousPrice).
The first run emits everything (and seeds the state); subsequent runs emit only the delta. Combined with a daily Schedule, you get a clean feed of just the new cars and price reductions for your search — perfect for buyer alerts, dealer prospecting and BI ingestion.
- Monitor mode is the actor's own dedupe layer — it complements, and does not conflict with, Apify Schedules (a cron trigger) or the Console Monitoring tab (charts & alerts). The Schedule triggers the run; monitor mode decides what's worth saving.
- Use a distinct
dedupStoreNameper independent monitor so their states don't mix. - If you schedule frequent runs, enable the Schedule's exclusive option so a new run doesn't start before the previous one finishes writing its state.
- Heads-up: a quiet run legitimately returns 0 items, which can trip a Console Monitoring "results lower than N" alert — expected behaviour, not an error.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it daily to track a make, body type or the whole market; pair with
monitorModefor new-car and price-drop alerts. - Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/motorist-scraper').call({segments: ['suv'],makes: ['Toyota'],monitorMode: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} new / price-changed cars & dealer leads`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new dealer leads straight into your CRM.
- Slack — get notified when a monitored make lists a car or drops a price.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find Toyota SUVs under $120k with at least 5 years COE left and list the dealers with their WhatsApp" and let it run the scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete Singapore automotive, property, lead-gen & market-intelligence stack:
- SGCarMart Used Car Scraper — Singapore's biggest used-car portal: prices, COE/OMV/ARF and dealer leads.
- 99.co Property Scraper — Singapore property listings and agent leads from 99.co.
- EdgeProp.sg Scraper — Singapore property, PSF, rental yield and agent leads.
- Singapore Company Scraper — UEN, company registry and business leads (enrich a dealer by name/UEN).
- MyCareersFuture Scraper — Singapore government jobs with salaries and employer UEN.
- JobStreet Singapore Scraper — jobs, salaries and company data from JobStreet.
- FairPrice Scraper — Singapore grocery prices and products.
- Google Maps Scraper — local business leads with phone, website and reviews.
Tips
- Dealer prospecting: keep
includeDetailson so every car carries the dealer/seller name, mobile and WhatsApp — no enrichment step needed. Filter bymakeor price band to build a focused outreach list, and dedupe bysellerPhone. - Value screening: sort the dataset by
depreciationPerYear,omvorcoeMonthsTotalLeftto surface value buys. - Cheap sampling: turn
includeDetailsoff (and/or set a smallmaxResults) for a fast, cheap grid-only run with no phone numbers. - Recurring monitoring: combine
monitorModewith Schedules and a webhook to push new cars and price drops into your CRM the moment they appear.
FAQ
How do I scrape a specific make or body type? Add it to segments (e.g. bmw or suv), or paste a Motorist category URL into startUrls. Use makes, minPrice/maxPrice, maxMileageKm and minCoeMonthsLeft to narrow further.
Does it need a Motorist API key or login? No. This actor reads Motorist's public listing pages — no key, cookie or login required.
Where does the dealer's phone number come from? From the car's own public detail page on Motorist, where the dealer/seller publishes their mobile and WhatsApp contact. Keep includeDetails on to collect it.
Why are some specs (OMV, ARF, power) or the phone empty with detail mode off? Those live on each car's detail page. Turn includeDetails on (the default) to capture them.
Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
How do I monitor new cars or price drops automatically? Turn on monitorMode and create a Schedule. Each run outputs only new/changed cars, tagged with monitorStatus and previousPrice.
A field is empty — why? Some dealers don't publish every field (e.g. number of owners, OMV). Fields are blank only when the data wasn't published — never because the scraper skipped them.
Is scraping Motorist legal? This actor collects publicly available data only. You're responsible for using the data in compliance with applicable laws (e.g. Singapore's PDPA for personal data) and Motorist's terms.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.