Gumtree UK Scraper - Classified Ads & Listings avatar

Gumtree UK Scraper - Classified Ads & Listings

Pricing

from $1.54 / 1,000 listings

Go to Apify Store
Gumtree UK Scraper - Classified Ads & Listings

Gumtree UK Scraper - Classified Ads & Listings

Scrape Gumtree UK ads by keyword, category, town or postcode, or a pasted Gumtree link. Each row has the ad id, title, price, category, town, photos and link, plus full text, attributes, seller and posted date if you open listing pages. Phone numbers and emails removed. $1.60 per 1,000 listings.

Pricing

from $1.54 / 1,000 listings

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

a day ago

Last modified

Share

Search Gumtree UK by keyword, category, town or postcode and get one row per ad: id, title, price, category, place, photos and link, with phone numbers and email addresses stripped out of every field before a row is written.

Search results carry no posted date and only a snippet of the ad text. If you need either, turn on Open each listing page, which makes a run roughly ten times slower.

InputA search term, a category, UK towns or postcodes, or Gumtree search URLs
OutputOne row per ad: title, price, category, town, snippet, photos and link; full text, attributes, seller and posted date with listing pages on
Ceiling50,000 listings per run, and 100 results pages per search
Account neededNone
Price$1.60 per 1,000 listings on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 3,100

🔍 What Gumtree UK Scraper does

It reads the pages Gumtree shows a signed-out visitor, in one of two modes.

Search results only, the default, is fast: about 25 ads per page load. You get the id, title, price, town, the snippet Gumtree shows on the card, the thumbnail, the photo count and the link. On cars, vans and motorbikes the card also carries year, mileage, fuel, engine size and private or trade.

Open each listing page adds what only exists on the ad itself: the full text, the attribute table, seller type and name, the posted date, every photo and, on property ads, the postcode and map coordinates. A 50-listing run took 51 seconds with it on and about 4 with it off. Leave it off to watch a category for new ads, turn it on to build a dataset.

Sellers put their number and email in the ad body all the time, often disguised:

name (at) example dot com
, or a mobile broken up with spaces. Every string is scanned before it is written, and anything that looks like a phone number or an email address becomes [removed]. It errs on the side of removing too much. Prices, years, mileages, postcodes and ad ids are left alone. An audit of 451 delivered rows found no contact detail left, and the run log says how many it removed.

Paid "Featured" cards repeat at the top of every results page, so they are skipped unless you ask for them, and an ad is never returned twice in a run.

📋 What data you get from each Gumtree ad

What you getField
Ad id and linklistingId, url
Title, price as a number and as shown, currencytitle, price, priceText, currency
The card snippet, or the full text with listing pages ondescription, descriptionIsTruncated
Category slug, name and breadcrumbcategorySlug, categoryName, categoryPath
Place: town, postcode parts and coordinateslocation, postcode, postcodeOutward, postcodeArea, latitude, longitude
The seller and the item's conditionsellerType, sellerName, condition
When it was posted, and when it expirespostedAt, postedAtIsApproximate, postedText, expiresAt
The category's own details: mileage, bedrooms, breed, salaryattributes
Photosimages, imageCount
Paid placement flagisFeatured
Where the row came fromsearchUrl, searchPage, source, pageType, detailError

▶️ How to scrape Gumtree UK ads

  1. Open Gumtree UK Scraper and click Try for free.
  2. Fill in Search terms and Location, or paste addresses into Gumtree search URLs.
  3. Pick a Category if you want a price band or Posted by to narrow the search itself.
  4. Set Maximum listings, and turn on Open each listing page if you need dates and the full text.
  5. Click Start, then download the dataset as JSON, CSV or Excel.

The form arrives with sofa, london and 100 already filled in, so a run started without editing it is a real search. With nothing usable to search, the run writes one free sample row and stops.

💰 How much does it cost to scrape Gumtree UK ads?

$1.60 per 1,000 listings on the Free plan. Paid plans pay a little less: $1.58 on Starter, $1.56 on Scale and $1.54 on Business. On the free plan, the $5 Apify gives you each month covers about 3,100 listings.

Not charged: the sample row, diagnostic rows, the Featured cards that are skipped, rows outside the price band you asked for, and repeats. Opening listing pages adds time, not charge. maxItems is the most listings a run can charge for.

