Gumtree Scraper — UK Listings, Prices & New Ads Alerts avatar

Gumtree Scraper — UK Listings, Prices & New Ads Alerts

Pricing

from $0.80 / 1,000 listings

Go to Apify Store
Gumtree Scraper — UK Listings, Prices & New Ads Alerts

Gumtree Scraper — UK Listings, Prices & New Ads Alerts

Gumtree UK listings for any search: title, price, town, date, seller type, photo and a description snippet. Run it again or on a schedule to get only the new listings and the price drops since the last run. Keywords or gumtree.com URLs. No login.

Pricing

from $0.80 / 1,000 listings

Rating

0.0

(0)

Developer

Northbell

Northbell

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

Give it keywords or Gumtree search links and get one clean row per listing: title, price, town, date, seller type (private or business), condition, photo and a description snippet. $1.00 per 1,000 listings, no login, no API key. Gumtree shows at most 50 pages of about 25 to 30 listings for any search, so one search returns roughly 1,250 to 1,500 listings at most.

Run it again — or put it on a schedule — and every row also tells you what changed since the last run: isNew, previousPrice and priceChange (a negative number is a price drop). Switch on Only new listings and price changes and the run returns just those, so you pay only for the rows you act on.

Fixed 22 Oct 2026: when the previous run stopped before the end of the results (at Max listings, at your charge limit or on a page error), listings it had simply not reached counted as new, so with Only new listings and price changes a second run could return older listings as new and charge for them. After such a run, new now means posted after the newest listing it saw (with two hours' slack for listings that appear late); after a run that read the whole list, every listing it did not see is still new.

What you get

FieldWhat it is
type, observedAtthe row type (listing) and when it was read
search, positionthe search line that found it, and its place in that search's results
adId, url, titlethe listing
price, priceText, currency, pricePeriodprice in pounds as a number (889), as Gumtree writes it (£889.00), and GBP; pricePeriod is month or week for rents written £725.00pm or £225.00pw, otherwise null; price is null when the ad shows no price (job ads show their salary under attributes, and most services and community ads have no price); a price of 0 is what Gumtree shows as £0.00, which is a real "free" on free items but a placeholder on a few ads such as a rental
location, distanceMilesthe town and area as Gumtree shows it (Patchway, Bristol); miles from the place you searched (only filled when you set a location)
postedAt, postedTextthe listing date Gumtree reports (ISO time) and its own wording (5 hours ago)
category, sellerType, conditionGumtree's category name, the seller type as Gumtree shows it (Private, Business, Trade or Agency), and the condition the seller chose (when the category has one)
imageUrl, imageCountthe first photo and how many photos the ad has
descriptionSnippet, attributesthe first lines of the description, and the details Gumtree lists for the category (model, storage and colour for phones; make, year, mileage and fuel for cars)
isPromoted, isUrgent, shippingAvailablepaid promotion, the urgent badge, and whether the seller offers delivery
isNew, firstSeenAt, timesSeenwhether this search has shown the listing before (null on the first run), when this Actor first saw it, and in how many runs
previousPrice, priceChange, priceChangePercentthe price at the previous run and the difference (negative = cheaper); priceChange is 0 when nothing changed, null on the first run

Every run also adds one free summary row (type: "summary"): per search, how many listings Gumtree reports in total, how many pages were read, how many are new and how many changed price. Rows have type: listing, summary or error.

Run it again and again

  • On a schedule — save your input as a task and add a Schedule: the same searches every hour or every morning. Send each run to Google Sheets, Slack or email with an integration on the task.
  • Watch for changes — Turn on Only new listings and price changes.
  • In bulk — Put every search in Searches in one run.

Use it for

  • Deal hunting — "iPhone 15 under £400 in and around Manchester", every few hours, only the new ones
  • Reselling — catch listings soon after they appear (newest first) and spot sellers who drop their price
  • Price research — export a model's asking prices by town to Sheets and watch them move week by week

Input

{
"searches": ["iphone 15", "https://www.gumtree.com/search?search_category=all&q=mountain+bike&sort=date"],
"location": "manchester",
"distance": "15",
"maxPrice": 400,
"maxListingsPerSearch": 100,
"onlyNew": true
}

Each line in Searches is a keyword or a link copied from gumtree.com (a search or a category page). A link keeps its own filters and sort order; location, distance, price, category and sorting apply to keywords. For filters this Actor does not have (seller type, condition, model, colour), set them on gumtree.com and paste the link.

What the Actor remembers is kept per search (keyword plus filters) in a named key-value store in your Apify account, so the second run of the same search already shows what is new. Schedule it (Apify → Schedules) to run every few hours or once a day.

Pricing

$1.00 per 1,000 listings, plus $0.01 per run. Error rows and the summary row are free. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing. With Only new listings and price changes on, you pay only for the rows returned.

Notes

  • Gumtree limits how many pages one connection may read: about 5 per 18 minutes. In our tests the sixth page read from one connection was always answered with Gumtree's verification page instead of results, whatever the pause between reads (1 to 30 seconds), and reads were accepted again within about 20 minutes. The Actor never tries to get past that check. It reads up to 5 pages (about 100 to 150 listings) straight away, which takes well under a minute, and for anything beyond that it waits until the oldest read is 18 minutes old. So Max listings per search up to about 100 is fast, while 1,000 listings (about 40 page reads, 5 per 18 minutes) would take about two hours — set the run timeout to match, or schedule smaller runs with Only new listings. The run log tells you the expected time when more than 5 page reads are needed. If the next wait would run past the run's timeout, the Actor stops reading before that, saves what it has read and adds an error row, instead of being cut off with rows unsaved.
  • If Gumtree refuses a read anyway (another user on the same connection may have used the allowance), the Actor returns the listings it already has, adds an error row, and skips the rest of the searches instead of pressing on. Run it again after about 20 minutes.
  • Gumtree applies a price limit only inside the category it narrows a keyword to (for "iphone 15" the Apple iPhone category), so with a price set the Actor reads the first page a second time there. In some categories Gumtree does not apply the limit at all (in our tests Property in Manchester: with a limit of £700, most of the 25 rentals returned were still above it and the total did not change). The Actor then drops the listings outside your range itself, after reading them; they count towards Max listings per search, so you get fewer rows than the maximum, and the summary row and the run log say so. Raise Max listings per search to read further down the list. Rents are compared as written (a weekly £225 is compared with your limit as £225). Promoted ads ignore price limits on Gumtree; the Actor drops the ones outside your range. Listings without a price are kept.
  • Location takes the names Gumtree uses in its web addresses (london, manchester, glasgow, leeds, edinburgh). A name Gumtree does not know makes Gumtree answer with UK-wide results; the Actor recognises that and returns an error row instead. Extra distance widens the area, so more listings appear, some from outside the named town; it is not a strict radius (in our test, Leeds with 5 extra miles still returned listings up to 31 miles from the centre), so use distanceMiles if you need a hard cut-off.
  • distanceMiles is Gumtree's distance from the place you searched, so it is only filled when you set a location (or a link that has one). Without a location the distance Gumtree gives is not tied to your search, so the Actor leaves it empty. imageUrl is null for ads without a photo. isUrgent and shippingAvailable are true only on the ads that have those badges, pricePeriod is filled only for rents, and condition only in categories that ask for it (not for cars or jobs).
  • isNew compares with what the previous run of the same search read, so it is null on the first run, and a listing that was beyond Max listings per search last time can show up as new later. Sort by Newest first for alerts. Promoted ads change from one request to the next, so a promoted ad can appear as new although it was posted days ago; with Only new listings and price changes on, the Actor leaves out promoted ads that were posted before your previous run, and Include promoted ads off drops promoted ads altogether. Listings the Actor has not seen for 60 days are forgotten.
  • postedAt is the date Gumtree lists the ad with, which is not always the day the ad was first created. Some ads are "wanted" ads from buyers (for example "cash for phones"); their price is not an asking price you can buy at, so filter them out by title if you do price research.
  • Public data only: what anyone sees on gumtree.com without signing in. Seller names, seller ids, phone numbers, email addresses, postcodes, map positions, vehicle registration numbers and recruiter names that Gumtree stores in its own fields are not returned. Email addresses, phone numbers in the usual UK and international formats (07700 900123, 7700 900123, +44 7700 900123) and full UK postcodes written in capitals (LE19 4NY) that a seller typed into a title, a description or a detail value are removed as well (the first half of a postcode, such as LE19, stays). Anything else a seller wrote, such as a street address or a first name, is shown as written, so treat the text fields as the seller's own words.

Looking for German or Dutch classifieds? See Kleinanzeigen Scraper and Marktplaats Scraper.

For AI agents

{"searches": ["iphone 15"], "maxListingsPerSearch": 5} returns up to 5 listing rows and one summary row. Rows have type: listing, summary or error. Only listing rows are charged. More than about 5 page reads per 18 minutes from one connection are slow by design (see Notes), so keep maxListingsPerSearch at 100 or less and use onlyNew for repeated runs.

**Something broke or looks wrong?** Open an issue on this Actor's Issues tab and I'll look at it. **Found it useful?** A short review on the Store page helps other people find it.