# Gumtree Scraper (`voyn/gumtree-scraper`) Actor

Export data from search results of Gumtree.com, the free classified ads, and community website. Get images, location, prices, and descriptions of the available products and adverts. Save the data as HTML, JSON, CSV, Excel, or XML.

- **URL**: https://apify.com/voyn/gumtree-scraper.md
- **Developed by:** [Voyn Software](https://apify.com/voyn) (community)
- **Categories:** E-commerce, Jobs, Real estate
- **Features:** Limited permissions
- **Stats:** 62 total users, 2 monthly users, 86.5% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 UK Scraper — Extract Listings, Prices, Images & Product Details

Scrape **Gumtree UK listings** from search results, category pages, and individual adverts. Extract product titles, prices, descriptions, locations, images, and category-specific attributes into structured data.

The **[Gumtree Scraper by Voyn Software](https://apify.com/voyn/gumtree-scraper)** supports multiple search URLs, automatic pagination, and two scraping modes: fast listing extraction or detailed product scraping.

Export your results to **JSON, CSV, Excel, or through the Apify API** for market research, price comparisons, inventory analysis, and data collection.

### Key Features

- **Scrape Gumtree UK:** Extract classified adverts from `gumtree.com`.
- **All categories:** Cars, vans, property, electronics, furniture, jobs, services, and more.
- **Search URL support:** Apply filters on Gumtree and scrape the resulting listings.
- **Multiple URLs:** Collect listings from several searches in one run.
- **Automatic pagination:** Follow available search result pages.
- **Fast scraping mode:** Extract essential information directly from search results.
- **Full details mode:** Visit individual adverts for descriptions, images, and specifications.
- **Category-specific attributes:** Extract available vehicle specifications, property information, and other listing attributes.
- **Configurable result limit:** Control the maximum number of records collected.
- **Apify Proxy support:** Configure proxy usage through the Actor input.
- **Structured exports:** Access results through Apify datasets and API integrations.

No coding is required to run the scraper through Apify Console.

### How to Scrape Gumtree Listings

#### Step 1: Find listings on Gumtree

Open [Gumtree UK](https://www.gumtree.com/) and navigate to the category you want to scrape.

Apply your preferred filters, such as:

- Category or product type
- Location
- Minimum and maximum price
- Search keywords
- Other available Gumtree filters

Copy the URL from your browser's address bar.

For example:

`https://www.gumtree.com/search?search_category=cars&search_location=uk`

The scraper uses the filters encoded in the URL. You do not need to configure them separately.

#### Step 2: Configure the scraper

Open the [Gumtree Scraper on Apify](https://apify.com/voyn/gumtree-scraper) and enter:

| Input | Description |
|---|---|
| Gumtree List URLs | One or more Gumtree search, category, or listing URLs |
| Number of Max. Products | Maximum number of records to scrape |
| Scraper Mode | Fast listing extraction or full product details |
| Proxy Configuration | Optional Apify Proxy settings |

#### Step 3: Choose your scraping mode

**Mode 0 — Scrape List Pages Only**

The faster option. Extracts listing information directly from search result pages without visiting each individual advert.

Available information includes:

- Listing URL
- Product title
- Short description
- Price
- Location
- Thumbnail image
- Posting information, when available
- Attributes displayed in search results

**Best for:** Large listing collections, price comparisons, product discovery, and general market research.

**Mode 1 — Scrape All Product Pages**

Visits individual adverts to collect more detailed information.

Available information includes:

- Listing URL and title
- Price and location
- Short and full descriptions
- Product image gallery
- Video URLs, when available
- Category breadcrumbs
- Category-specific product attributes

**Best for:** Vehicle analysis, property research, detailed product datasets, and applications requiring richer listing information.

Full details mode generally takes longer because it requires additional requests.

#### Step 4: Run and export

Click **Start** to begin scraping.

After the run, open the Dataset tab to inspect the extracted records.

You can export results as JSON, CSV, Excel, and other supported formats, or retrieve them programmatically through the Apify API.

### Example Input

#### Fast mode — Scrape 100 car listings

```json
{
  "gumtree_link": [
    "https://www.gumtree.com/search?search_category=cars&search_location=uk"
  ],
  "max_record": 100,
  "scraper_mode": "0",
  "proxy_config": {
    "useApifyProxy": true
  }
}
```

This configuration collects up to 100 records from the specified Gumtree search, using information available on the listing pages.

#### Full details mode — Multiple searches

```json
{
  "gumtree_link": [
    "https://www.gumtree.com/search?search_category=cars&search_location=uk",
    "https://www.gumtree.com/flats-houses"
  ],
  "max_record": 200,
  "scraper_mode": "1",
  "proxy_config": {
    "useApifyProxy": true
  }
}
```

This configuration collects detailed advert information from multiple searches.

**Note:** Gumtree's page structure and URL formats may change. Use a currently valid search URL copied from Gumtree whenever possible.

### What Data Can You Extract?

The available fields depend on the scraping mode, listing category, and information published by the advertiser.

| Output field | Description |
|---|---|
| `list_url` | Source search URL or URLs |
| `record_url` | Direct URL to the Gumtree advert |
| `record_name` | Product or advert title |
| `record_description` | Short listing description |
| `record_price` | Advertised price |
| `record_location` | Listing location |
| `record_thumbnail` | Main image URL |
| `posted_ago` | Posting information from search results |
| `record_images` | Image URLs from the product gallery |
| `record_videos` | Available video URLs |
| `record_description_long` | Full advert description |
| `record_breadcrumb` | Category hierarchy |
| `record_specs` | Category-specific attributes |

Fields unavailable in a particular scraping mode may be omitted.

#### Example output — Vehicle listing

The following is an illustrative example of the output structure, not a current live listing.

```json
{
  "list_url": [
    "https://www.gumtree.com/cars/uk"
  ],
  "record_url": "https://www.gumtree.com/p/cars/example-vehicle/1234567890",
  "record_name": "2018 Ford Focus 1.5 TDCi Manual",
  "record_description": "Used Ford Focus, diesel, manual transmission.",
  "record_price": "£6,950",
  "record_location": "Manchester",
  "record_thumbnail": "https://example.com/car-main.jpg",
  "record_images": [
    "https://example.com/car-main.jpg",
    "https://example.com/car-interior.jpg"
  ],
  "record_videos": [],
  "record_description_long": "2018 Ford Focus in good condition. Full service history.",
  "record_breadcrumb": "Home|Motors|Cars|Ford|",
  "record_specs": {
    "vehicle_registration_year": "2018",
    "vehicle_mileage": "72000 miles",
    "vehicle_transmission": "Manual",
    "vehicle_fuel_type": "Diesel",
    "vehicle_colour": "Silver",
    "seller_type": "Private"
  }
}
```

#### Category-specific specifications

The `record_specs` field is an object containing the attributes available for an individual listing.

For vehicle adverts, this may include registration year, mileage, fuel type, transmission, body type, engine size, colour, and seller type.

For property adverts, it may include property type, number of bedrooms, availability date, and other published details.

For other categories, the keys and values depend on the information Gumtree provides.

The scraper does not guarantee that every advert contains every attribute.

### Popular Use Cases

#### Used car market research

Collect used car adverts to compare asking prices, mileage, registration years, fuel types, and locations.

Useful for car dealerships, automotive researchers, and vehicle price analysis.

#### Property market research

Extract rental and property adverts to examine asking prices, property types, locations, and available property characteristics.

Useful for real estate research and rental market comparisons.

#### Second-hand product price comparisons

Collect classified adverts for electronics, furniture, appliances, and other second-hand goods to understand advertised prices across locations and product categories.

#### Classified advert aggregation

Build structured datasets of publicly available listings for internal research, dashboards, and analysis.

#### Recurring market analysis

Schedule separate scraper runs through Apify to collect fresh snapshots of search results over time.

For price-history or change detection, compare the datasets from successive runs in your own workflow. The Actor does not currently provide built-in incremental change tracking.

### Scrape Multiple Gumtree Searches

You can provide multiple URLs in a single run.

This is useful when you want to collect data across different categories, locations, or price ranges.

For larger searches, consider dividing your queries into smaller groups using Gumtree's filters.

For example, you could create separate searches for vehicles in different price ranges rather than relying on one very broad search.

The number of accessible results depends on Gumtree's pagination and available listings.

### Gumtree Scraper API

You can run this Actor programmatically using the Apify API.

#### Example — JavaScript

Install the Apify client:

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

Run the Actor:

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

const client = new ApifyClient({
    token: process.env.APIFY_TOKEN,
});

const input = {
    gumtree_link: [
        'https://www.gumtree.com/search?search_category=cars&search_location=uk'
    ],
    max_record: 100,
    scraper_mode: '0',
    proxy_config: {
        useApifyProxy: true
    }
};

const run = await client.actor('voyn/gumtree-scraper').call(input);

const { items } = await client
    .dataset(run.defaultDatasetId)
    .listItems();

console.log(`Scraped ${items.length} listings`);
console.log(items);
```

Store your Apify API token securely. Do not expose it in public source code.

#### API and automation integrations

You can also connect scraper results to other systems using:

- Apify API
- Apify schedules
- Webhooks
- Make
- Zapier
- n8n
- Custom backend applications

These integrations can be used to automate data collection, processing, and delivery.

### Pricing and Usage

The Actor uses Apify's published pricing model. See the [Pricing tab](https://apify.com/voyn/gumtree-scraper) for the current rate and billing details.

To manage costs:

- Use fast mode when full advert details are unnecessary.
- Set an appropriate `max_record` limit.
- Use focused search URLs to avoid collecting irrelevant results.
- Use full details mode only when you need the additional fields.

Proxy usage and platform charges may also affect total costs, depending on your configuration and Apify plan.

### Frequently Asked Questions

#### Can I scrape all Gumtree UK categories?

The scraper is designed to work across Gumtree UK categories, including vehicles, property, electronics, furniture, jobs, and services. Actual extraction depends on the site's available HTML and listing structure.

#### Can I scrape multiple search URLs?

Yes. Add multiple URLs to the `gumtree_link` array. The scraper processes them within the configured run.

#### Does the scraper support pagination?

Yes. It follows available pagination on supported Gumtree search result pages.

#### What is the difference between fast and full details mode?

Fast mode extracts data from search results. Full details mode visits individual adverts and extracts additional information, including image galleries, descriptions, and category-specific attributes.

#### Can I scrape individual Gumtree adverts?

Yes. Individual UK advert URLs using the supported `/p/` format can be processed in full details mode.

#### Can I scrape seller phone numbers or email addresses?

No. The current scraper does not provide dedicated seller phone number or email extraction.

#### Does the scraper support Gumtree Australia?

The current published configuration is focused on **Gumtree UK (`gumtree.com`)**. Gumtree Australia scraping is not enabled.

#### Can I track new listings or price changes?

You can schedule repeated runs and compare their datasets externally. Built-in incremental tracking, automatic price-change detection, and alerts are not currently included.

#### Why are some fields missing?

Not every Gumtree advert includes the same information. Available fields also differ between fast mode and full details mode.

#### What happens if Gumtree blocks a request?

The scraper uses Crawlee request handling and retry settings, but Gumtree may still block requests or return incomplete pages. Proxy configuration can help with some access issues, but successful extraction is not guaranteed for every request.

### Limitations

- Supports Gumtree UK only in the current configuration.
- Does not bypass every CAPTCHA, rate limit, or access restriction.
- Does not guarantee that all Gumtree search results are accessible.
- Some adverts may be removed or become unavailable during a run.
- Full details depend on information present on individual advert pages.
- Seller phone and email extraction are not supported.
- Built-in incremental scraping and price-history tracking are not supported.
- Gumtree website changes may require scraper updates.

Please use the scraper responsibly and comply with applicable laws, privacy requirements, and website terms.

### Support and Feedback

Need help, found a bug, or want to request a feature?

Open an issue through the [Apify Actor Issues tab](https://apify.com/voyn/gumtree-scraper/issues).

When reporting a problem, include the Gumtree URL, scraping mode, and relevant error logs. Avoid sharing private credentials or API tokens.

Developed and maintained by **[Voyn Software](https://voyn.com.tr/)**.

Explore the scraper: **[Gumtree UK Scraper on Apify](https://apify.com/voyn/gumtree-scraper)**.

# Actor input Schema

## `gumtree_link` (type: `array`):

Gumtree list links that contains products you want to be scraped.

## `max_record` (type: `integer`):

Scraper will stop running when successfully scrapes X amount of products or when reaches maximum number of page Gumtree allows.

## `scraper_mode` (type: `string`):

You can either scrape generic info (30 products with 1 web request) or more detailled info (30 products with 31 web requests).

## `proxy_config` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "gumtree_link": [
    "https://www.gumtree.com/search?search_category=cars&search_location=uk"
  ],
  "max_record": 10,
  "scraper_mode": "0",
  "proxy_config": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

UK and Australian listings stored in the default dataset.

# 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 = {
    "gumtree_link": [
        "https://www.gumtree.com/search?search_category=cars&search_location=uk"
    ],
    "proxy_config": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("voyn/gumtree-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 = {
    "gumtree_link": ["https://www.gumtree.com/search?search_category=cars&search_location=uk"],
    "proxy_config": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("voyn/gumtree-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 '{
  "gumtree_link": [
    "https://www.gumtree.com/search?search_category=cars&search_location=uk"
  ],
  "proxy_config": {
    "useApifyProxy": false
  }
}' |
apify call voyn/gumtree-scraper --silent --output-dataset

```

## MCP server setup

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