# AutoTrader.ca \[$0.9💰] Canada · Filter Search + VIN/CarFax (`memo23/autotrader-ca-scraper`) Actor

Scrape AutoTrader.ca (Canada) by make, model, location, price, year, body, fuel, transmission, colour & power — no URL building. Full details per car: mileage, specs, dealer name + phone, all photos, stock #, plus optional VIN & CarFax. New & used, all provinces. JSON/CSV.

- **URL**: https://apify.com/memo23/autotrader-ca-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** E-commerce, AI, Agents
- **Stats:** 18 total users, 17 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 vehicle 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## AutoTrader.ca Scraper · Canada

Scrape vehicle listings from **[AutoTrader.ca](https://www.autotrader.ca)** — Canada's largest automotive marketplace. **Search by make, model, location, price, year, body type, fuel, transmission, colour and power — no URL building required** — or paste any AutoTrader.ca URL. Every car comes back fully detailed: price, mileage, specs, dealer name + phone, location, all photos, stock number, and optional **VIN + CarFax**. New and used, every province. One clean row per vehicle, JSON or CSV.

#### How it works

![How the AutoTrader.ca Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-autotrader-ca.png)

#### ✨ Why use this scraper?

- **Search by filters, not URLs** — pick make, model, location, radius, price, year, mileage, condition, body type, fuel, transmission, colour and power right in the input. No hand-building AutoTrader.ca URLs (though you can paste those too).
- **VIN + CarFax** *(optional)* — flip one toggle and every car also carries its VIN and CarFax-availability flag, plus dealer **phone number** and stock number on every row.
- **Full detail, not just the card** — every listing is expanded into a complete record: technical specs, dealer info, location with coordinates, the full description, and all photos.
- **Canada-wide** — every province and territory, new and used, dealer inventory. Search one city with a radius, or all of Canada at once.
- **Clean structured output** — data comes from AutoTrader.ca's own mobile API as JSON, so there are no fragile HTML selectors to break.
- **Smart resolution** — make/model names become category codes and cities become geocoded provinces + radius automatically. You type "Toyota Corolla in Toronto", we handle the rest.
- **Pay per result** — one dataset row per vehicle, no padding.

#### 🎯 Use cases

| Who | What they get |
|---|---|
| **Dealers & resellers** | Live competitor pricing on the exact make/model/trim they stock, by region |
| **Market analysts** | Price-vs-mileage-vs-year datasets across provinces for valuation models |
| **Used-car shoppers & tools** | Every matching car in one place, sortable by price or mileage |
| **Lead-gen & data teams** | Dealer names, websites, and locations tied to live inventory |
| **Researchers** | Supply trends by body type, fuel, drivetrain, or region over time |

#### 📥 Supported inputs

| Input | Example | Notes |
|---|---|---|
| **Search filters** | `Make: Toyota`, `Model: Corolla`, `Location: Toronto` | All optional — combine any of them |
| **Search (SRP) URL** | `https://www.autotrader.ca/cars/toyota/corolla/on/toronto/?prx=100&pRng=10000,25000` | Pasted from the browser address bar |
| **Listing (VDP) URL** | `https://www.autotrader.ca/a/toyota/corolla/.../5_70046900_.../` | Narrows the search to that make/model near that city |

**Not supported:** auction-only listings, private classified sections behind a login, and non-AutoTrader.ca URLs (these are skipped with a warning).

#### 🔄 How it works

1. **Read your input.** Start URLs win if present; otherwise the search filters are used. Leave the location empty to search all of Canada.
2. **Resolve.** Make + model are looked up to AutoTrader's internal category code; the city/postal code is geocoded to a province + radius.
3. **Search.** The actor queries AutoTrader.ca's mobile GraphQL API and walks every results page (100 cars per page) until your `maxItems` cap.
4. **Enrich.** Each result is expanded into a full detail record — specs, dealer, every photo, and the description.
5. **Filter.** Price, mileage, condition, and sort run on the API; the year range is enforced on every row.
6. **Emit.** One flat, self-contained row per vehicle is pushed to the dataset.

#### ⚙️ Input parameters

| Field | Type | Description |
|---|---|---|
| `startUrls` | array | AutoTrader.ca search or listing URLs. When present, URL mode wins. |
| `searchMake` | string | Vehicle make, e.g. `Toyota`. |
| `searchModel` | string | Vehicle model, e.g. `Corolla`. Applied with a make. |
| `searchLocation` | string | City, town, or postal code. Empty = all of Canada. |
| `searchRadiusKm` | integer | Radius in km around the location (default `100`). |
| `priceMin` / `priceMax` | integer | Price range in CAD. |
| `yearMin` / `yearMax` | integer | Model-year range. |
| `minMileageKm` / `maxMileageKm` | integer | Odometer range in km. |
| `condition` | select | `all`, `new`, or `used`. |
| `bodyTypes` | multi-select | SUV, Pickup, Sedan, Hatchback, Minivan, Coupe, Convertible, Wagon, Other. |
| `fuelTypes` | multi-select | Gasoline, Diesel, Electric, Hybrid, Flex Fuel, CNG, Other. |
| `transmission` | select | Automatic or Manual. |
| `colors` | multi-select | Exterior colour (Black, White, Grey, Blue, Red, Silver, …). |
| `powerHpMin` / `powerHpMax` | integer | Engine power range in horsepower. |
| `equipmentIds` | array | Advanced: AutoScout24 equipment codes (car must have all). |
| `keywords` | string | Free-text search, e.g. `sunroof leather`. |
| `sort` | select | `standard`, `price`, `age` (year), or `mileage`. |
| `sortDesc` | boolean | Reverse the sort (price high→low, newest first). |
| `enrichVehicleHistory` | boolean | Add `vin` + `carfaxAvailable` per car (1 extra request each). Off by default. |
| `maxItems` | integer | Max vehicles to collect (default `1000`). |
| `proxy` | object | Proxy configuration (Residential, country `CA` recommended). |

#### 📊 Output overview

Each dataset item is **one vehicle**, fully flattened for easy use in spreadsheets and BI tools, with the most important fields at the top level (`make`, `model`, `year`, `price`, `mileageKm`, `location`, `dealer`, `url`). The complete raw API payload is preserved under `raw` for power users who want every field. Export as JSON, CSV, Excel, or via the API.

#### 📦 Output sample

```json
{
  "guid": "742910bf-b660-4fbb-b949-8fa939b03937",
  "crossReferenceId": "69762117",
  "url": "https://www.autotrader.ca/offers/toyota-corolla-se-...-742910bf-b660-4fbb-b949-8fa939b03937",
  "title": "Toyota Corolla SE | Sunroof | Leather | BSM | ACC | CarPlay",
  "make": "Toyota",
  "model": "Corolla",
  "version": "SE | Sunroof | Leather | BSM | ACC | CarPlay",
  "year": 2019,
  "price": 18850,
  "priceFormatted": "$18,850",
  "priceCurrency": "CAD",
  "mileageKm": 113000,
  "condition": "used",
  "bodyType": "Sedan",
  "bodyColor": "White",
  "doors": 4,
  "seats": 5,
  "fuelType": "Gasoline",
  "transmission": "Automatic",
  "driveTrain": "Front Wheel Drive",
  "cylinders": 4,
  "accidentFree": true,
  "isDamaged": false,
  "location": {
    "city": "TORONTO",
    "province": "ON",
    "postalCode": "M3J2E8",
    "street": "1205 FINCH AVE W",
    "country": "CA",
    "latitude": 43.7643,
    "longitude": -79.4839
  },
  "dealer": {
    "name": "Autorama",
    "id": "47946161",
    "type": "Dealer",
    "website": "https://www.autorama.ca/",
    "region": "ON"
  },
  "images": ["https://prod.pictures.autoscout24.net/listing-images/742910bf-..._...jpg"],
  "imageCount": 32,
  "description": "Clean CarFax. 17-inch alloy wheels | Power moonroof | Heated seats | Toyota Safety Sense P ...",
  "dealBuilderUrlEN": "https://autorama.shop.autotrader.ca/details/6791141",
  "dealBuilderUrlFR": "https://autorama.boutique.autohebdo.net/fr/details/6791141",
  "scrapedAt": "2026-06-23T06:01:06.215Z"
}
````

#### 🗂 Key output fields

| Category | Fields |
|---|---|
| **Identity** | `guid`, `crossReferenceId`, `stockNumber`, `url`, `title` |
| **Vehicle** | `make`, `model`, `version`, `year`, `bodyType`, `bodyColor`, `doors`, `seats` |
| **Price** | `price`, `priceFormatted`, `priceCurrency`, `priceEvaluation` |
| **Condition** | `mileageKm`, `condition`, `accidentFree`, `isDamaged`, `previousOwners`, `firstRegistration` |
| **Drivetrain** | `fuelType`, `transmission`, `driveTrain`, `cylinders`, `engineDisplacementCcm`, `powerHp` |
| **Location** | `location.{city, province, postalCode, street, country, latitude, longitude}` |
| **Dealer** | `dealer.{name, phone, phoneE164, id, type, website, region}` |
| **Media & links** | `images[]`, `imageCount`, `description`, `dealBuilderUrlEN`, `dealBuilderUrlFR` |
| **Enrichment** (opt-in) | `vin`, `carfaxAvailable` — populated when `enrichVehicleHistory` is on |
| **Raw** | `raw` — the complete unflattened API record |

#### ❓ FAQ

**Does it cover all of Canada?**
Yes — every province and territory. Set a city + radius to scope it, or leave the location empty to search nationwide.

**Can I just paste a URL from AutoTrader.ca?**
Yes. Copy any search-results or listing URL from your browser into `startUrls`. The actor reads the make, model, location, price, and year range from the URL.

**New cars, used cars, or both?**
Both by default. Use the `condition` filter to restrict to `new` or `used` only.

**How many results can I get?**
As many as the search returns, up to your `maxItems` cap. The actor paginates through every page automatically.

**Why is `firstRegistration` or `powerHp` sometimes empty?**
Canadian listings don't always populate every field (they're keyed on model year rather than registration date). Those fields are `null` when the source omits them.

**Can I filter by drivetrain (AWD) or by dealer vs. private seller?**
Those aren't filterable on this API — the marketplace doesn't expose a drivetrain or seller-type search parameter. Both values are still in the output (`driveTrain`, `dealer.type`), so you can filter the results yourself after scraping. For specific equipment (e.g. all-wheel-drive package), use the advanced `equipmentIds` field.

**Is the VIN included?**
Turn on **Add VIN + CarFax availability** (`enrichVehicleHistory`) and each row gets its `vin` and `carfaxAvailable` flag. It's off by default because it adds one extra web request per vehicle. The dealer's phone number (`dealer.phone`) and stock number (`stockNumber`) are always included.

**Do I need a proxy?**
A Residential proxy (country `CA`) is recommended for reliability and is pre-configured by default.

#### 💬 Support

Questions, custom fields, or a tweak to the output shape? Email **muhameddidovic@gmail.com** — happy to help or build a custom solution.

#### 🛠 Additional services

Need a scraper for another car marketplace, a scheduled feed into your database, or enrichment (dealer emails, VIN decode)? Reach out — custom builds and integrations welcome.

#### 🔎 Explore more scrapers

Looking for other vehicle marketplaces? Check out scrapers for AutoScout24, Kijiji Autos, Cars.com, Carsales, and Mobile.de.

***

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by AutoTrader.ca, Trader Corporation, or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available vehicle-listing data — no authenticated endpoints, dealer-only features, or content behind an AutoTrader.ca login. Users are responsible for ensuring their use complies with AutoTrader.ca's Terms of Service, applicable data-protection law (PIPEDA, GDPR, CCPA, etc.), and any contractual obligations of their own organisation.

***

### SEO Keywords

autotrader.ca scraper, autotrader canada scraper, scrape autotrader.ca, autotrader api, canada car listings scraper, used car scraper canada, car price data canada, vehicle listings api, autotrader.ca data export, canadian car marketplace scraper, car dealer inventory scraper, used car market data, vehicle pricing dataset, apify autotrader, scrape car listings canada, autotrader.ca csv export, car scraper json, automotive data canada, kijiji autos alternative scraper, autoscout24 alternative scraper

# Actor input Schema

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

Search pages (<code>/cars/toyota/corolla/on/toronto/…</code>) or listing pages (<code>/a/…</code>). A listing URL narrows the search to that make/model near that city.

## `searchMake` (type: `string`):

Vehicle make, e.g. <strong>Toyota</strong>, <strong>Honda</strong>, <strong>Ford</strong>. Optional.

## `searchModel` (type: `string`):

Vehicle model, e.g. <strong>Corolla</strong>, <strong>Civic</strong>. Only applied when a Make is set.

## `searchLocation` (type: `string`):

City, town, or postal code to centre the search on, e.g. <strong>Toronto</strong>, <strong>Montreal</strong>, <strong>H1S 1A9</strong>. Leave empty to search all of Canada.

## `searchRadiusKm` (type: `integer`):

Distance in km around the location. Ignored when no location is set.

## `priceMin` (type: `integer`):

Lowest asking price. Clear or use 0 for no minimum.

## `priceMax` (type: `integer`):

Highest asking price. Clear for no maximum.

## `yearMin` (type: `integer`):

Oldest model year to include, e.g. 2018. Clear for no minimum.

## `yearMax` (type: `integer`):

Newest model year to include, e.g. 2023. Clear for no maximum.

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

Highest odometer reading in kilometres, e.g. 100000. Clear for no maximum.

## `minMileageKm` (type: `integer`):

Lowest odometer reading in kilometres. Clear for no minimum.

## `condition` (type: `string`):

Filter by new, used, or both.

## `bodyTypes` (type: `array`):

Restrict to one or more body styles. Leave empty for all.

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

Restrict to one or more fuel types. Leave empty for all.

## `transmission` (type: `string`):

Gearbox type.

## `colors` (type: `array`):

Restrict to one or more exterior colours. Leave empty for all.

## `powerHpMin` (type: `integer`):

Lowest engine power in horsepower. Clear for no minimum.

## `powerHpMax` (type: `integer`):

Highest engine power in horsepower. Clear for no maximum.

## `equipmentIds` (type: `array`):

Advanced: AutoScout24 equipment codes — a car must have ALL listed. E.g. 38, 13, 5. Leave empty unless you know the codes.

## `keywords` (type: `string`):

Free-text search across listings, e.g. <strong>sunroof leather</strong>. Optional.

## `sort` (type: `string`):

Result ordering. Combine with 'Sort descending' for price high→low or newest first.

## `sortDesc` (type: `boolean`):

Reverse the sort order (e.g. price high→low, newest year first).

## `enrichVehicleHistory` (type: `boolean`):

Fetch each car's AutoTrader.ca page to add its <code>vin</code> and <code>carfaxAvailable</code> flag. Off by default. Adds one HTTP request per vehicle.

## `maxItems` (type: `integer`):

Maximum number of vehicle detail records to collect.

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

Maximum parallel requests.

## `minConcurrency` (type: `integer`):

Minimum parallel requests.

## `maxRequestRetries` (type: `integer`):

Retries per failed request before giving up.

## `proxy` (type: `object`):

Proxy servers used to reach the AutoTrader.ca API. Custom proxy URLs are also supported via JSON input.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.autotrader.ca/cars/toyota/corolla/on/toronto/?prx=100&prv=Ontario&loc=toronto&pRng=10000%2C25000&yRng=2018%2C2023&srt=35"
    }
  ],
  "searchMake": "Toyota",
  "searchModel": "Corolla",
  "searchLocation": "Toronto",
  "searchRadiusKm": 100,
  "priceMin": 10000,
  "priceMax": 25000,
  "yearMin": 2018,
  "yearMax": 2023,
  "condition": "all",
  "transmission": "",
  "equipmentIds": [],
  "sort": "standard",
  "sortDesc": false,
  "enrichVehicleHistory": false,
  "maxItems": 1000,
  "maxConcurrency": 10,
  "minConcurrency": 1,
  "maxRequestRetries": 8,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CA"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `allItems` (type: `string`):

No description

# 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 = {
    "startUrls": [
        {
            "url": "https://www.autotrader.ca/cars/toyota/corolla/on/toronto/?prx=100&prv=Ontario&loc=toronto&pRng=10000%2C25000&yRng=2018%2C2023&srt=35"
        }
    ],
    "searchMake": "Toyota",
    "searchModel": "Corolla",
    "searchLocation": "Toronto",
    "searchRadiusKm": 100,
    "priceMin": 10000,
    "priceMax": 25000,
    "yearMin": 2018,
    "yearMax": 2023,
    "equipmentIds": [],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "CA"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/autotrader-ca-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 = {
    "startUrls": [{ "url": "https://www.autotrader.ca/cars/toyota/corolla/on/toronto/?prx=100&prv=Ontario&loc=toronto&pRng=10000%2C25000&yRng=2018%2C2023&srt=35" }],
    "searchMake": "Toyota",
    "searchModel": "Corolla",
    "searchLocation": "Toronto",
    "searchRadiusKm": 100,
    "priceMin": 10000,
    "priceMax": 25000,
    "yearMin": 2018,
    "yearMax": 2023,
    "equipmentIds": [],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "CA",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/autotrader-ca-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 '{
  "startUrls": [
    {
      "url": "https://www.autotrader.ca/cars/toyota/corolla/on/toronto/?prx=100&prv=Ontario&loc=toronto&pRng=10000%2C25000&yRng=2018%2C2023&srt=35"
    }
  ],
  "searchMake": "Toyota",
  "searchModel": "Corolla",
  "searchLocation": "Toronto",
  "searchRadiusKm": 100,
  "priceMin": 10000,
  "priceMax": 25000,
  "yearMin": 2018,
  "yearMax": 2023,
  "equipmentIds": [],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "CA"
  }
}' |
apify call memo23/autotrader-ca-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AutoTrader.ca [$0.9💰] Canada · Filter Search + VIN/CarFax",
        "description": "Scrape AutoTrader.ca (Canada) by make, model, location, price, year, body, fuel, transmission, colour & power — no URL building. Full details per car: mileage, specs, dealer name + phone, all photos, stock #, plus optional VIN & CarFax. New & used, all provinces. JSON/CSV.",
        "version": "0.0",
        "x-build-id": "Fa7fXfS41KxJEw2z7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/memo23~autotrader-ca-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-memo23-autotrader-ca-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/memo23~autotrader-ca-scraper/runs": {
            "post": {
                "operationId": "runs-sync-memo23-autotrader-ca-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/memo23~autotrader-ca-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-memo23-autotrader-ca-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "maxItems"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Search pages (<code>/cars/toyota/corolla/on/toronto/…</code>) or listing pages (<code>/a/…</code>). A listing URL narrows the search to that make/model near that city.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchMake": {
                        "title": "Make",
                        "type": "string",
                        "description": "Vehicle make, e.g. <strong>Toyota</strong>, <strong>Honda</strong>, <strong>Ford</strong>. Optional."
                    },
                    "searchModel": {
                        "title": "Model",
                        "type": "string",
                        "description": "Vehicle model, e.g. <strong>Corolla</strong>, <strong>Civic</strong>. Only applied when a Make is set."
                    },
                    "searchLocation": {
                        "title": "Location (city or postal code)",
                        "type": "string",
                        "description": "City, town, or postal code to centre the search on, e.g. <strong>Toronto</strong>, <strong>Montreal</strong>, <strong>H1S 1A9</strong>. Leave empty to search all of Canada."
                    },
                    "searchRadiusKm": {
                        "title": "Search radius (km)",
                        "type": "integer",
                        "description": "Distance in km around the location. Ignored when no location is set.",
                        "default": 100
                    },
                    "priceMin": {
                        "title": "Minimum price (CAD)",
                        "type": "integer",
                        "description": "Lowest asking price. Clear or use 0 for no minimum."
                    },
                    "priceMax": {
                        "title": "Maximum price (CAD)",
                        "type": "integer",
                        "description": "Highest asking price. Clear for no maximum."
                    },
                    "yearMin": {
                        "title": "Minimum model year",
                        "type": "integer",
                        "description": "Oldest model year to include, e.g. 2018. Clear for no minimum."
                    },
                    "yearMax": {
                        "title": "Maximum model year",
                        "type": "integer",
                        "description": "Newest model year to include, e.g. 2023. Clear for no maximum."
                    },
                    "maxMileageKm": {
                        "title": "Maximum mileage (km)",
                        "type": "integer",
                        "description": "Highest odometer reading in kilometres, e.g. 100000. Clear for no maximum."
                    },
                    "minMileageKm": {
                        "title": "Minimum mileage (km)",
                        "type": "integer",
                        "description": "Lowest odometer reading in kilometres. Clear for no minimum."
                    },
                    "condition": {
                        "title": "Condition",
                        "enum": [
                            "all",
                            "new",
                            "used"
                        ],
                        "type": "string",
                        "description": "Filter by new, used, or both.",
                        "default": "all"
                    },
                    "bodyTypes": {
                        "title": "Body type",
                        "type": "array",
                        "description": "Restrict to one or more body styles. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "14",
                                "15",
                                "6",
                                "1",
                                "12",
                                "3",
                                "2",
                                "5",
                                "7"
                            ],
                            "enumTitles": [
                                "SUV",
                                "Pickup Truck",
                                "Sedan",
                                "Hatchback",
                                "Minivan",
                                "Coupe",
                                "Convertible",
                                "Wagon",
                                "Other"
                            ]
                        }
                    },
                    "fuelTypes": {
                        "title": "Fuel type",
                        "type": "array",
                        "description": "Restrict to one or more fuel types. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "B",
                                "D",
                                "E",
                                "2",
                                "F",
                                "C",
                                "O"
                            ],
                            "enumTitles": [
                                "Gasoline",
                                "Diesel",
                                "Electric",
                                "Hybrid",
                                "Flex Fuel",
                                "CNG",
                                "Other"
                            ]
                        }
                    },
                    "transmission": {
                        "title": "Transmission",
                        "enum": [
                            "",
                            "A",
                            "M"
                        ],
                        "type": "string",
                        "description": "Gearbox type.",
                        "default": ""
                    },
                    "colors": {
                        "title": "Exterior colour",
                        "type": "array",
                        "description": "Restrict to one or more exterior colours. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "11",
                                "14",
                                "6",
                                "2",
                                "10",
                                "12",
                                "7",
                                "3",
                                "1",
                                "16",
                                "15",
                                "13",
                                "5",
                                "4"
                            ],
                            "enumTitles": [
                                "Black",
                                "White",
                                "Grey",
                                "Blue",
                                "Red",
                                "Silver",
                                "Green",
                                "Brown",
                                "Beige",
                                "Gold",
                                "Orange",
                                "Violet",
                                "Yellow",
                                "Bronze"
                            ]
                        }
                    },
                    "powerHpMin": {
                        "title": "Minimum power (hp)",
                        "type": "integer",
                        "description": "Lowest engine power in horsepower. Clear for no minimum."
                    },
                    "powerHpMax": {
                        "title": "Maximum power (hp)",
                        "type": "integer",
                        "description": "Highest engine power in horsepower. Clear for no maximum."
                    },
                    "equipmentIds": {
                        "title": "Equipment / features (advanced)",
                        "type": "array",
                        "description": "Advanced: AutoScout24 equipment codes — a car must have ALL listed. E.g. 38, 13, 5. Leave empty unless you know the codes.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "string",
                        "description": "Free-text search across listings, e.g. <strong>sunroof leather</strong>. Optional."
                    },
                    "sort": {
                        "title": "Sort by",
                        "enum": [
                            "standard",
                            "price",
                            "age",
                            "mileage"
                        ],
                        "type": "string",
                        "description": "Result ordering. Combine with 'Sort descending' for price high→low or newest first.",
                        "default": "standard"
                    },
                    "sortDesc": {
                        "title": "Sort descending",
                        "type": "boolean",
                        "description": "Reverse the sort order (e.g. price high→low, newest year first).",
                        "default": false
                    },
                    "enrichVehicleHistory": {
                        "title": "Add VIN + CarFax availability",
                        "type": "boolean",
                        "description": "Fetch each car's AutoTrader.ca page to add its <code>vin</code> and <code>carfaxAvailable</code> flag. Off by default. Adds one HTTP request per vehicle.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Max results",
                        "type": "integer",
                        "description": "Maximum number of vehicle detail records to collect.",
                        "default": 1000
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "type": "integer",
                        "description": "Maximum parallel requests.",
                        "default": 10
                    },
                    "minConcurrency": {
                        "title": "Min concurrency",
                        "type": "integer",
                        "description": "Minimum parallel requests.",
                        "default": 1
                    },
                    "maxRequestRetries": {
                        "title": "Max request retries",
                        "type": "integer",
                        "description": "Retries per failed request before giving up.",
                        "default": 8
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy servers used to reach the AutoTrader.ca API. Custom proxy URLs are also supported via JSON input.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
