# $1/1K 💙 Carsales.com.au Scraper (By Search URL) (`azzouzana/carsales-com-au-scraper-by-search-url`) Actor

⚡ #1 Scrape carsales.com.au vehicle listings from any search URL. Get prices, photos, specs, highlights, seller notes, contact info, and much more for every car. Export to JSON, CSV, or API. Fast and affordable at just $1 per 1,000 listings. Grab your search URLs and you’re good to go! 🚀

- **URL**: https://apify.com/azzouzana/carsales-com-au-scraper-by-search-url.md
- **Developed by:** [Azzouzana](https://apify.com/azzouzana) (community)
- **Categories:** E-commerce, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$1.00 / 1,000 results

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

## ⚡ Carsales.com.au Real-Time Search Scraper

Extract comprehensive vehicle data from **Carsales.com.au** in seconds. Whether you are conducting automotive market research, tracking competitor pricing, or building a car dealership database, this high-performance scraper delivers structured data at scale for **less than the price of a coffee**.

### 🚀 Why choose this scraper?
* **Comprehensive Data:** Get everything from prices, high-res photos, and technical specs to seller notes and contact info.
* **Cost-Effective:** Professional-grade data extraction for just **$1 per 1,000 listings**.
* **Zero Coding Required:** Simply paste your search URL from Carsales and let the actor do the rest.
* **Developer-Ready:** Export results in **JSON, CSV, XML, or Excel**, or integrate directly via **API**.

### How to use this actor 🚀

1. [Register for a free Apify account](https://apify.com/sign-up?fpr=cbgdsf) – no credit card required.
2. Open the actor, add your **Input**, and start a run.
3. A free account includes enough credits to try the scraper and check the data.
4. Use the free tier to see if the output fits your project before scaling up.

The scraper needs a **`startUrl`**: a valid **cars** search URL from carsales.com.au (with your filters already applied in the browser).

- It should start with: `https://www.carsales.com.au/cars`
- Example:
    - `https://www.carsales.com.au/cars/?q=%28And.Make.BMW._.PriceIndicator.Low.%29`

Copy the URL from the site after you set make, price, location, fuel type, and anything else you need.

### Why scrape carsales.com.au?

carsales.com.au is one of Australia’s largest car marketplaces, with dealer and private listings.

* **Market Intelligence:** Watch price fluctuations over time to identify the best time to buy or sell.
* **Price Comparison:** Bulk-compare similar models across different regions to find undervalued gems.
* **Lead Generation & Reports:** Build comprehensive inventory lists or market reports for dealerships and private collectors.
* **Regional Stock Analysis:** Map out vehicle availability within specific budgets or geographic zones.
* **AI & Machine Learning:** Feed clean, structured data into **LLMs (like GPT-4 or Gemini)** or custom models to build car-buying assistants, price prediction engines, or automated valuation tools.

### Cost of usage

Simple, **$1 per 1,000 listings** scraped. No hidden fees.

| Listings | Estimated cost |
| -------: | -------------: |
| 100 | ~$0.10 |
| 1,000 | ~$1.00 |
| 5,000 | ~$5.00 |
| 10,000 | ~$10.00 |

### Free tier limitations

On the **free tier**, runs are usually limited as follows:

- **Sample size:** up to **5 listings** per run.
- **Daily cap:** about **5 runs** per calendar day (UTC).
- **Between runs:** about **30 minutes** before you can start another run.

> Limits can change based on platform rules and fair use.

#### Upgrade when you're ready

If the actor works for you, a **paid Apify plan** lifts those caps so you can run more often and scrape more listings. [Apify pricing](https://apify.com/pricing?fpr=cbgdsf).

### Input

| Field | Type | Description | Default value / Example |
| ----- | ---- | ----------- | ----------------------- |
| `startUrl` | `string` | Your cars search URL from carsales.com.au | `https://www.carsales.com.au/cars/?q=…` |
| `maxItems` | `number` | How many listings to collect | `10` |

### Output

Results go to the **dataset**. Each row is one vehicle listing with the fields the scraper could collect for that ad.

Example listing:

```json
{
  "networkId": "OAG-AD-25531955",
  "sellerId": "AGC-SELLER-11787",
  "make": "mazda",
  "model": "cx-5",
  "year": "2017",
  "state": "act",
  "listingType": "used",
  "condition": "used",
  "priceType": "egc",
  "bodyStyle": "suv",
  "fuelType": "petrol - unleaded ulp",
  "badge": "maxx sport",
  "category": "wagon",
  "colour": "soul red",
  "odometerKm": "62005",
  "locationPostcode": "2606",
  "region": "canberra",
  "suburb": "phillip",
  "sellerType": "dealer",
  "publishDate": "2017-02-22t02:37:45",
  "saleStatus": "for sale",
  "detailsFullTitle": "2017 Mazda CX-5 Maxx Sport KE Series 2 Auto FWD",
  "detailsSubtitleLine": "ACT • Dealer used",
  "sellerComment": "*** SALE NOW ON *** WAS $24,800 NOW $23,490 ...",
  "keyHighlights": [
    "Full service history",
    "Bluetooth",
    "Reversing camera",
    "AEB (low speed only)",
    "GPS (satellite navigation)",
    "Blind Spot Monitoring"
  ],
  "listingSpecifications": [
    { "label": "62,005km", "value": "SUV" },
    { "label": "Petrol", "value": "Automatic" },
    { "label": "Vehicle description", "value": "KE1072 Maxx Sport Wagon 5dr SKYACTIV-Drive 6sp FWD 2.0i" },
    { "label": "Exterior colour", "value": "Soul Red" },
    { "label": "Body type", "value": "SUV, 5 doors, 5 seats" },
    { "label": "Transmission", "value": "6 speed Automatic" },
    { "label": "Engine", "value": "4 cylinders, Petrol Aspirated, 2.0L" },
    { "label": "6.6 L/100km", "value": "Fuel consumption combined" },
    "... more specs ..."
  ],
  "keyDetailsOdometer": "62,005km",
  "keyDetailsBodyType": "SUV",
  "keyDetailsFuel": "Petrol",
  "transmission": "Automatic",
  "dealerLicence": "Motor Vehicle Dealer Licence: 17000028, Lennock Phillip Used 1",
  "dealerMobile": "0488 805 266",
  "gears": "6",
  "mileage": "62,005 km"
}
````

### Looking for something else?

Browse [scrapers on the Apify Store](https://apify.com/store?fpr=cbgdsf) for other sites and use cases.

### Search keywords

carsales scraper, carsales.com.au scraper, carsales API, scrape carsales, carsales data extraction, carsales crawler, carsales listings scraper, Australia car scraper, used cars Australia data, car price scraper Australia, carsales vehicle data, carsales search scraper, car marketplace scraper, automotive data Australia, car listings API, carsales export, carsales to CSV, carsales to JSON, car dealer scraper Australia, Apify carsales

#### 📬 Contact & Custom Solutions

Want to chat? Don't hesitate to reach out to us:

- **Discord**: `@azzouzana`
- **Email**: `labs@azzouzana.com`

### Disclaimer

This actor is an **independent tool**. It is not affiliated with, endorsed by, or sponsored by carsales.com.au, Carsales Network, or related companies. Trademarks belong to their owners.

# Actor input Schema

## `startUrl` (type: `string`):

Must start with https://www.carsales.com.au/cars/?q= (encoded search predicate).

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

Maximum listings to scrape

## Actor input object example

```json
{
  "startUrl": "https://www.carsales.com.au/cars/?q=%28And.Make.BMW._.PriceIndicator.Low.%29",
  "maxItems": 10
}
```

# 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 = {
    "startUrl": "https://www.carsales.com.au/cars/?q=%28And.Make.BMW._.PriceIndicator.Low.%29",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("azzouzana/carsales-com-au-scraper-by-search-url").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 = {
    "startUrl": "https://www.carsales.com.au/cars/?q=%28And.Make.BMW._.PriceIndicator.Low.%29",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("azzouzana/carsales-com-au-scraper-by-search-url").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 '{
  "startUrl": "https://www.carsales.com.au/cars/?q=%28And.Make.BMW._.PriceIndicator.Low.%29",
  "maxItems": 10
}' |
apify call azzouzana/carsales-com-au-scraper-by-search-url --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=azzouzana/carsales-com-au-scraper-by-search-url",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "$1/1K 💙 Carsales.com.au Scraper (By Search URL)",
        "description": "⚡ #1 Scrape carsales.com.au vehicle listings from any search URL. Get prices, photos, specs, highlights, seller notes, contact info, and much more for every car. Export to JSON, CSV, or API. Fast and affordable at just $1 per 1,000 listings. Grab your search URLs and you’re good to go! 🚀",
        "version": "0.0",
        "x-build-id": "MXiNP6Gv4smqkjkVy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/azzouzana~carsales-com-au-scraper-by-search-url/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-azzouzana-carsales-com-au-scraper-by-search-url",
                "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/azzouzana~carsales-com-au-scraper-by-search-url/runs": {
            "post": {
                "operationId": "runs-sync-azzouzana-carsales-com-au-scraper-by-search-url",
                "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/azzouzana~carsales-com-au-scraper-by-search-url/run-sync": {
            "post": {
                "operationId": "run-sync-azzouzana-carsales-com-au-scraper-by-search-url",
                "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": [
                    "startUrl"
                ],
                "properties": {
                    "startUrl": {
                        "title": "Start URL",
                        "type": "string",
                        "description": "Must start with https://www.carsales.com.au/cars/?q= (encoded search predicate)."
                    },
                    "maxItems": {
                        "title": "Max items to scrape",
                        "minimum": 10,
                        "type": "integer",
                        "description": "Maximum listings to scrape",
                        "default": 10
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
