Gumtree Listings Scraper
Pricing
from $0.03 / 1,000 listing extracteds
Gumtree Listings Scraper
Scrape public Gumtree UK listings by keyword, location, category, or URL. Export prices, locations, images, descriptions, and listing links.
Pricing
from $0.03 / 1,000 listing extracteds
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
Extract public Gumtree UK listings by keyword, location, category or URL, then download titles, displayed prices, locations, images and listing links as JSON, CSV or Excel. Use this Gumtree listings scraper for resale sourcing and local price research. Fuller descriptions and seller names depend on what each public listing exposes.
Quick start
- Open the input form and clear the example Start URLs to search by keyword.
- Enter a keyword and location, or paste your own public Gumtree UK URLs.
- Start with a small listing limit, run the Actor, then open the dataset to download results.
{"query": "sofa","location": "London","startUrls": [],"maxItems": 20,"includeDetails": false}
Prefer a video guide? This short Apify walkthrough shows you how to set up and run an Actor. It uses a different Actor, but the setup steps are the same.
What you get
One saved public Gumtree UK listing row with its title, displayed price text, location, listing identity, source link and collection time. Available image links, date text and search-card snippets can accompany it. Optional detail lookups can add full descriptions and exposed seller names, without filling missing values with guesses.
Who is it for?
- Resale buyers assembling public listing links and asking-price references before contacting sellers separately.
- Local-market researchers comparing their own snapshots of selected UK searches.
- Merchandise analysts reviewing publicly exposed descriptions and image links.
- Data teams retaining listing identities and source context for downstream spreadsheets or integrations.
How you can use the data
- Build a London sofa review sheet. Use the existing sofa query with London, empty start URLs, a small total cap and details off. Keep
title,price,location,listingUrlandlistingIdtogether. Prices remain displayed text, including FREE, rather than normalized numeric valuations. - Review a Manchester phone sample. Use the existing iphone/Manchester recipe and clear example URLs. A non-empty URL list takes priority over keyword, location and category settings, so leaving an example there can request a different source than intended.
- Inspect descriptions only when needed. Enable optional search-result details for visible full text, seller names and additional images. A failed detail lookup can still leave a useful card row, while missing seller information does not imply that the seller has none.
- Compare your own location exports. Keep listing ID, URL, source URL and collection time when joining files from separate searches or runs. Dates are visible text rather than normalized timestamps, and apparent missing rows do not establish a sale, deletion or privacy change. No built-in price alert or sold-item history is provided.
Input settings
Phones in Manchester: use {"query":"iphone","location":"Manchester","startUrls":[],"maxItems":20}.
An existing filtered search: paste a public Gumtree search or category URL into startUrls. Non-empty URLs take priority over the keyword, location and category fields.
A direct listing path: the supported direct-lookup shape is /p/<category>/<numeric-id>, with no title segment. It loads available details even with includeDetails off. Standard listing URLs containing an additional title segment are not recognized as direct lookups. Use a search URL instead.
More input
| Setting | API key | Meaning |
|---|---|---|
| Search keyword | query | Optional keyword when URLs are empty. No API keyword default. |
| Location | location | Search location. Defaults to London. |
| Search category | category | Gumtree category slug. Defaults to all. |
| Start URLs | startUrls | Public Gumtree UK search/category URLs or the direct-listing path above. Overrides search fields. |
| Maximum listings | maxItems | Total saved-row limit, 1–10,000. API default 50, form example 20. |
| Include listing details | includeDetails | Enrich search results with available details. Default false. |
| Proxy configuration | proxyConfiguration | Existing proxy settings. Apify Proxy enabled by default. See field help for choices. |
No field is globally required. With no URLs or keyword, the Actor searches all categories in London. Supplied text fields must be non-empty and categories must be slugs. A maximum is a cap, not a promise of that many listings.
Example inputs
Use the Quick start input as a small first run. Adjust the fields described above for your own data.
Output data
Illustrative shape only, not a measured listing or live price:
{"title": "Example sofa listing","price": "£150","currency": "GBP","location": "London","category": "sofas couches","listingUrl": "https://www.gumtree.com/p/sofas-couches/1234567890","imageUrls": [],"descriptionSnippet": null,"sellerName": null,"postedAt": null,"listingId": "1234567890","scrapedAt": "2026-10-25T00:00:00.000Z","sourceUrl": "https://www.gumtree.com/search?search_category=all&q=sofa&search_location=London"}
| Field | Meaning |
|---|---|
title | Listing title. |
price, currency | Displayed price text, including FREE. Detected currency, usually GBP. Not normalized numeric prices. |
location, category | Displayed location and category inferred from the URL or available details. |
listingUrl, listingId | Public listing link and identifier. |
imageUrls | Available image links. May be an empty array. |
descriptionSnippet | Short search-card description, or null. |
sellerName | Name only when exposed in listing details. Otherwise null. |
postedAt | Visible listing-card date text, or null. Not a normalized timestamp. |
fullDescription | Available full text on detail lookups. Absent from card-only results or null when unavailable. |
scrapedAt, sourceUrl | Collection timestamp and originating input/result-page URL. |
Missing optional values are not filled with guesses. If a search-result detail lookup fails, the listing-card record can still be saved. A run summary in the key-value store reports saved rows, page failures and completion/deadline status. It is not a dataset row.
Download your results
Open your run's dataset, choose Export and select JSON, CSV or Excel. JSON keeps nested fields together. CSV and Excel are useful when you want to review the records in a spreadsheet.
See Apify's download and export guide for the available formats and field options.
Pricing
The start event is charged once when extraction begins. The item event is charged for each listing saved to the default dataset, including card-only records retained when optional details are unavailable.
See the Pricing tab for current rates and plan discounts.
Tips for best results
- Clear example URLs when searching by keyword. Non-empty URLs override keyword, location and category fields.
- Use a small cap with details off for an initial card review. Enable details when their additional public fields are needed.
- Use supported search URLs for ordinary titled listing links. The separate direct-lookup shape has no title segment and is described in Input settings.
- Keep original price and date text. These are source labels rather than normalized prices or dates.
- Check summary page failures and deadline status before comparing snapshots. Saved rows do not establish complete coverage.
Limits and caveats
Only public Gumtree UK pages are supported, with no login-only information, other country domains, private seller data or seller phone numbers. The Actor returns accessible listing snapshots rather than historical or sold-item lookups, built-in price-drop alerts or a separate sort feature. Results follow the source's returned order.
Gumtree may restrict requests or change pages. Explicit no-result searches can finish with an empty dataset, while every source page failing causes run failure. Some sources or optional detail lookups can fail while useful rows from others remain. Missing fields or rows do not prove that a listing was deleted or made private.
Work has a time limit and a per-source page bound, so large requests can stop early. Consult the key-value-store run summary for saved rows, page failures and completion/deadline status rather than assuming a full export.
Supported direct lookups use the exact path shape described in Input settings and request details even when optional search enrichment is off. Standard titled listing URLs are not recognized in that mode. Missing optional fields remain null or empty, and details depend on what the public page exposes.
Automation and integrations
Save your settings for next time
Once you have an input that works for you, save it as an Apify task. This keeps your settings together so you can use them again without filling in the form from scratch.
Run on a schedule
Need fresh results regularly? You can schedule the Actor or a saved task to run at a time that suits you.
Each scheduled run collects the data again. If you want to compare results or highlight changes, add that step in your own workflow.
Send results to your other tools
Use n8n, Make or Zapier to connect this scraper to the rest of your workflow. For example, you could pass its results to an AI assistant or add records to a spreadsheet. Follow the Apify integration guides for your chosen tool.
For a custom connection, an Apify webhook can notify your app when a run finishes or fails. Your app can then fetch the results or handle the failure.
API usage
Want to collect this data from your own app or automation? The examples below send input to the scraper and show how to collect its results.
The Node.js and Python examples wait for the run to finish before reading its results. The cURL example starts the run and returns its details. Wait for that run to finish, then use its defaultDatasetId to fetch the results.
For setup instructions, see Apify's JavaScript client guide, Python client guide and Actor runs API reference.
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~gumtree-listings-scraper/runs' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data @- <<'JSON'{"query": "sofa","location": "London","startUrls": [],"maxItems": 20,"includeDetails": false}JSON
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/gumtree-listings-scraper').call({"query": "sofa","location": "London","startUrls": [],"maxItems": 20,"includeDetails": false});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/gumtree-listings-scraper').call(run_input={'query': 'sofa', 'location': 'London', 'startUrls': [], 'maxItems': 20, 'includeDetails': False})print(client.dataset(run['defaultDatasetId']).list_items().items)
MCP and AI agents
You can ask your AI assistant to collect data with Gumtree Listings Scraper and help you work with the results. The scraper returns the data, and your assistant can then summarize it, compare records or prepare notes.
Connect your assistant through the Apify MCP server. MCP gives your assistant a way to find this scraper, run it and read the results. Follow the official setup and sign-in guide for your app.
Easier setup with an Apify plugin
If you use a supported coding assistant, the official Apify plugin can set up the connection for you. It connects your assistant to Apify and includes instructions for common tasks. Follow the guide for your particular app.
Use Apify AI in Console
Prefer to keep everything in Apify? Open Apify AI in Console and ask it to find Fetch Cat's Gumtree Listings Scraper. You can describe the data you want and ask questions about the results.
Apify AI is currently in beta. It asks for confirmation before starting an Actor, and normal run charges apply.
Choose your assistant
- Claude and Claude Code (Anthropic): Apify setup guide.
- ChatGPT and Codex (OpenAI): Apify setup guides.
- Grok Bot (xAI): Apify plugin guide.
- Gemini CLI (Google): MCP server setup guide. Use the server URL below with the HTTP configuration supported by Gemini CLI.
Connect just this scraper
To keep your setup focused on this scraper, add this server configuration to a compatible MCP client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=fetch_cat/gumtree-listings-scraper"}}}
Sign in to Apify when your client asks. If your client uses a Bearer token instead, follow its setup guide and keep the token in its secure configuration. Configuration formats vary by app, so use the linked guide if your client needs a different format.
Use Apify's general server
Already connected to the general Apify MCP server at https://mcp.apify.com? You can use it to find this scraper without adding another server. Ask your assistant to use Gumtree Listings Scraper by Fetch Cat, or give it the identifier fetch_cat/gumtree-listings-scraper.
Your assistant can check the available settings and retrieve the results from the returned run. If the run is still working, it should follow that run rather than start it again. Both connection options use Apify's hosted service.
Example requests
- “Use Fetch Cat’s Gumtree Listings Scraper to collect up to 5 sofa listings in London, with start URLs empty and optional details off. Show displayed price text, listing links and available images without estimating resale values.”
- “Collect up to 5 iphone listings in Manchester with start URLs empty and details enabled. Keep publicly available descriptions and seller names, marking absent information without seeking phone numbers.”
- “Retrieve up to 5 sofa listing cards in London with start URLs empty and details off. Keep listing IDs, source URLs and collection times for my own later comparison, and report page failures or early stopping without claiming sold-item history.”
Normal Apify charges apply. Check the live Pricing tab before asking your assistant to run a larger batch.
Pay with x402
If your AI agent has a funded wallet, it can pay for Apify usage through x402. This experimental option lets an agent use Apify without a conventional account.
Apify AGI provides a prepaid API token with a spending cap after payment. Your agent can use that token to run this scraper through the Apify API or an authenticated MCP connection.
Some MCP setups also support paying for each request directly. That is a different payment option, so check the official guide for its availability.
Follow the official guide for wallet setup, supported payment options and current terms. Apify handles the payments. Keep wallet keys and payment tokens in your agent's secure configuration.
Other ways for agents to pay
Apify also supports MPP for prepaid access through AGI and Skyfire for eligible Actors. If your agent already uses one of these, see the agentic payment guide to choose the right setup.
FAQ
Is this a Gumtree API alternative?
It provides structured exports from public Gumtree UK pages through Apify's API. It is not an official Gumtree API and does not access account-only data.
Can I download Gumtree listings as CSV or Excel?
Yes. Open the run's dataset and choose an export format, or retrieve JSON through the dataset API.
Why are seller names or descriptions empty?
Card-only results have limited information. Enable includeDetails for search results, but full descriptions and seller names still depend on public availability. It does not extract seller phone numbers.
Does it find sold or previous listings?
No historical or sold-listing lookup is provided. It reads the currently accessible pages you request.
Related Actors
- Craigslist Classifieds Scraper — Collect public classified listings and available prices for local-market comparisons.
- Vinted Search Scraper — second-hand marketplace searches.
- Poshmark Sold Listings Scraper — resale marketplace research.
- AliExpress Products Scraper — product sourcing comparisons.
- eBay Marketplace Scraper — marketplace product research.
Support and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue with the run URL, a non-sensitive input example and what you expected.
Need help sharing it? See Apify’s guide to sharing a run when reporting an issue. Sharing a run can give the developer access to its input, logs and results, so use a run that contains no sensitive data. Please leave out API tokens, passwords, cookies, private documents and personal data. Use a public sample URL or a redacted example instead.
Tried this scraper? We'd love to hear how it worked for you. Leave a review to help others choose the right tool and help us improve it. Your feedback means a lot to us.
Made with care for curious people, AI agents and the possibilities in data. ♥