# Gumtree Scraper 🇬🇧 (listings, prices, seller details) (`tagadanar/gumtree-scraper`) Actor

Scrape Gumtree.com UK listings by keyword, category and location: cars, property, jobs and second-hand goods. Flat JSON with price, location, seller type and photo. Optional full detail enrichment adds description, all photos, spec table and phone when the seller shows one.

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

## Pricing

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

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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Gumtree Scraper 🇬🇧

Pull live listings from Gumtree.com, the UK's classifieds institution, as clean structured data. Search by keyword, narrow by category and location, and get back one flat JSON record per listing with the price, the location, the seller type and the photo. Turn on detail enrichment and each record also carries the full description, every photo, the spec table and the phone number when the seller shows one. No account, no API key, one price per listing with platform usage included.

Gumtree covers what the UK buys, sells, rents and hires: used cars and vans, flats and houses to rent, jobs, furniture, phones, tools, pets and services. If you are tracking prices, hunting undervalued cars, building a lead list or monitoring a local market, this turns the site into a spreadsheet.

### What you get

Each listing is one row:

| Field | What it is |
| --- | --- |
| `id` | Gumtree listing id |
| `title` | Listing title |
| `description` | Full listing text (with detail enrichment) |
| `url` | Direct link to the listing |
| `price` | Price as a number |
| `currency` | `GBP` when there is a price |
| `priceRaw` | Price exactly as the site shows it, e.g. `£6,650` |
| `location` | Area and town, e.g. `Rainham, London` |
| `category` | The category you searched |
| `categoryPath` | Full category trail, e.g. `Motors > Cars > Audi > Audi A4` (with detail enrichment) |
| `attributes` | Category-specific details: year, mileage, fuel and gearbox on cars, beds on property, and so on |
| `sellerType` | `Private` or `Trade` where the site shows it |
| `sellerName` | Seller display name (with detail enrichment) |
| `phone` | Seller phone number, when the seller shows one (with detail enrichment) |
| `postedAt` | When the ad went up, as the site words it, e.g. `38 mins ago` |
| `featured` | Whether the ad is a paid featured placement |
| `imageUrl` / `imageCount` | First photo and how many the listing has |
| `images` | Every photo at full resolution (with detail enrichment) |
| `searchQuery` | The search term this row came from |
| `source` / `scrapedAt` | `gumtree` and the capture time |

### Who uses it

- **Car and van buyers, dealers and flippers** watching what a model actually lists for across the UK, with year, mileage and Private-vs-Trade on every row.
- **Property researchers and relocation tools** pulling rentals for an area with prices and posting times for a live market snapshot.
- **Lead-gen and sales teams** building lists of active trade sellers in a category and town, with a phone number when the seller publishes one.
- **Resellers and price monitors** running a saved search on a schedule and feeding fresh listings into a model or an alert.

### How to use it

Type a search the way you would on Gumtree, optionally pick a category and a location, and set how many listings you want.

**iPhones around London**

