# Clutch.ca Car Scraper: Used Car Prices, VIN & Carfax (`fayoussef/clutch-ca-scraper`) Actor

Scrape used cars from Clutch.ca, Canada's online car retailer. Filter by make, model, price, biweekly or monthly payment, year, mileage, body, fuel, features, colour and seats. Export price, discount, VIN, specs, Carfax link, accident history and photos.

- **URL**: https://apify.com/fayoussef/clutch-ca-scraper.md
- **Developed by:** [Youssef Farhan](https://apify.com/fayoussef) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.80 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Clutch.ca Car Scraper: Used Car Prices, VIN & Carfax

Scrape used cars from **[Clutch.ca](https://www.clutch.ca)**, Canada's online used car retailer, and export every matching vehicle with its **price, sale discount, VIN, full specs, feature list, Carfax link, accident and ownership history, warranty and photos**. Fill in the same filters as the clutch.ca filter panel (make, model, price, **biweekly or monthly payment**, year, mileage, body type, fuel, features, colour, seats, drivetrain, transmission, cylinders) and get clean JSON, CSV or Excel in minutes.

> Looking for the **Clutch.co** B2B agency directory? This is a different site. This Actor scrapes **cars** from **Clutch.ca**.

### Why use this Clutch.ca scraper

- 🚗 **Every car in a province, with details.** Ontario (about 3,000 cars) and the Atlantic provinces (Nova Scotia, New Brunswick, Prince Edward Island, about 3,500 cars).
- 🔍 **All clutch.ca filters, no URL needed.** Deals, price, finance payment, make and model, body type, year, mileage, fuel type, 141 features, exterior colour, seats, drivetrain, transmission and cylinders.
- 🧾 **Data you do not get from the search page.** VIN, accident count and claim amounts, number of owners, active recalls, previous registrations, Carfax report link, warranty left, engine, horsepower, torque, fuel economy and up to 50 photos per car.
- 🏷️ **Price drop tracking.** Every sale car shows the original price and the discount, so a scheduled run is a ready-made price monitor.
- ⚡ **Fast.** Around 6 cars a second with full details, and a search-only mode that is much faster.
- 🛡️ **No blocking to deal with.** Clutch rate-limits by IP; proxies and retries are handled for you.

### What data you get

| Group | Fields |
|---|---|
| Listing | `id`, `url`, `title`, `status` (available, coming soon, sale pending), `views_today`, `first_published_at` |
| Price | `price_cad`, `original_price_cad`, `discount_cad`, `on_sale`, `admin_fee_cad`, `shipping_fee_cad`, `price_province` |
| Vehicle | `year`, `make`, `model`, `trim`, `vin`, `mileage_km`, `body_type`, `drivetrain`, `transmission`, `transmission_details`, `fuel_type`, `exterior_color`, `interior_color`, `doors`, `seats` |
| Engine and economy | `engine`, `engine_displacement_l`, `horsepower`, `torque_lb_ft`, `cylinders`, `cylinder_count`, `aspiration`, `fuel_economy_city_l_100km`, `fuel_economy_highway_l_100km`, `battery_range_km`, `battery_size_kwh` |
| History | `number_of_owners`, `number_of_accidents`, `accident_damage_cad`, `accidents`, `active_recalls`, `previously_registered_in`, `last_registration_province`, `history_notes`, `carfax_report_url` |
| Warranty and extras | `warranty_description`, `warranties`, `highlights`, `features`, `tire_type`, `rim_size_in`, `number_of_keys` |
| Dimensions | `length_mm`, `width_mm`, `height_mm`, `curb_weight_kg`, `cargo_capacity_l`, `towing_capacity_kg` |
| Photos | `image_url`, `image_urls`, `photo_count`, `image_is_stock_photo` |

With **Include full vehicle details** turned off, you get the listing, price and core vehicle fields only (no VIN, history, features or photo gallery).

### How to scrape Clutch.ca

1. Click **Try for free** and open the input form.
2. Pick a **Province**. Clutch prices and stocks cars per province, so every city in it (Toronto, Ottawa, Halifax...) sees the same cars.
3. Set any filters you want, or leave them empty for the whole inventory.
4. Optionally set **Max results** and **Sort results by**.
5. Click **Start**, then download the results as JSON, CSV, Excel or HTML, or read them through the Apify API.

#### Input example

Family SUVs on sale in Ontario, all-wheel drive, 7 seats, heated seats and Apple CarPlay, affordable at 250 CAD biweekly:

```json
{
    "province": "ON",
    "deals_only": true,
    "max_payment": 250,
    "payment_frequency": "biweekly",
    "down_payment": 2000,
    "body_types": ["SUV"],
    "drivetrains": ["AWD"],
    "seats": ["7"],
    "features": ["Front Heated Seats", "Apple CarPlay"],
    "year_min": 2019,
    "mileage_max": 150000,
    "sort_by": "newest"
}
```

Every Toyota RAV4 in Ontario, cheapest first:

```json
{
    "province": "ON",
    "makes": ["Toyota"],
    "models": ["RAV4"],
    "sort_by": "price_asc"
}
```

#### Output example

```json
{
    "id": 128024,
    "url": "https://www.clutch.ca/vehicles/128024",
    "title": "2018 Toyota RAV4 LE",
    "year": 2018,
    "make": "Toyota",
    "model": "RAV4",
    "trim": "LE",
    "vin": "2T3ZFREV9JW518510",
    "price_cad": 19990,
    "on_sale": false,
    "price_province": "ON",
    "mileage_km": 97021,
    "body_type": "SUV",
    "drivetrain": "FWD",
    "transmission": "Automatic",
    "engine": "2.5L I-4 DOHC, VVT-i variable valve control, regular gasoline, engine with 176HP",
    "horsepower": 176,
    "exterior_color": "Red",
    "interior_color": "Black",
    "seats": 5,
    "number_of_owners": 1,
    "number_of_accidents": 2,
    "accident_damage_cad": 19318,
    "accidents": [
        "Was involved in an accident on 06/21/2019 with an estimated $14830.4 of damage. On which a $19318 claim was made."
    ],
    "carfax_report_url": "https://vhr.carfax.ca/?id=ILMLdYbWqCYbRSKaja2n0s93UTXCbWOL",
    "warranty_description": "This vehicle's manufacturer warranty has expired.",
    "features": ["Rear View Camera", "Apple CarPlay", "Front Heated Seats"],
    "image_url": "https://fastly.clutch.ca/7af366ae-db2d-4e7e-b7aa-998159800b13.jpg",
    "photo_count": 45,
    "status": "AVAILABLE"
}
```

### Input filters

| Filter | What it does |
|---|---|
| Province | Ontario, Nova Scotia, New Brunswick or Prince Edward Island. Decides the inventory and the price. There is no city filter because every city in a province sees the same cars. |
| Max results | Stop after this many cars. Empty means all. |
| Sort results by | Featured, newest, lowest or highest price, lowest or highest mileage. |
| Include full vehicle details | VIN, history, specs, features and photos (on by default). |
| Deals only | Only cars currently on sale. |
| Price from / to | Cash price range in CAD. |
| Max payment, payment frequency, down payment | Finance filter, the same as the Finance tab on clutch.ca. |
| Makes, models, trims | Model names are matched forgivingly ("rav 4" finds RAV4). |
| Body type | SUV, sedan, hatchback, wagon, truck, van, coupe, convertible. |
| Year from / to, mileage from / to | Ranges. |
| Fuel type | Gasoline, hybrid, plug-in hybrid, electric, diesel, mild hybrid. |
| Features | 141 features in 10 groups (safety, comfort, technology, seating, towing and more). Cars must have all selected features. |
| Exterior colour, seats, drivetrain, transmission, cylinders | Multi-select, like the site. |
| Keyword search | Free text, like the clutch.ca search box. |

If nothing matches, Clutch itself shows unrelated "similar" cars. This Actor does not: it returns an empty dataset and says why in the log, so your data only ever contains cars that match.

### Use cases

- **Used car price monitoring.** Schedule a daily run and track price drops and new sale cars. Pair it with [Dataset Diff](https://apify.com/fayoussef/dataset-diff?fpr=youssef) to get only what changed, by Slack, Telegram or email.
- **Dealer and wholesale pricing.** Benchmark your stock against Clutch's asking prices by make, model, year and mileage.
- **Market research.** Measure supply and prices of EVs, hybrids or trucks in Ontario and Atlantic Canada.
- **Car shopping.** Find every car that fits a monthly budget with the features you need, then open the Carfax link.
- **Lead and data products.** Feed VIN-level Canadian used car data into apps, spreadsheets or AI agents.

### Pricing

This Actor uses **pay per result**: you pay for each vehicle saved to the dataset, plus a small charge when a run starts. The current rate is shown on this Actor's Store page. Filters, sorting and the proxy cost nothing extra.

Free Apify plan users can test the Actor with up to 32 vehicles per run. Unlock full runs with an [Apify plan](https://apify.com/pricing?fpr=youssef).

### FAQ

**Does it need a clutch.ca account or API key?**
No. Fill in the form and run.

**Can I search by city (Toronto, Ottawa, Halifax...)?**
You don't need to. Clutch sells online and delivers, and it lists the same cars at the same price for every city in a province. We checked every Clutch location: all Ontario cities return the same ~3,000 cars, and Halifax, Moncton, Fredericton and Charlottetown all return the same ~3,500. Picking the province gives you exactly what clutch.ca shows for any city in it.

**Which provinces are covered?**
Ontario, Nova Scotia, New Brunswick and Prince Edward Island, which is where Clutch sells. Prices can differ between provinces because of fees.

**Can I get only new listings each day?**
Sort by **Newest**, set **Max results**, and schedule the run. For exact change tracking, use [Dataset Diff](https://apify.com/fayoussef/dataset-diff?fpr=youssef).

**Why do some cars have a stock photo?**
"Coming soon" cars are not photographed yet. Their `image_is_stock_photo` field is `true`.

**Can I use it through the API or with AI tools?**
Yes. Run it from the Apify API, the Python or JavaScript client, Make, Zapier, n8n or the Apify MCP server.

**Is scraping Clutch.ca legal?**
This Actor collects publicly listed vehicle data only, with no personal data. Check that your use respects Clutch's terms and local law.

### More Canadian car scrapers

- [AutoTrader Canada Car Scraper](https://apify.com/fayoussef/autotrader-canada?fpr=youssef): dealer and private listings from autotrader.ca.
- [CarGurus Scraper](https://apify.com/fayoussef/cargurus-listings-scraper?fpr=youssef): listings with deal ratings.
- [Kijiji Scraper](https://apify.com/fayoussef/kijiji-scraper?fpr=youssef): Kijiji Autos and classifieds.
- [All my Actors](https://apify.com/fayoussef?fpr=youssef)

Need a custom solution or a different site? Email youssefarhan24@gmail.com or [suggest a site](https://automationbyexperts.com/apify).

# Actor input Schema

## `province` (type: `string`):

Clutch sets its inventory and prices per province, not per city: Toronto, Ottawa, Hamilton and every other Ontario city get exactly the same cars at the same price, and so do Halifax, Moncton and Charlottetown for the Atlantic provinces. So pick the province where the buyer lives, no city needed. Ontario has about 3,000 cars, Nova Scotia, New Brunswick and PEI share about 3,500. Clutch does not sell in other provinces yet.

## `max_items` (type: `integer`):

Stop after this many vehicles. Leave empty to scrape every vehicle that matches the filters.

## `sort_by` (type: `string`):

Same order as the Sort menu on clutch.ca. Matters when Max results is set, since it decides which vehicles you get.

## `include_details` (type: `boolean`):

On: every vehicle also gets its VIN, colours, transmission, engine and horsepower, seats and doors, the full feature list, Carfax link, accident and ownership history, warranty and all photos. Off: search data only (price, mileage, make, model, trim, body, drivetrain, fuel), which is much faster.

## `deals_only` (type: `boolean`):

Only vehicles currently on sale, like the Deals checkbox on clutch.ca. The output shows the original price and the discount.

## `price_min` (type: `integer`):

Lowest price, in CAD.

## `price_max` (type: `integer`):

Highest price, in CAD.

## `max_payment` (type: `integer`):

Finance filter: the most you want to pay per period (biweekly or monthly, chosen below). Clutch works out which cars fit using its current finance rate and the down payment below.

## `payment_frequency` (type: `string`):

Whether Max payment is biweekly or monthly. Only used when Max payment is set.

## `down_payment` (type: `integer`):

Money down for the finance filter, in CAD. Only used when Max payment is set.

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

Vehicle makes to include. Leave empty for all makes.

## `models` (type: `array`):

Model names, for example "RAV4" or "CR-V". Spelling is forgiving (case, spaces and hyphens are ignored). Pick the make too for the most precise match. A model Clutch does not sell is reported in the log and ignored.

## `trims` (type: `array`):

Trim names as clutch.ca shows them, for example "LE" or "Touring". Use together with a model.

## `body_types` (type: `array`):

Body styles to include. Leave empty for all.

## `year_min` (type: `integer`):

Earliest model year.

## `year_max` (type: `integer`):

Latest model year.

## `mileage_min` (type: `integer`):

Lowest odometer reading, in kilometres.

## `mileage_max` (type: `integer`):

Highest odometer reading, in kilometres.

## `fuel_types` (type: `array`):

Fuel or powertrain types to include. Leave empty for all.

## `features` (type: `array`):

Only vehicles that have ALL of the selected features. Grouped by the same categories as the clutch.ca filter panel.

## `exterior_colors` (type: `array`):

Exterior colours to include. Leave empty for all.

## `seats` (type: `array`):

Seat counts to include, for example 7 or 8 for a family SUV. Leave empty for all.

## `drivetrains` (type: `array`):

Drivetrains to include. Leave empty for all.

## `transmissions` (type: `array`):

Automatic or manual. Leave empty for both.

## `cylinders` (type: `array`):

Engine layouts to include. Leave empty for all.

## `keyword` (type: `string`):

Free-text search, like the search box on clutch.ca (for example "tesla model y" or "hybrid awd").

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

Optional override. Paid runs already include a Canadian proxy network and need nothing here. Free runs use Apify Proxy residential (Canada) on your own account.

## Actor input object example

```json
{
  "province": "ON",
  "max_items": 100,
  "sort_by": "featured",
  "include_details": true,
  "deals_only": false,
  "payment_frequency": "biweekly",
  "proxyConfiguration": {}
}
```

# Actor output Schema

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

One record per Clutch.ca vehicle: price, sale discount, VIN, specs, features, Carfax link, history and photos.

# 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 = {
    "max_items": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("fayoussef/clutch-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 = { "max_items": 100 }

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

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

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

```

## CLI example

```bash
echo '{
  "max_items": 100
}' |
apify call fayoussef/clutch-ca-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fayoussef/clutch-ca-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GoiKcfMuRlGc2CQTG/builds/1vdjvMMZT6ygqp6AA/openapi.json