📥 What you give it

{
"query": "ford focus",
"location": ["leeds"],
"category": ["cars"],
"maxItems": 200,
"distanceMiles": 30,
"sort": "date",
"sellerType": "private",
"fetchDetails": true
}

Or paste URLs and skip the form: {"searchUrls": ["https://www.gumtree.com/cars-vans-motorbikes/cars/uk/leeds"]}. Both the /search?... form and the browse path work.

FieldDefaultWhat it is
querynoneKeywords such as ford focus or 2 bed flat. Empty takes everything in the category.
locationthe whole UKTowns, cities, counties or postcodes: london, leeds, west-midlands, OL8 3TS. Several run the same search in several places.
categoryallA section (cars-vans-motorbikes, for-sale, flats-houses, pets, jobs, community, business-services), a leaf slug (cars, property-to-rent, dogs, phones) or a plain label like Cars or Flats to rent. 115 leaf categories are recognised.
searchUrlsnoneGumtree search or browse URLs. Filters in the URL are kept, and anything set in the form overrides them.
maxItems1001 to 50,000 listings across every search.
fetchDetailsfalseOpen each listing page for the full record. One extra page load per listing.
sortrelevancerelevance, date, price-low or price-high.
distanceMilesGumtree's default0 to 500 miles around the location. Gumtree's own radius is small, so widening it is usually the quickest way to more results.
minPrice, maxPricenoneA price band in pounds.
sellerTypeanyany, private or trade.
includeFeaturedfalseKeep the paid "Featured" cards, if you are tracking paid placements.
proxyConfigurationnoneOptional. Only for sending the requests through servers of your own, which are used exactly as given.

📤 What you get back

A real row from a run on 30 September 2026, in the default mode, with the description cut short:

{
"listingId": "1515177455",
"title": "Marks & Spencer Cream Two-Seater Sofa",
"price": 0,
"priceText": "FREE",
"currency": "GBP",
"description": "Marks & Spencer two-seater sofa in cream fabric. 193cm long x 100cm deep\nStill functional and comfortable, good for a project or spare room. \nRear cor...",
"descriptionIsTruncated": true,
"categorySlug": "sofas-couches",
"categoryName": null,
"categoryPath": null,
"location": "Banstead, Surrey",
"postcode": null,
"postcodeArea": null,
"postcodeOutward": null,
"latitude": null,
"longitude": null,
"sellerType": null,
"sellerName": null,
"condition": null,
"postedAt": null,
"postedText": null,
"attributes": {},
"images": ["https://img.gumtree.com/ePR8PyKf84wPHx7_RYmEag/4c196a6991b94dbfb3_991a3c916820/86"],
"imageCount": 10,
"isFeatured": false,
"url": "https://www.gumtree.com/p/sofas-couches/marks-spencer-cream-two-seater-sofa/1515177455",
"searchUrl": "https://www.gumtree.com/search?search_location=london&q=sofa&distance=30",
"searchPage": 1,
"scrapedAt": "2026-09-30T02:27:39.016Z",
"source": "search"
}
FieldHow to read it
price, priceTextprice is a number in pounds: 0 for a free item, null for jobs and "please contact" ads. priceText is as shown, such as £600pm or FREE.
description, descriptionIsTruncatedThe card snippet in search mode, the full text with fetchDetails. true means you have the snippet.
categoryName, categoryPathGumtree's breadcrumb, which only comes from the listing page.
postcode, latitude, longitudeCoordinates come on property ads, and a postcode appears where the ad or the agent gives one.
sellerTypeprivate, trade, agency or landlord. On motors it comes from the card, elsewhere from the listing page.
postedAt, postedAtIsApproximateListing page only. Where Gumtree shows an age such as "72 days ago", postedAt is worked out from it and postedAtIsApproximate is true.
images, imageCountOne thumbnail in search mode, the full set with fetchDetails. imageCount is the photo count either way.
source, pageType, detailErrorsearch or search+listing, which kind of listing page it was, and why a page could not be opened. That row keeps its search-result fields.

🧾 Reading the output

