Gumtree Scraper avatar

Gumtree Scraper

Pricing

from $0.97 / 1,000 product scrapeds

Go to Apify Store
Gumtree Scraper

Gumtree Scraper

Gumtree UK listing dataset from search URLs, category filters, or listing links, including titles, prices, locations, seller information, and optional listing details.

Pricing

from $0.97 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Farhan Ali

Farhan Ali

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Categories

Share

Gumtree Scraper creates a structured dataset of classified listings collected from Gumtree, the UK classifieds marketplace. Each dataset item represents one listing and can include title, price, location, category, images, seller details, and contact fields when Gumtree publishes them. Query the source by pasting Gumtree search, category, or listing URLs, or by keyword search with category, location, seller-type, and condition filters. Control the result limit with maxItems, and retrieve records through the Apify Dataset API or export them as JSON, CSV, Excel, or other supported formats.

Dataset at a glance

PropertyValue
Sourcegumtree.com (UK classifieds marketplace)
Record unitOne Gumtree listing
Input methodsGumtree URLs (startUrls) or keyword search (searchQueries) with category, location, seller-type, and condition filters
Main identifierslistingId, url
DeliveryApify Dataset and API
Export formatsJSON, CSV, Excel, XML, HTML (Apify dataset exports)
Update modelFresh records per Actor run
Pricing$1.00 per 1,000 listings (search cards); $1.50 per 1,000 listings when extractListingDetails is enabled

Coverage and available records

The Actor collects listings from public Gumtree pages using one of two entry points:

  • URL-based: Pass Gumtree search, category, or listing URLs in startUrls. When startUrls is set, searchQueries is ignored and category, location, seller-type, and condition filters are optional.
  • Search-based: Set searchQueries (for example laptop) with category, subcategory, location, sellerType, and condition. category defaults to for-sale and location defaults to uk.

Supported categories: cars-and-vehicles, for-sale, services, property, pets, jobs, community. subcategory is a Gumtree URL slug such as computers-software. condition applies to the for-sale category.

  • Listing-level records always include listingId, url, title, price, location, primaryImageUrl, and sourcePageUrl when the search card publishes them.
  • Detail fields (description, imageUrls, seller profile, phoneNumber) are returned only when extractListingDetails is enabled and Gumtree exposes them.
  • Job fields (employmentType, validThrough) appear on job listings when published.
  • Result cap: maxItems limits listings collected (0 = unlimited, the default).

Known exclusions: login-only content (including many phone numbers); historical snapshots; messages, watchlists, and account-only seller dashboards.

Data dictionary

Field names match dataset JSON properties exactly. Fields marked conditional appear only when extractListingDetails is enabled and Gumtree publishes the value. Empty values are omitted, not fabricated.

FieldTypeNullableDescriptionExample
listingIdstringNoGumtree listing ID; recommended dedup key1801599902
urlstringNoListing page URLhttps://www.gumtree.com/p/laptops/-asus-zenbook-s14-ux5406sa-ultra-7-32gb-1tb/1801599902
titlestringYesListing titleAsus Zenbook s14 UX5406SA - ultra 7 -32gb- 1TB
descriptionstringYesListing text; full body is conditional
pricestringYesAsking price as a string550.00
priceCurrencystringYesCurrency codeGBP
priceStatusstringYesPrice status when published
locationstringYesLocation as shown on the listingSaltcoats, North Ayrshire
areastringYesArea slug or label when published
categorystringYesCategory label as shown on the listingFor Sale
primaryImageUrlstringYesPrimary image URLhttps://img.gumtree.com/ePR8PyKf84wPHx7_RYmEag/79d91e9b2c1d482280_bf437d4f6156/86
imageUrlsstring[]YesImage gallery URLs (conditional)
phoneNumberstringYesSeller phone when exposed (conditional)
phoneLoginRequiredbooleanYestrue when Gumtree requires login to view the phonetrue
sellerNamestringYesSeller display namerobert
contactNamestringYesContact name when published (conditional)
sellerTypestringYesSeller type as shown on the listingStandard
sellerUrlstringYesSeller profile URL (conditional)
sellerRatingCountintegerYesSeller rating count (conditional)
sellerActiveSincestringYesSeller activity tenure (conditional)
datePostedstringYesPosted date (ISO-8601 when coercible)
postedAtstringYesCreated timestamp (ISO-8601)2026-08-16T05:18:31.884000+00:00
updatedAtstringYesLast-updated timestamp (ISO-8601) (conditional)
validThroughstringYesJob listing expiry when published
employmentTypestringYesJob employment type when published
featuredbooleanYesFeatured listing flagtrue
urgentbooleanYesUrgent listing flag
breadcrumbsobject[]YesCategory path {name, url} (conditional)
sourcePageUrlstringYesSearch or category page the listing was found on
FieldTypeNullableDescription
namestringNoBreadcrumb label
urlstringNoBreadcrumb URL

