Gumtree South Africa New Listing Alerts by Category Page
Pricing
from $1.00 / 1,000 listing returneds
Gumtree South Africa New Listing Alerts by Category Page
New and price-changed Gumtree South Africa listings from any category page, with a monitoring mode that only returns and bills for ads new since your last run.
Pricing
from $1.00 / 1,000 listing returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Get the newest Gumtree South Africa listings from any category page, and on a schedule only the ads that are new or re-priced since your last run. Give it category page URLs such as Cars & Bakkies or Flats & Houses. Each listing comes back as one row with title, price in rand, suburb, posted time, image and the category's own attributes (year, fuel, transmission and so on). Turn on monitoring and run it hourly or daily: you are charged per listing returned and nothing on a quiet day.
Who uses it: car and bakkie dealers watching for fresh stock, property agents tracking new rentals, resellers hunting a category for underpriced ads, and anyone who wants a new-listing alert for Gumtree South Africa without opening the site.
Price: pay per listing returned, $2 per 1,000 listings at the free tier and $1.50 per 1,000 at the Gold tier, plus a $0.003 start fee per run. A page with no listings, and a monitoring run with nothing new, cost nothing beyond the start fee.
Scope: category pages only. Gumtree's robots.txt closes keyword (q=), sort and location-filter URLs, so this actor cannot run a keyword search; narrow with the price bounds, includeKeywords and excludeKeywords after the page is read instead. Seller names, phone numbers and other contact details are never read or returned.
How to use
- In the Apify Console. Open the actor page and click Start — the
categoryUrlsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~gumtree-za-new-listing-alert/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"categoryUrls":["https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"categoryUrls": ["https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1"]}
One Gumtree South Africa category page per line, for example https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1. Category paths only: Gumtree's robots.txt closes keyword (q=), sort and location-filter URLs, so those are not accepted. Accepted formats: https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1, https://www.gumtree.co.za/s-flats-houses/v1c9073p1.
One run reads up to 5 category URLs and up to 5 pages of each (about 32 listings a page, newest first after any promoted tiles). includeKeywords and excludeKeywords filter on the listing text, minPriceZar and maxPriceZar on the price (ads with no price are kept). With onlyNewSinceLastRun on, an ad id not seen before is returned as changeType: "new" and an ad id seen at a different price as "price-changed" with previousPriceZar. The first monitoring run returns what is on the page and remembers it. Memory lives in a key-value store of this actor named gumtree-za-new-listing-alert-delta, one record per watchlist, ads forgotten after 60 days.
Output
One row per listing, for example:
| query | found | status | searchSummary | listingCount | truncated | monitorStatus | listings | adId | title | priceZar | priceText | priceType | location | categoryId | postedAt | imageUrl | attributes | listingUrl | changeType | previousPriceZar | isNew | firstSeenAt | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1 | true | OK | <all listings (full list)> | <price (zar)> | <location (suburb)> | <previous price (zar)> | <is this listing new or changed?> | 1970-01-01T00:00:00.000Z |
A miss comes back as a row with "found": false and is never charged. priceZar is null for "make an offer" and other priceless ads, never 0; postedAt and attributes are null on promoted gallery tiles that do not carry them.
Pricing
Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed
per item only when data is actually found and returned — see
.actor/pay_per_event.json for exact prices. A miss is never charged.
Example runs
Paste any of these into the Input tab and press Start. All three run with no key, no login and no account beyond Apify.
Newest cars and bakkies, first page. The default shape.
{"categoryUrls": ["https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1"],"maxResults": 30}
Two categories, three pages each, only listings under R150,000.
{"categoryUrls": ["https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1","https://www.gumtree.co.za/s-flats-houses/v1c9073p1"],"maxPages": 3,"maxPriceZar": 150000,"maxResults": 100}
New-listing alert for bakkies with monitoring on. Schedule it; later runs return only new or re-priced ads.
{"categoryUrls": ["https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1"],"includeKeywords": ["hilux", "ranger"],"onlyNewSinceLastRun": true,"deltaName": "bakkies-hilux-ranger"}
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~gumtree-za-new-listing-alert/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"categoryUrls":["https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~gumtree-za-new-listing-alert/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"categoryUrls":["https://www.gumtree.co.za/s-cars-bakkies/v1c9077p1"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~gumtree-za-new-listing-alert/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"categoryUrls":["{{search}}"]}, mapping the row's search into the categoryUrls array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "gumtree south africa scraper" — the agent will find and run this actor.