RowHow to spot itBilled
A listingNo _sample and no _diagnostic fieldyes
The sample row_sample: true and charged: false, only when there was nothing usable to searchno
A diagnostic_diagnostic: true, ok: false, charged: false and an errorCodeno

Real listings carry neither ok nor charged, while the sample row carries ok: true, so filtering on ok does not work. Drop rows with _sample or _diagnostic and what is left is the listings you paid for.

errorCodeWhat it means
NO_RESULTSGumtree has no ads for that search. It answers an unknown town with zero ads rather than an error, so check the spelling.
NO_NEW_RESULTSThe search only turned up ads an earlier search in the same run had already returned.
END_OF_RESULTSFewer listings than maxItems came back because Gumtree had no more new ads, or a search reached page 100. listingsDelivered and searches say how many each search found.
BAD_INPUTA category that is not recognised, or a URL that is not a Gumtree one.
REQUEST_FAILEDA results page did not get through. The row names the search and the page, that search stops there, and the others carry on.
NOT_SERVEDThis listing was not served this run. Re-run it later. Until 12 October 2026 this code was called BLOCKED or BOT_CHECK.
TIME_LIMITThe run reached its time limit before it finished. The listings before it are delivered and charged, and listingsDelivered says how many. Give the run more time to get the rest. The run ends as failed only when the time limit stopped it before any listing came back.

💡 What people use it for

  • Watching a category for new ads: sort set to date, a small maxItems, a schedule, and listingId to skip what you already have.
  • Checking what the thing you are about to sell is listed for nearby.
  • Rental listings with postcodes and coordinates, from the property section with fetchDetails on.
  • Seeing which dealers pay for Featured placements, with includeFeatured.

🚧 What it does not do

  • No posted date in search mode. Gumtree does not put one on the cards. Sorting by date still returns ads in date order.
  • Some dates are approximate. Motors ads and many for-sale ads show an age, not a date, and those rows say so.
  • A price band only narrows the search inside a category. On an all-category search Gumtree ignores it, so the out-of-band rows are dropped here, uncharged, and you get fewer rows per page.
  • sellerType only works where Gumtree has both, such as Cars, Vans and Property. An all-category search ignores it.
  • Any sort but relevance narrows what Gumtree serves. "Sofa" in London reported about 8,900 ads by relevance and about 2,700 by date.
  • About 25 new ads a page. Featured cards are skipped and some ads repeat between pages, so 1,000 listings take about 45 page loads. One search stops at page 100: past 2,000, split it by town, category or price band.
  • Postcodes are patchy. Property ads carry coordinates, but a postcode only when the agent filled one in. Other sections give the town and area and nothing more precise.
  • Jobs have no price. Pay turns up in attributes when the advertiser wrote it.
  • No seller phone or email, and nothing behind Gumtree's reveal-number button. To contact a seller, open the listing and use Gumtree's own message button.
  • Gumtree UK only. Not Gumtree Australia or South Africa.
  • It is not an official Gumtree tool. Dami's Studio is independent and is not affiliated with or endorsed by Gumtree, or by any other company named on this page.

🧭 Which classifieds scraper do you need?

If you wantUse
Gumtree UK ads by keyword, category, town or postcodeThis one
Brazilian classified ads from OLXOLX Brazil Scraper
Russian classified ads from AvitoAvito Listings Scraper
Israeli classified ads from Yad2Yad2 Scraper

❓ Questions people ask

Do I need a Gumtree account or an API key?

No. It reads the public pages a signed-out visitor sees.

How do I get the full ad text instead of the snippet?

Turn on fetchDetails. The full text only exists on the listing page.

Why did my Gumtree search come back empty?

Gumtree answers a town it does not know with zero ads rather than an error, so check the spelling of location first, and try a wider distanceMiles.

Why does postedAt carry postedAtIsApproximate: true?

The ad showed an age like "1 day ago", so the timestamp was worked out from the moment of the run. Trust it to the unit Gumtree showed.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/gumtree-uk-scraper. Either way the run happens on your Apify account at the same price.

These are public pages, and contact details are removed rather than collected. If you keep anything that identifies a person, that is your processing to justify under UK GDPR. Apify's write-up on the legality of web scraping is a good start, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the input you used, the run ID and the errorCode on any diagnostic row.