# Motorist.sg Scraper - Singapore Used Cars & Dealer Leads (`scrapesage/motorist-scraper`) Actor

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.

- **URL**: https://apify.com/scrapesage/motorist-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 used car listing scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Motorist.sg Scraper — Singapore Used Cars & Dealer Leads

Extract **complete used-car data from [Motorist.sg](https://motorist.sg/used-cars)** — 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

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Motorist.sg Scraper**, pick the **segments** (body type or make) — or paste Motorist category URLs — set any filters, and click **Start**.
3. Watch results stream into the dataset table — one clean row per car.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "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:

```json
{
    "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 `includeDetails` on (the default) to get them.
>
> \*`bodyType` is filled only when you scrape a body-type segment (e.g. `suv`, `sedan`); it is blank when scraping `all-vehicles` or 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 (with `previousPrice`).
- `price_increase` — the price rose (with `previousPrice`).

The **first run emits everything** (and seeds the state); subsequent runs emit only the delta. Combined with a daily [Schedule](https://docs.apify.com/platform/schedules), 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](https://docs.apify.com/platform/schedules) (a cron trigger) or the Console [Monitoring](https://docs.apify.com/platform/monitoring) tab (charts & alerts). The Schedule triggers the run; monitor mode decides what's worth saving.
- Use a **distinct `dedupStoreName` per 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](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it daily to track a make, body type or the whole market; pair with `monitorMode` for new-car and price-drop alerts.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

```js
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](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new dealer leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored make lists a car or drops a price.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/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](https://docs.apify.com/platform/integrations/mcp)** — 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](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/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](https://apify.com/scrapesage/sgcarmart-used-car-scraper)** — Singapore's biggest used-car portal: prices, COE/OMV/ARF and dealer leads.
- **[99.co Property Scraper](https://apify.com/scrapesage/99-co-property-scraper)** — Singapore property listings and agent leads from 99.co.
- **[EdgeProp.sg Scraper](https://apify.com/scrapesage/edgeprop-singapore-scraper)** — Singapore property, PSF, rental yield and agent leads.
- **[Singapore Company Scraper](https://apify.com/scrapesage/singapore-company-scraper)** — UEN, company registry and business leads (enrich a dealer by name/UEN).
- **[MyCareersFuture Scraper](https://apify.com/scrapesage/mycareersfuture-scraper)** — Singapore government jobs with salaries and employer UEN.
- **[JobStreet Singapore Scraper](https://apify.com/scrapesage/jobstreet-singapore-scraper)** — jobs, salaries and company data from JobStreet.
- **[FairPrice Scraper](https://apify.com/scrapesage/fairprice-scraper)** — Singapore grocery prices and products.
- **[Google Maps Scraper](https://apify.com/scrapesage/google-maps-scraper)** — local business leads with phone, website and reviews.

### Tips

- **Dealer prospecting**: keep `includeDetails` on so every car carries the dealer/seller name, mobile and WhatsApp — no enrichment step needed. Filter by `make` or price band to build a focused outreach list, and dedupe by `sellerPhone`.
- **Value screening**: sort the dataset by `depreciationPerYear`, `omv` or `coeMonthsTotalLeft` to surface value buys.
- **Cheap sampling**: turn `includeDetails` off (and/or set a small `maxResults`) for a fast, cheap grid-only run with no phone numbers.
- **Recurring monitoring**: combine `monitorMode` with [Schedules](https://docs.apify.com/platform/schedules) and a [webhook](https://docs.apify.com/platform/integrations/webhooks) 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](https://docs.apify.com/platform/integrations/drive).

**How do I monitor new cars or price drops automatically?** Turn on `monitorMode` and create a [Schedule](https://docs.apify.com/platform/schedules). 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](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `segments` (type: `array`):

Which Motorist.sg used-car categories to scrape. Use a body type (<code>all-vehicles</code>, <code>sedan</code>, <code>suv</code>, <code>hatchback</code>, <code>mpv</code>, <code>luxury-car</code>, <code>sports-car</code>, <code>stationwagon</code>, <code>hybrid-car</code>, <code>electric-car</code>, <code>diesel-car</code>, <code>all-commercial</code>, <code>truck</code>, <code>van</code>, <code>pickup</code>, <code>bus-mini-bus</code>, <code>vintage-car</code>, <code>motorcycle</code>) or a make slug (e.g. <code>toyota</code>, <code>bmw</code>, <code>mercedes-benz</code>, <code>honda</code>). Defaults to all vehicles.

## `startUrls` (type: `array`):

Optional: paste Motorist.sg used-car listing URLs straight from the site, e.g. <code>https://motorist.sg/used-cars/suv</code> or <code>https://motorist.sg/used-cars/bmw</code>. When set, these override the Segments selector above.

## `includeDetails` (type: `boolean`):

Open each car's detail page to add OMV, ARF, road tax, engine capacity, power, transmission, fuel type, the full photo gallery and the <b>dealer/seller name, mobile and WhatsApp link</b> (the lead). Turn OFF for a fast, cheap listing-grid-only run (no phone numbers).

## `maxResults` (type: `integer`):

Stop after this many listings across all segments (0 = no limit). Motorist lists thousands of used cars, so keep a cap for test runs. The run also auto-stops within its own time limit, so it can't time out even with a high cap.

## `maxResultsPerSegment` (type: `integer`):

Cap listings per segment/category (0 = no per-segment cap).

## `minPrice` (type: `integer`):

Only include cars at or above this asking price. 0 = no minimum.

## `maxPrice` (type: `integer`):

Only include cars at or below this asking price. 0 = no maximum.

## `makes` (type: `array`):

Optional. Keep only these makes (matched on the listing title), e.g. <code>Toyota</code>, <code>BMW</code>, <code>Mercedes-Benz</code>. Useful when scraping <code>all-vehicles</code>.

## `fuelTypes` (type: `array`):

Optional. Keep only these fuel types (requires detail scraping), e.g. <code>Petrol</code>, <code>Diesel</code>, <code>Electric</code>, <code>Petrol-Electric</code>.

## `maxMileageKm` (type: `integer`):

Only include cars at or below this mileage. 0 = no limit.

## `maxDepreciation` (type: `integer`):

Only include cars at or below this yearly depreciation. 0 = no limit.

## `minCoeMonthsLeft` (type: `integer`):

Only include cars with at least this many months of COE remaining. 0 = no minimum.

## `maxOwners` (type: `integer`):

Only include cars with at most this many previous owners. 0 = no limit.

## `monitorMode` (type: `boolean`):

Output only cars that are <b>new</b> or whose <b>price changed</b> since the last run for the same input. Each row is tagged with <code>monitorStatus</code> (<code>new</code>, <code>price\_drop</code>, <code>price\_increase</code>) and, for price changes, <code>previousPrice</code>. The first run emits everything and seeds the state. Pairs perfectly with Apify Schedules — see the README.

## `dedupStoreName` (type: `string`):

Named key-value store that holds the 'seen listings' state for monitor mode. Use a distinct name per independent monitor (e.g. per saved search) so their states don't mix.

## `maxConcurrency` (type: `integer`):

Maximum number of requests made in parallel.

## `proxyConfiguration` (type: `object`):

Proxy settings. Motorist.sg works well over the default Apify datacenter proxy; switch to residential only if you hit persistent blocks.

## Actor input object example

```json
{
  "segments": [
    "all-vehicles"
  ],
  "includeDetails": true,
  "maxResults": 50,
  "maxResultsPerSegment": 0,
  "minPrice": 0,
  "maxPrice": 0,
  "maxMileageKm": 0,
  "maxDepreciation": 0,
  "minCoeMonthsLeft": 0,
  "maxOwners": 0,
  "monitorMode": false,
  "dedupStoreName": "motorist-sg-state",
  "maxConcurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped used cars in the default dataset. One clean row per listing.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "segments": [
        "all-vehicles"
    ],
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/motorist-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "segments": ["all-vehicles"],
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/motorist-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "segments": [
    "all-vehicles"
  ],
  "maxResults": 50
}' |
apify call scrapesage/motorist-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesage/motorist-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ykn2P5Tv8mmDxgUXS/builds/fWeCynn7sQwhEfqFC/openapi.json