Example dataset record

Real record from the test input below (for-sale / computers-software / uk, private sellers, as-good-as-new, extractListingDetails: true, maxItems: 5). Unpublished fields are omitted.

{
"listingId": "1801599902",
"title": "Asus Zenbook s14 UX5406SA - ultra 7 -32gb- 1TB",
"price": "550.00",
"priceCurrency": "GBP",
"location": "Saltcoats, North Ayrshire",
"url": "https://www.gumtree.com/p/laptops/-asus-zenbook-s14-ux5406sa-ultra-7-32gb-1tb/1801599902",
"primaryImageUrl": "https://img.gumtree.com/ePR8PyKf84wPHx7_RYmEag/79d91e9b2c1d482280_bf437d4f6156/86",
"sellerName": "robert",
"sellerType": "Standard",
"phoneLoginRequired": true,
"category": "For Sale",
"featured": true,
"postedAt": "2026-08-16T05:18:31.884000+00:00"
}

The record above was produced with this input:

{
"category": "for-sale",
"subcategory": "computers-software",
"location": "uk",
"sellerType": "private",
"condition": "as-good-as-new",
"extractListingDetails": true,
"maxConcurrency": 10,
"maxItems": 5,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Query and input reference

InputTypeRequiredDefaultAccepted valuesDescription
startUrlsarray (requestListSources)NoGumtree search, category, or listing URLsURL entry point. When set, searchQueries is ignored and filters are optional
searchQueriesarray (string)NoFree-text keywords (e.g. laptop)Keyword search. Ignored when startUrls is set
categorystringNofor-salecars-and-vehicles, for-sale, services, property, pets, jobs, communityTop-level category when no startUrls
subcategorystringNoGumtree slug (e.g. computers-software)Subcategory slug from Gumtree URLs
locationstringNoukLocation slugSearch location filter
sellerTypestringNoprivate, businessPrivate or business sellers
conditionstringNonew, as-good-as-new, good, fair, poorFor-sale condition filter
extractListingDetailsbooleanNofalsetrue / falseCollect description, images, seller info, and phone when exposed (listing-details event)
maxConcurrencyintegerNo10150Parallel listing-page fetches when details are enabled
maxItemsintegerNo00 or any positive integerMaximum listings; 0 = unlimited
proxyConfigurationobjectNoApify proxy, RESIDENTIALApify or custom proxiesResidential recommended; Gumtree blocks datacenter traffic

Minimal request:

{ "searchQueries": ["laptop"], "category": "for-sale", "location": "uk" }

Advanced request (filters with detail enrichment):

{
"category": "for-sale",
"subcategory": "computers-software",
"location": "uk",
"sellerType": "private",
"condition": "as-good-as-new",
"extractListingDetails": true,
"maxConcurrency": 10,
"maxItems": 5000,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Retrieve the data through the API

The Actor is published at https://apify.com/datascrapers/gumtree-scraper.

  1. Start the Actor with a JSON input (console or API).
  2. Wait for the run to finish, or use a synchronous endpoint if you want the response inline.
  3. Retrieve items from the run's default dataset.
  4. Paginate or export the dataset.

Python example:

from apify_client import ApifyClient
client = ApifyClient("YOUR-APIFY-TOKEN")
run_input = {
"searchQueries": ["laptop"],
"category": "for-sale",
"subcategory": "computers-software",
"location": "uk",
"extractListingDetails": True,
"maxItems": 10,
}
run = client.actor("datascrapers/gumtree-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["listingId"], item["title"], item["price"])

Apify generates Python, JavaScript, and cURL examples on the Actor's API tab. Do not put a real API token in shared code or URLs.

Data quality and record handling

  • Conditional fields: description, galleries, seller profile, and phone appear only when extractListingDetails is enabled and Gumtree publishes them.
  • Source changes: unpublished fields are omitted rather than fabricated.
  • Deduplication: listings are unique by URL within a run. Across runs, use listingId (or url) as the stable key.
  • Phone numbers: many listings set phoneLoginRequired to true and omit phoneNumber. Login-gated numbers are not collected.
  • Normalization: listingId and price are strings; sellerRatingCount is an integer; featured, urgent, and phoneLoginRequired are booleans; timestamps are ISO-8601 when coercible.
  • Residential proxies: Gumtree blocks datacenter traffic. Use the default residential proxyConfiguration.

Export and pipeline examples

DestinationRecommended methodTypical use
PostgreSQL / SupabaseDataset API poll or webhook consumerStore listings alongside price-monitoring tables
Google SheetsApify Google Sheets integrationShare listing shortlists with research teams
CRM (HubSpot, Salesforce)Webhook on run completionPush new listings into outreach pipelines
S3 / cloud storageScheduled export via Apify scheduler + integrationArchival of marketplace snapshots

Pricing and cost examples

Pay-per-event: each listing is billed as dataset-item when extractListingDetails is off, or listing-details when it is on. A one-time Actor start charge of $0.00005 applies per run.

EventTriggerRate (per 1,000 listings)
Actor startOnce per run$0.00005 per run
Listing result (dataset-item)Listing pushed with extractListingDetails off$1.00
Listing details (listing-details)Listing pushed with extractListingDetails on$1.50
RecordsConfigurationEstimated base cost
1,000Search cards only$1.00
10,000Search cards only$10.00
1,000Listing details enabled$1.50
10,000Listing details enabled$15.00

Apify paid plans reduce the per-1,000 rate (for example $0.97 per 1,000 listings and $1.20 per 1,000 detail pages at Gold). Bronze and Silver apply smaller discounts. Estimates depend on the verified pricing model and selected options.

Limitations and responsible data use

  • The Actor collects publicly accessible Gumtree page data only.
  • Field availability depends on what Gumtree renders at run time; values can be missing.
  • Phone numbers are often unavailable without a Gumtree login; phoneLoginRequired reports that state.
  • The Actor does not provide historical snapshots unless you store them yourself.
  • Large runs require residential proxies; datacenter traffic is blocked.
  • You are responsible for compliance with Gumtree's terms of service, applicable privacy law, and any contractual obligations before using the data.

Dataset questions

What does one dataset item represent?

One Gumtree listing. extractListingDetails adds description, images, seller information, and phone fields to that same record when Gumtree exposes them.

Which field should I use as a unique identifier?

listingId is the recommended deduplication key. Use url when listingId is missing.

Are fields nullable or conditional?

Yes. Detail fields exist only when extractListingDetails is enabled. Unpublished fields are omitted. employmentType and validThrough appear on job listings when published.

Can I retrieve the records as CSV or JSON?

Yes. Export JSON, CSV, Excel, XML, or HTML from the Apify Console, or query the Dataset API.

Does the Actor return historical data?

No. Each run captures listings at run time. Schedule repeated runs and store outputs to track changes.

What counts as a billable result?

One event per listing: $1.00 per 1,000 search-card records, or $1.50 per 1,000 when extractListingDetails is enabled. Those events are alternatives, not added together. Actor start is $0.00005 once per run.

Data Scrapers support

Need an additional field, record type, or export workflow? Contact Data Scrapers at stardustspotlight@gmail.com. Include a sample source URL, required fields, expected record volume, and preferred delivery format.