Gumtree Scraper — UK Classifieds, Prices & Sellers avatar

Gumtree Scraper — UK Classifieds, Prices & Sellers

Pricing

from $1.75 / 1,000 listings

Go to Apify Store
Gumtree Scraper — UK Classifieds, Prices & Sellers

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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

ActorRole
Gumtree Scraper ◄── you are hereUK classifieds: price, seller type, description, new-ad monitor
eBay Sold Listings ScraperSold comps for the same goods
Facebook Marketplace ScraperMarketplace listings
Leboncoin ScraperFrance classifieds
Marktplaats ScraperNetherlands classifieds
Cars.com ScraperUS 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 — sellerType is private or trade when 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

FieldRequiredDefaultWhat it does
Search or listing URLsNoiPhone in LondonWins over the filters below.
KeywordNo—Search text when URLs are empty.
LocationNo—Place name, such as london or manchester.
CategoryNoFor saleSection used when URLs are empty.
SortNoMost recentApplied when the Actor builds the URL.
Open listing pagesNoonDescription, photos, seller name, and attributes. Same saved row.
Maximum listingsNo30Rows to save, up to 150.
Monitor modeNooffBaseline first, then new ids and price changes.
Monitor state storeNogumtree-monitorNamed store for the baseline.
ProxyNoDatacenterSwitch 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

FieldMeaning
idListing id
urlPublic listing page
titleListing title
priceAsking price in GBP
pricePeriodmonth or week on rent cards. Omitted on a sale price
locationTown or area
postedAgeRelative age from the search card
postedAtTimestamp from the listing page when present
sellerTypeprivate or trade
sellerNameDisplay name on the listing page
descriptionListing description
image, imagesFirst photo, then the photo list
make, model, year, mileage, fuelVehicle fields when the listing page includes them
attributesAttribute pairs from the listing page
changeTypenew or price_change on monitor runs
previousPricePrior asking price when changeType is price_change
scrapedAtUTC 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 sellerType so 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 os
from apify_client import ApifyClient
client = 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().items
print(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.