Gumtree Scraper — UK Classifieds, Prices & Sellers
Pricing
from $1.75 / 1,000 listings
Gumtree Scraper — UK Classifieds, Prices & Sellers
Scrape Gumtree UK classifieds by keyword, location, category, or URL. Each row has price, location, seller type, description, and photos from the public listing. Monitor mode saves only new ads and price changes.
Pricing
from $1.75 / 1,000 listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Gumtree Scraper
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Gumtree.com Limited or its affiliates. Data is read from publicly accessible search, category, and listing pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Gumtree scraper for UK classifieds. Each row is one listing: asking price in GBP, location, seller type, description, and photos. Search by keyword, place, and category, or paste a results URL. Use it as a Gumtree API alternative from Python, Node.js, cURL, or Apify MCP.
Best for: phone and goods comps, used-car filters, property and job leads, and a scheduled run that saves only new ads and price changes.
| Actor | Role |
|---|---|
| Gumtree Scraper ◄── you are here | UK classifieds: price, seller type, description, new-ad monitor |
| eBay Sold Listings Scraper | Sold comps for the same goods |
| Facebook Marketplace Scraper | Marketplace listings |
| Leboncoin Scraper | France classifieds |
| Marktplaats Scraper | Netherlands classifieds |
| Cars.com Scraper | US car listings |
When to use this Actor
- A keyword in a city — Set Keyword to iphone, Location to london, and Category to For sale. Leave Search URLs empty.
- Cars, vans, property, or jobs — Pick the category. Add a place name, or leave location empty for a UK-wide category page.
- A results page you already opened — Paste the category URL. A
/search?q=link is rewritten to the category path. Keyword and location are ignored when Search URLs is set. - One listing — Paste the listing URL. The run saves that page.
- New ads and price cuts — Turn on monitor mode and schedule the same search. The first run stores a baseline and saves nothing. Later runs save new listing ids and price changes.
When not to use this Actor
- Australia, New Zealand, or South Africa — This Actor reads the UK site only.
- Phone numbers — Those are not requested.
- A national dump in one run — Cap
maxItems(150). Split by city or category.
Key features
- Search and listing pages — Title, GBP price, location, seller type, description, and photos. Default 256 MB. No browser.
- Keyword, place, and category — For sale, cars, vans, motorbikes, property for sale, property to rent, and jobs.
- Pasted URL — Category paths and single listing pages. Browser
/search?q=links are converted before the request. - Private versus trade —
sellerTypeisprivateortradewhen the page says so. - Monitor — Named key-value store of listing id and last price for that search. The seed run does not open listing pages.
Input
| Field | Required | Default | What it does |
|---|---|---|---|
| Search or listing URLs | No | iPhone in London | Wins over the filters below. |
| Keyword | No | — | Search text when URLs are empty. |
| Location | No | — | Place name, such as london or manchester. |
| Category | No | For sale | Section used when URLs are empty. |
| Sort | No | Most recent | Applied when the Actor builds the URL. |
| Open listing pages | No | on | Description, photos, seller name, and attributes. Same saved row. |
| Maximum listings | No | 30 | Rows to save, up to 150. |
| Monitor mode | No | off | Baseline first, then new ids and price changes. |
| Monitor state store | No | gumtree-monitor | Named store for the baseline. |
| Proxy | No | Datacenter | Switch to residential if a run is blocked. |
{"keyword": "iphone","location": "london","category": "for-sale","sort": "date","includeListingDetails": true,"maxItems": 30,"monitorMode": false,"proxyConfiguration": {"useApifyProxy": true}}
Output
| Field | Meaning |
|---|---|
id | Listing id |
url | Public listing page |
title | Listing title |
price | Asking price in GBP |
pricePeriod | month or week on rent cards. Omitted on a sale price |
location | Town or area |
postedAge | Relative age from the search card |
postedAt | Timestamp from the listing page when present |
sellerType | private or trade |
sellerName | Display name on the listing page |
description | Listing description |
image, images | First photo, then the photo list |
make, model, year, mileage, fuel | Vehicle fields when the listing page includes them |
attributes | Attribute pairs from the listing page |
changeType | new or price_change on monitor runs |
previousPrice | Prior asking price when changeType is price_change |
scrapedAt | UTC timestamp |
{"id": "1803086920","url": "https://www.gumtree.com/p/iphone/apple-iphone-16-pro-max-256gb/1803086920","title": "Apple iPhone 16 Pro Max 256GB","price": 499,"currency": "GBP","location": "Hampstead, London","postedAge": "4 days","sellerType": "private","sellerName": "Miles","description": "Apple iPhone 16 Pro Max 256GB in Silver. Fully working.","image": "https://img.gumtree.com/example/86"}
Use cases
- Compare asking prices for one phone model in one city and keep
sellerTypeso trade ads are separate from private sellers. - Pull used cars in London with year, mileage, and fuel when the listing page includes them.
- Schedule monitor mode each morning and export only listings whose price moved.
- For sold comps on the same goods, run eBay Sold Listings Scraper. For France, run Leboncoin Scraper.
Integration examples
Replace APIFY_TOKEN. The slug below is the Store name.
Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("crawloop/gumtree-scraper").call({keyword: "iphone",location: "london",category: "for-sale",maxItems: 30,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("crawloop/gumtree-scraper").call(run_input={"keyword": "bmw","location": "manchester","category": "cars","maxItems": 30,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(len(items))
cURL
curl -X POST "https://api.apify.com/v2/acts/crawloop~gumtree-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"iphone","location":"london","category":"for-sale","maxItems":30}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP.
Connect your Apify account, then call this Actor by its Store name crawloop/gumtree-scraper.
Example prompts:
- "Run Gumtree Scraper for iphone in london and return price, location, and seller type as JSON"
- "Scrape Gumtree cars in manchester and summarize year, mileage, and asking price"
- "Run Gumtree Scraper in monitor mode for chef jobs in bristol, then use eBay Sold Listings Scraper for sold comps"
Suite next step
This Actor covers UK classifieds. For sold prices on the same goods, run eBay Sold Listings Scraper. For another country’s classifieds, run Leboncoin Scraper or Marktplaats Scraper.
FAQ
Does this open every listing page? Yes, when Open listing pages is on. Monitor seed runs skip those pages and save nothing. Turn the option off to keep the search card only.
Which countries are included? The UK site only. Australia, New Zealand, and South Africa are not requested.
What if the run is blocked? Leave the datacenter proxy on and retry. If the run still fails, switch the proxy to residential.
What does monitor mode skip? Listing ids already stored for that same search, unless the asking price changed. A quiet tick writes zero rows. The first run only fills the baseline.
Are phone numbers included? No. The row has the public price, description, and seller display name.