```json
{
  "query": ["iphone"],
  "location": "london",
  "maxResults": 100
}
````

**Every car listed in Manchester, with full details and seller info**

```json
{
  "category": "cars",
  "location": "manchester",
  "includeDetails": true,
  "maxResults": 300
}
```

**Two searches across the whole UK**

```json
{
  "query": ["ford transit", "vw camper"],
  "maxResults": 200
}
```

Common category slugs: `cars`, `motorbikes`, `for-sale`, `property-to-rent`, `flats-houses`, `jobs`, `pets`, `business-services`. Any slug from a Gumtree URL works.

### Pricing

You pay per listing returned, platform usage included in the price. No subscription.

| Event | Price |
| --- | --- |
| Actor start | $0.001 per run |
| Listing scraped | $1.50 per 1,000 |

Detail enrichment is included in the per-listing price. The tiny start fee covers runs that return nothing; on any normal search it is noise next to the per-listing price.

### FAQ

**Do I need a Gumtree account or an API key?**
No. You give a search, you get listings.

**Can I get seller phone numbers?**
Often, yes. When a seller chooses to show a number on the ad, detail enrichment returns it in the `phone` field. Sellers who only take messages come back with `phone: null`.

**What is the difference with and without `includeDetails`?**
Without it you get everything visible on the search results page: title, price, location, seller type, key specs and first photo. With it the actor also opens each listing for the full description, all photos, the complete spec table, the seller name and the phone. Same price per listing either way; detail runs just take longer.

**Can I monitor a search on a schedule?**
Yes. Set a Schedule on the actor and each run returns the current listings for your search; new ads surface at the top of the site's default ordering.

**Which categories are supported?**
All of them. Cars and motors, property to rent and for sale, jobs, goods, pets and services. Use the category slug from any Gumtree URL.

**Is it reliable?**
Yes. It reads Gumtree's own structured data and stable page hooks rather than fragile styling markup, so the fields stay stable when the site restyles.

### Related scrapers

Building a classifieds pipeline? These cover other big markets with the same flat output:

- **Subito.it Scraper** for Italy
- **Kleinanzeigen Scraper** for Germany
- **Marktplaats Scraper** for the Netherlands
- **Blocket Scraper** for Sweden

***

Gumtree scraper, Gumtree.com scraper, UK classifieds scraper, scrape Gumtree listings, used car prices UK, Gumtree cars data, UK property to rent listings, trade seller leads UK, Gumtree phone numbers, classifieds price monitoring, Gumtree API alternative.

# Actor input Schema

## `query` (type: `array`):

One search per entry, exactly what you would type into the Gumtree search box, e.g. <code>iphone</code>, <code>bmw</code>, <code>sofa</code>. Leave empty to browse a whole category instead (in that case, set "category").

## `category` (type: `string`):

Restrict the search to one Gumtree category slug, e.g. <code>cars</code>, <code>property-to-rent</code>, <code>flats-houses</code>, <code>for-sale</code>, <code>jobs</code>, <code>motorbikes</code>, <code>pets</code>, <code>business-services</code>. See the README for the fuller list. Leave empty to search across all of Gumtree.

## `location` (type: `string`):

A UK place name or postcode, e.g. <code>london</code>, <code>manchester</code>, <code>SW1A 1AA</code>. Leave empty to search all of the UK.

## `maxResults` (type: `integer`):

Stop after this many listings across all searches. You are only charged for listings actually delivered.

## `includeDetails` (type: `boolean`):

Fetch each listing's own page for the full description, all photos, the spec table, seller name and phone number when the seller shows one. Slower and priced the same per listing either way, since detail enrichment folds into the one charge for that listing.

## Actor input object example

```json
{
  "query": [
    "iphone"
  ],
  "location": "london",
  "maxResults": 30,
  "includeDetails": false
}
```

# Actor output Schema

## `listings` (type: `string`):

One item per listing 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 = {
    "query": [
        "iphone"
    ],
    "location": "london",
    "maxResults": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("tagadanar/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 = {
    "query": ["iphone"],
    "location": "london",
    "maxResults": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("tagadanar/gumtree-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 '{
  "query": [
    "iphone"
  ],
  "location": "london",
  "maxResults": 30
}' |
apify call tagadanar/gumtree-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Gumtree Scraper 🇬🇧 (listings, prices, seller details)",
        "description": "Scrape Gumtree.com UK listings by keyword, category and location: cars, property, jobs and second-hand goods. Flat JSON with price, location, seller type and photo. Optional full detail enrichment adds description, all photos, spec table and phone when the seller shows one.",
        "version": "0.1",
        "x-build-id": "RPVCcoOfKCSYrlEWs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tagadanar~gumtree-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tagadanar-gumtree-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/tagadanar~gumtree-scraper/runs": {
            "post": {
                "operationId": "runs-sync-tagadanar-gumtree-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/tagadanar~gumtree-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-tagadanar-gumtree-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",
                "properties": {
                    "query": {
                        "title": "Search terms",
                        "type": "array",
                        "description": "One search per entry, exactly what you would type into the Gumtree search box, e.g. <code>iphone</code>, <code>bmw</code>, <code>sofa</code>. Leave empty to browse a whole category instead (in that case, set \"category\").",
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "Category",
                        "type": "string",
                        "description": "Restrict the search to one Gumtree category slug, e.g. <code>cars</code>, <code>property-to-rent</code>, <code>flats-houses</code>, <code>for-sale</code>, <code>jobs</code>, <code>motorbikes</code>, <code>pets</code>, <code>business-services</code>. See the README for the fuller list. Leave empty to search across all of Gumtree."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "A UK place name or postcode, e.g. <code>london</code>, <code>manchester</code>, <code>SW1A 1AA</code>. Leave empty to search all of the UK."
                    },
                    "maxResults": {
                        "title": "Max listings",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Stop after this many listings across all searches. You are only charged for listings actually delivered.",
                        "default": 30
                    },
                    "includeDetails": {
                        "title": "Include full listing details",
                        "type": "boolean",
                        "description": "Fetch each listing's own page for the full description, all photos, the spec table, seller name and phone number when the seller shows one. Slower and priced the same per listing either way, since detail enrichment folds into the one charge for that listing.",
                        "default": false
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
