# Gumtree Australia Scraper — $0.002/Listing · No Login (`gio21/gumtree-au-classifieds-scraper`) Actor

Scrape Gumtree Australia listings by search URL: price, condition, location, seller name and full description, no login. $0.002 per listing.

- **URL**: https://apify.com/gio21/gumtree-au-classifieds-scraper.md
- **Developed by:** [Gio](https://apify.com/gio21) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 listing scrapeds

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

Learn more: https://docs.apify.com/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

## Gumtree Australia Scraper — $0.002/Listing · No Login

Scrape **Gumtree.com.au** classifieds — cars, vans, property, services and general listings — by search URL. Returns title, price, condition, location, seller name, full description and the listing URL. No account, no login, flat pay-per-listing pricing.

### Why use this scraper

Gumtree Australia is one of the country's largest classifieds sites, spanning cars, property, jobs and general goods, but it has no public API for bulk access. Anyone benchmarking used-vehicle prices by state, tracking a category for new stock, or building a lead list of local sellers and dealers has to either scrape the site themselves (Gumtree's result pages are JavaScript-rendered and change structure periodically) or buy from a data vendor with minimum volume commitments.

This actor removes that friction: give it a Gumtree AU search-result URL and it returns structured records for every listing on that search, including the full description text (not just a snippet) and the seller name, which is often a dealership for vehicle categories. Because pricing is per listing returned rather than per run, small test pulls and large category sweeps cost proportionally the same per item.

### Overview

Input is one or more Gumtree.com.au search-result URLs, the kind you get by running a search and filters on the site itself. Output is one JSON record per listing: title, numeric price and currency, condition, location, seller, full description and the canonical listing URL. The actor paginates and opens each listing's detail page to capture the full description, up to the configured `maxItems`.

### Supported inputs

- **Category search URL** — any Gumtree.com.au search-result URL, such as a car category filtered by location (e.g. `gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303`).
- **Multiple start URLs** — pass an array to combine several searches (different cities, different categories) in a single run.
- **Result cap** — `maxItems` (1 to 100) limits total listings returned across all start URLs; each listing requires one extra detail-page fetch to capture the full description, so this cap directly controls run time and cost.

### Use cases

- **Used-vehicle dealers** — benchmark competitor asking prices by model and location across Australian states.
- **Property and services research** — track asking prices or service rates in a specific city or region.
- **Lead generation** — pull seller names and locations from a category (trade services, equipment) where the seller is effectively a small business.
- **Classifieds aggregators** — mirror a Gumtree AU search into a broader cross-site listing index.
- **Academic and market researchers** — sample a category's description text at scale for pricing or language-pattern analysis.
- **Price-drop alerting** — re-run the same search URL on a schedule and flag listings where `price` has fallen since the last pull.

### How it works

The actor opens each Gumtree.com.au search-result URL and reads the listing data embedded in the page (the same structured data Gumtree uses to render its own results grid), then visits each listing's own page to pull the full description text, since search-result pages only show a truncated preview. Condition and currency come through as Gumtree itself labels them (e.g. `UsedCondition`, `AUD`).

### Input configuration

**Single city/category search:**

```json
{
  "startUrls": ["https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303"],
  "maxItems": 50
}
```

**Multiple searches in one run:**

```json
{
  "startUrls": [
    "https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303",
    "https://www.gumtree.com.au/s-cars-vans-utes/sydney/c18320l3003012"
  ],
  "maxItems": 80
}
```

**Small sample for a quick check:**

```json
{
  "startUrls": ["https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303"],
  "maxItems": 10
}
```

### Output sample

Real output from a live run against a Perth car search:

```json
[
  {
    "title": "2022 Suzuki Jimny Lite GJ",
    "price": 25990,
    "currency": "AUD",
    "condition": "UsedCondition",
    "location": "Wangara, WA, 6065",
    "seller": "Wangara MG Used",
    "description": "COMPACT PACKAGE.. BIG PERSONALITY.. FULL SERVICE HISTORY.. Do not let its size fool you, this compact 4x4 is ready to bring FUN and ADVENTURE into your life.. - 4x4 dual range with 5-speed MANUAL - Ladder frame construction with solid axles - Excellent departure / breakover / approach angles - Lightweight and extremely agile...",
    "url": "https://www.gumtree.com.au/web/listing/cars-vans-utes/1345002837",
    "scrapedAt": "2026-10-10T09:17:24.959Z"
  },
  {
    "title": "2022 Mitsubishi Outlander LS ZM",
    "price": 22990,
    "currency": "AUD",
    "condition": "UsedCondition",
    "location": "Osborne Park, WA, 6017",
    "seller": "Scarboro Toyota",
    "description": "*** 7 SEAT FAMILY SUV *** 2022 MITSUBISHI OUTLANDER LS 7 SEAT 2WD AUTO WAGON PRESENTED IN WHITE...",
    "url": "https://www.gumtree.com.au/web/listing/cars-vans-utes/1345002838",
    "scrapedAt": "2026-10-10T09:17:25.100Z"
  }
]
```

### Key output fields

