Gumtree UK Scraper — All Categories, Any Keyword
Pricing
from $1.00 / 1,000 results
Gumtree UK Scraper — All Categories, Any Keyword
Scrapes any Gumtree UK category by keyword: cars, phones, property, furniture, jobs. Returns price, location, photos and seller type, plus year, mileage and fuel for vehicles, and battery health and storage parsed from the ad's own text. Optional filters drop damaged items and accessories.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
reventadata
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Unofficial. This Actor is not affiliated with, authorised by, endorsed by, or in any way officially connected to Gumtree. "Gumtree" is a trademark of its respective owner and is used here only to describe what this tool reads. It reads the same public pages a browser does.
Gumtree Scraper searches any category on Gumtree UK - cars, phones, property, furniture, jobs - and returns priced listings with the structured vehicle attributes Gumtree publishes, plus battery health, storage and damage wording parsed out of the seller's own free text.
What does it do?
Gumtree server-renders its search results, so this Actor reads the tiles directly rather than driving a browser. It sends the price, category and location filters Gumtree itself supports, then applies seller-type, battery-health, storage, damage and accessory filters after fetching, which the site does not offer at all.
Why use it?
- Every category, one Actor. Vehicle ads return year, mileage, engine size, fuel type and Private/Trade; phone ads return battery health and storage. Nothing is category-locked.
- Built to stay up. Gumtree blocks an unproxied client after about five pages; we route through Apify's residential proxy and measured it completing 25 of 25 sequential result pages with no block.
- Battery health from free text. UK sellers write it nine different ways —
BH85%, "battery health is 78%", "88% battery", "Battery 83 per cent", even "%90". All of them are parsed into one integer field. - Cases and chargers filtered out. A large minority of results for any phone search are accessories whose titles contain the search term. "Case for iPhone 12" is not an iPhone.
- Paid placements are labelled. Exactly five promoted ads occupy the first five slots
of every page and ignore the sort order - measured on pages 1, 2, 3 and 5.
isFeaturedmarks them, andexcludeFeatureddrops them (off by default, so they are returned). - Multi-variant shop ads are flagged, not mangled. A phone shop advertising
"64gb £70 256gb £80" is one tile with two units. Reporting it as a 64 GB phone at the
tile price would be wrong, so
isMultiVariantis set andstorageOptionsGblists both. - Honest sellers are not punished. "no cracks", "no scratches whatsoever" and similar negations are understood, so advertising the absence of damage does not get an ad dropped.
How to use it
- Put one or more search terms in
searchQueries. There is no default. - Optionally narrow with
category,location, a price range,sellerType,minBatteryHealthorminStorageGb. - Run it. Results land in the dataset.
Input
| Field | Type | Meaning |
|---|---|---|
searchQueries | array | One search per term. Required, no default. |
category | string | Optional Gumtree category slug. Validated before the first request, so an unknown slug fails immediately. |
location | string | Location slug, e.g. uk, london. Defaults to the whole UK. |
minPrice / maxPrice | integer | Optional. Omitted from the request entirely when empty — never defaulted. |
sellerType | string | any | private | trade. Applied after fetching. Only motoring categories publish it, so setting it elsewhere returns zero rows. |
minBatteryHealth | integer | Rejects ads that never state a figure, not just ads below the floor. |
minStorageGb | integer | TB is converted, so 1TB counts as 1024. Rejects ads that never state a capacity. |
excludeDamaged | boolean | Drops ads admitting damage. Default on. |
excludeAccessories | boolean | Drops cases, chargers, screen protectors and spare parts. Default on. |
excludeFeatured | boolean | Drops paid promoted placements. Off by default. |
requireKeywordMatch | boolean | Drop items whose title is missing any word of the query. Default on. |
sortBy | string | relevance | date | price_lowest_first | price_highest_first | distance. |
maxItems | integer | Hard cap on rows pushed. Default 1000. |
maxPages | integer | Pages per term, clamped to the site's ceiling of 50. |
proxyConfiguration | object | Residential by default. Gumtree blocks an unproxied client after about five pages. |
{"searchQueries": ["iphone 13"],"category": "mobile-phones","minBatteryHealth": 85,"minStorageGb": 128,"maxPrice": 400,"maxItems": 200}
Output
{"id": "1801736377","title": "Apple iPhone 13 128GB Unlocked BH92%","description": "Comes with box and charging cable. No scratches.","url": "https://www.gumtree.com/p/apple/apple-iphone-13-128gb/1801736377","imageUrl": "https://img.gumtree.com/…/86","price": 300,"currency": "GBP","location": "Enfield, London","sellerType": null,"isFeatured": false,"photoCount": 4,"year": null,"mileage": null,"engineCc": null,"fuelType": null,"batteryHealth": 92,"storageGb": 128,"storageOptionsGb": [128],"isMultiVariant": false,"matchedKeyword": "iphone 13"}
For motoring searches year, mileage, engineCc, fuelType and sellerType are filled
from Gumtree's own structured attributes and batteryHealth / storageGb are null.
Notes and limits
- 50 pages per search, about 1,500 ads. Gumtree's own ceiling, visible in its page
title (
Page 5/50), regardless of how many ads it says match. Narrow withcategory,locationor a price range to get past it. - A proxy is not optional. Gumtree challenges an unproxied client after about five pages. Measured over 25 sequential pages: no proxy 5, datacenter 22, residential 25.
- Seller identity is never collected. Gumtree's search tiles publish only Private or Trade, never a name, and this Actor does not fetch listing pages to find one.
- Ad descriptions are reproduced exactly as the seller wrote them and are not filtered.
UK sellers frequently put a phone number or a WhatsApp handle in that free text. Handle
the
descriptionfield accordingly. - Battery health and storage are seller claims, parsed from prose, not verified facts.
sellerType,year,mileage,engineCcandfuelTypecome from Gumtree's own structured fields and are more reliable. - A run that returns zero rows fails rather than succeeding empty. If every listing is
filtered out - an over-strict
minBatteryHealth, orsellerTypeon a non-motoring category - the Actor raises instead of writing an empty dataset, so a silent misconfiguration cannot look like "no stock today". - A keyword can end early without failing the run. If Gumtree keeps challenging after three proxy rotations, that keyword stops and the run continues with what it has. The log records how many pages were challenged; check it before treating a small result set as the whole market.
searchOptionsExactMatchis not offered. Gumtree's own UI emits it, but it changes nothing: measured oniphone 13 mini, results were identical with and without it - same 26 tiles, same first listing, same total. No input is exposed for a control that does nothing.- Reads the same public page a browser does. See the disclaimer at the top.