SGCarMart Vehicle Scraper
SGCarMart Used Car Listings Scraper
Scrape used car listings from SGCarMart, Singapore's dominant vehicle marketplace. Returns make, model, price, COE remaining, OMV, ARF, depreciation, mileage, and dealer contact details for the ~15,000 cars currently for sale on the site.
SGCarMart Vehicle Scraper Features
- Pulls listings from the live SGCarMart used-car catalogue.
- Returns Singapore-specific fields the rest of the auto-data world ignores — COE remaining, OMV, ARF, deregistration value, road tax.
- Covers 35+ output fields per car including dealer name, phone, and address.
- Filters by body type (Sedan, SUV, MPV, Hatchback, etc.) via a single dropdown.
- Optional detail-page enrichment for the financial fields most listings sites can't be bothered to expose.
- Routes through Singapore residential proxies so requests look like a local in Bukit Timah, not a datacenter in Virginia.
Who Uses SGCarMart Data?
- Used-car dealers — track competitor pricing, refresh inventory pricing models, monitor stale listings.
- Carro / Motorist / SGM aggregators — enrich their own inventory with structured listing data they can rank against.
- Car finance companies — feed depreciation and OMV/ARF into loan-pricing and residual-value models.
- Insurance underwriters — build risk-priced quotes off real market values, not Bluebook estimates.
- Vehicle valuation services — calibrate pricing engines against Singapore's COE-loaded reality, where a 2015 Honda Fit costs more than a 2015 BMW in any other market.
- Researchers and journalists — analyse COE trends, price-to-OMV ratios, and the long-tail effects of Singapore's vehicle quota system.
How SGCarMart Vehicle Scraper Works
- The scraper hits SGCarMart's used-car catalogue, paginates 40 cars at a time, and pulls structured data from each card.
- For every listing, it optionally fetches the detail page to enrich the record with OMV, ARF, road tax, deregistration value, full image set, and dealer contact info.
- Results stream into the dataset as flat JSON records — one row per car. No nested objects, no manual cleaning.
Input
{
"maxItems": 10,
"vehicleType": "",
"includeDealerDetails": true
}
| Field | Type | Default | Description |
|---|---|---|---|
maxItems |
integer | 10 |
Maximum number of listings to scrape. Set higher to harvest more inventory. |
vehicleType |
string | "" |
Filter by body type. Empty string returns all types. See enum table below. |
includeDealerDetails |
boolean | true |
If true, fetches each listing's detail page for OMV, ARF, road tax, dealer phone, and address. Slower, but the only way to get those fields. |
proxyConfiguration |
object | SG residential | Proxy settings. Pre-configured for SG residential — Cloudflare blocks datacenter IPs on this domain. |
Vehicle Type values
| Value | Body type |
|---|---|
"" |
All vehicle types |
"4" |
Luxury Sedan |
"5" |
Mid-Sized Sedan |
"6" |
MPV |
"7" |
SUV |
"8" |
Sports Car |
"9" |
Stationwagon |
"10" |
Truck |
"11" |
Van |
SUVs only, dealer details enabled
{
"maxItems": 50,
"vehicleType": "7",
"includeDealerDetails": true
}
Fast list-only mode (no detail pages)
{
"maxItems": 200,
"vehicleType": "",
"includeDealerDetails": false
}
SGCarMart Vehicle Scraper Output Fields
{
"listingId": 1486668,
"listingUrl": "https://www.sgcarmart.com/used-cars/info/honda-fit-13a-g-1486668",
"make": "Honda",
"model": "Fit",
"carModel": "Honda Fit 1.3A G F-Package",
"price": 64800,
"depreciationPerYear": 13300,
"registrationDate": "16-Mar-2016",
"yearManufactured": 2015,
"mileageKm": 109000,
"coeLeft": "4yrs 10mths 14days COE left",
"omv": 12995,
"arf": 5000,
"roadTaxPerYear": 636,
"deregValue": 51928,
"engineCc": 1317,
"enginePowerKw": 73.0,
"transmission": "Auto",
"fuelType": "Petrol",
"vehicleType": "Hatchback",
"owners": "1",
"curbWeight": "1,020 kg",
"features": "1.3L Earth Dreams 4 cylinders I-VTEC engine, 97bhp, CVT automatic, ABS, airbags, keyless entry/start/stop.",
"accessories": "Sports rims, Bluetooth with reverse camera and sensors, retractable side mirrors, auto start/stop.",
"description": "New arrival, 1 owner only. Excellent condition. Genuine mileage. All wear and tear done.",
"dealerName": "Ensure Motors Pte Ltd",
"dealerCode": 4828,
"dealerPhone": "98757000",
"dealerAddress": "321 Alexandra Road #03-28 Alexandra Central",
"tag": "",
"adType": "Standard",
"imageUrls": [
"https://i.i-sgcm.com/cars_used/202603/1486668_1.jpg",
"https://i.i-sgcm.com/cars_used/202603/1486668_2b.jpg"
],
"postedDate": "01-May-2026",
"updatedDate": "01-May-2026",
"scrapedAt": "2026-05-01T02:15:30.000Z"
}
| Field | Type | Description |
|---|---|---|
listingId |
integer | SGCarMart listing/ad ID. Stable across crawls. |
listingUrl |
string | Canonical URL of the listing. |
make |
string | Vehicle manufacturer (Honda, Mercedes-Benz, etc.). |
model |
string | Vehicle model (Fit, A180). |
carModel |
string | Full model name as listed (make + model + variant + trim). |
price |
integer | Asking price in SGD. |
depreciationPerYear |
integer | Depreciation in SGD per year. The number Singapore buyers actually shop on. |
registrationDate |
string | Original registration date (e.g. 16-Mar-2016). |
yearManufactured |
integer | Year the vehicle was manufactured. |
mileageKm |
integer | Mileage in kilometres. |
coeLeft |
string | Remaining COE, expressed as Xyrs Ymths Zdays COE left. |
omv |
integer | Open Market Value in SGD — the customs valuation, not the asking price. |
arf |
integer | Additional Registration Fee in SGD. |
roadTaxPerYear |
integer | Annual road tax in SGD. |
deregValue |
integer | PARF/COE rebate (deregistration value) in SGD. |
engineCc |
integer | Engine capacity in cc. |
enginePowerKw |
number | Engine power in kilowatts. |
transmission |
string | Auto or Manual. |
fuelType |
string | Petrol, Diesel, Electric, Hybrid. |
vehicleType |
string | Body style (Hatchback, SUV, Sedan, etc.). |
owners |
string | Owner count text (e.g. 1, 5 Owners). |
curbWeight |
string | Curb weight, formatted (e.g. 1,020 kg). |
features |
string | Manufacturer-listed key features. |
accessories |
string | Dealer-listed accessories or modifications. |
description |
string | Free-text listing description. |
dealerName |
string | Listing dealer name, or Direct Owner for private sellers. |
dealerCode |
integer | SGCarMart dealer/account code. |
dealerPhone |
string | Dealer contact phone. |
dealerAddress |
string | Dealer business address. |
tag |
string | Listing tag (e.g. Direct Owner, dealer accreditation labels). |
adType |
string | Ad placement (Premium Ad, Star Ad, Spotlight, Standard). |
imageUrls |
array | Vehicle photo URLs, filtered to the listing's own images. |
postedDate |
string | Date the listing was posted. |
updatedDate |
string | Date the listing was last updated. |
scrapedAt |
string | ISO-8601 timestamp when this record was scraped. |
FAQ
How do I scrape SGCarMart?
SGCarMart Vehicle Scraper handles the whole pipeline. Set maxItems, optionally pick a vehicleType, and run — the scraper paginates the catalogue and returns structured JSON. No browser, no manual COE math.
How much does SGCarMart Vehicle Scraper cost to run?
SGCarMart Vehicle Scraper uses pay-per-event pricing — $0.10 per actor start plus $0.005 per record. A 100-car run lands at roughly $0.60.
What data can I get from SGCarMart?
SGCarMart Vehicle Scraper returns 35+ fields per car covering identification, pricing, Singapore-specific tax fields (OMV, ARF, road tax, deregistration value), COE remaining time, mileage, engine specs, dealer contact info, and listing photos. It's the same data a buyer sees on the page, but flat JSON instead of a marketing site.
Can I filter listings by body type?
Yes. Pass vehicleType with one of the supported codes ("7" for SUV, "4" for Luxury Sedan, etc.) — the scraper filters at the source. Skip the field to get every body type.
Does SGCarMart Vehicle Scraper need proxies?
Yes. SGCarMart's Cloudflare edge blocks datacenter IPs by reputation, so the actor ships pre-configured for Apify's Singapore residential pool. Local IPs from outside Singapore typically work for testing, but production runs need the residential pool that's already wired in.
How recent is the data?
SGCarMart Vehicle Scraper pulls live from the public catalogue at run time. Listings on the platform churn daily, so the data is as fresh as the dealer's last update.
Need More Features?
Need custom fields, dealer-only crawls, COE history integration, or a different filter? File an issue or get in touch.
Why Use SGCarMart Vehicle Scraper?
- Singapore-native fields — COE, OMV, ARF, PARF rebate, depreciation per year. The fields a Carro pricing analyst actually asks for.
- Clean output — flat JSON, consistent field names, no nested dealer objects to flatten yourself. Spend the time on your model, not on data plumbing.
- The only one — SGCarMart has no other scraper on the Apify store. This is the only structured-data path into Singapore's used-car market.