| Field | Type | Description |
|---|---|---|
| `title` | string | Listing headline |
| `price` | number | Numeric asking price |
| `currency` | string | Currency code, as Gumtree shows it (AUD) |
| `condition` | string | Condition label as Gumtree categorizes the item (e.g. `UsedCondition`) |
| `location` | string | Suburb, state and postcode as listed |
| `seller` | string | Seller or dealership name |
| `description` | string | Full listing description text, not truncated |
| `url` | string | Canonical Gumtree.com.au listing URL |
| `scrapedAt` | string | ISO timestamp the actor collected this record |

### Pricing

Pay-per-event, charged only for listings actually returned:

| Event | Price |
|---|---|
| Actor start | $0.0001 (one-time, per run) |
| Listing scraped | $0.002 per listing |

1,000 listings cost roughly $2.00, plus the one-time $0.0001 start fee per run.

### What makes this richer than the competition

`memo23/gumtree-cheerio` ("Gumtree \[AUS-UK-NZ-SA] Search By URL or Keywords") is the category leader with 42 users in the last 30 days and covers four countries at a flat $1.75 price point; it is the broader, multi-market option. `abotapi/gumtree-au-scraper` ("Gumtree AU Scraper - Listings, Sellers & Reviews") is the closer Australia-only comparable at 3 users. Against both, this actor's differentiator is price: at $0.002 per listing plus a negligible start fee, 1,000 listings cost about $2, well under memo23's flat $1.75-per-something pricing for any meaningful volume, while still returning the full (non-truncated) description and seller name that make the data usable for lead generation, not just price snapshots.

### Notes & limitations

- Covers Gumtree.com.au (Australia) only; it does not cross into Gumtree's UK or other regional sites.
- Each listing costs one extra detail-page fetch to retrieve the full description, so very large `maxItems` values take longer than a search-page-only scrape would.
- `seller` reflects whatever name the account posting the listing has set (an individual's name or a dealership name); Gumtree does not expose a separate verified-business flag in the listing data itself.
- Listings without a seller-provided description return an empty or very short `description` field; this reflects what the seller actually wrote, not a parsing gap.
- Results reflect the live site at run time; Gumtree listings are added and removed continuously, so a repeated run on the same search URL can return a different mix of listings.
- The actor does not message sellers or submit offers; it only reads what is publicly rendered on the search and listing pages.
- `price` is omitted or `null` for listings posted as "Free" or "Swap/Trade", since Gumtree itself does not attach a numeric value to those.

### FAQ

**Do I need a Gumtree account or login?**
No. The actor reads public search-result and listing pages directly; no login is required.

**Can I search categories other than cars?**
Yes. Any Gumtree.com.au search-result URL works as a start URL, including property, services and general classifieds.

**How do I filter by location or price?**
Build the filtered search on gumtree.com.au itself using its own location/price/category filters, then paste the resulting URL into `startUrls`.

**Does this cover Gumtree UK or other countries?**
No, this actor is Australia-only (gumtree.com.au). For other Gumtree markets, a multi-country actor would be needed.

**Why does `maxItems` cap out at 100?**
Each listing requires an extra detail-page fetch for the full description; the cap keeps individual runs predictable in time and cost. Schedule repeated runs for larger ongoing coverage.

**Can I track price changes on the same listings over time?**
Yes. Scheduling the actor against the same search URL and comparing `price` by `url` across runs is a common way to track price drops.

**Does the seller field distinguish private sellers from dealers?**
Not with an explicit flag, but dealership listings typically show the business name (as in the sample above, "Wangara MG Used" and "Scarboro Toyota"), while private sellers usually show a personal name or a generic Gumtree handle.

### For AI Agents & LLM Apps

This actor is available over the Apify MCP server (`mcp.apify.com`) for direct use from Claude, Cursor or any MCP-compatible agent, and over the plain REST API for scripted pipelines.

Synchronous call that returns dataset items directly, no polling required:

```bash
curl "https://api.apify.com/v2/acts/gio21~gumtree-au-classifieds-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"startUrls": ["https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303"], "maxItems": 30}'
```

### Disclaimer

This actor is not affiliated with, endorsed by, or sponsored by Gumtree Australia Pty Ltd or eBay Inc. "Gumtree" is a trademark of its respective owner. The actor only collects data that is publicly visible on gumtree.com.au listing pages at the time of the run.

### SEO Keywords

Gumtree Australia scraper, Gumtree AU API, Gumtree car listings data, Gumtree classifieds scraper, Australian classifieds data, Gumtree price scraper.

# Actor input Schema

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

One or more gumtree.com.au search-result URLs, e.g. https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303

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

Maximum number of listings to return in total across all start URLs. Each listing costs one extra detail-page fetch, so keep this modest.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303"
  ],
  "maxItems": 20
}
```

# 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": [
        "https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("gio21/gumtree-au-classifieds-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": ["https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("gio21/gumtree-au-classifieds-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 '{
  "startUrls": [
    "https://www.gumtree.com.au/s-cars-vans-utes/perth/c18320l3008303"
  ],
  "maxItems": 20
}' |
apify call gio21/gumtree-au-classifieds-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gio21/gumtree-au-classifieds-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/MymSBc3Ymz3uk0Qk4/builds/D5Ys5ytNwlWpzrIgk/openapi.json
