Wallapop Scraper - New Listings & Price Drop Monitor avatar

Wallapop Scraper - New Listings & Price Drop Monitor

Pricing

from $0.27 / 1,000 listing returneds

Go to Apify Store
Wallapop Scraper - New Listings & Price Drop Monitor

Wallapop Scraper - New Listings & Price Drop Monitor

Schedule it hourly or daily and get only new Wallapop listings, price drops and removed ads for your keywords, city and radius. Price with currency, category, city, postcode, dates, photos, shipping and seller ID. JSON, CSV or Excel.

Pricing

from $0.27 / 1,000 listing returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Schedule it hourly or daily → get only new Wallapop listings & price drops. Set your keywords, city and radius once, turn on Monitor mode, and every scheduled run returns just what changed since the previous run: new listings, price drops and rises (with the previous price) and listings that disappeared from the search (sold, reserved, deleted or no longer matching). Each row says what happened in changeType: new, price_drop, price_up, removed or unchanged.

Built for resellers, bargain hunters, car and bike flippers, and n8n / Make / Zapier flows or Telegram and Discord bots that should alert on fresh Wallapop deals without paying for the same listings again.

  • Search the way you search on Wallapop. Keywords (several at once), a Spanish city or coordinates plus a radius in km, price range, category, condition (new, as good as new, good, fair, has given it all), only shippable, posted today, and sort order (newest, cheapest, most expensive, closest). Or paste a Wallapop search address from your browser and its filters are used as they are.
  • Every listing field you need in one row. ID and link, title, description, price with currency, condition, category and subcategory, city, postcode, region, coordinates, listed and updated dates, reserved, shippable, refurbished, warranty and top-seller flags, bumped flag, main photo and all photos, and the seller ID.
  • Only genuinely new listings. Older ads that merely come into view when another one goes away are not reported as new, and ads bumped back to the top are not repeated.
  • Price drops with the numbers. previousPrice, priceChange and priceChangePercent on every price change.
  • Cheap scheduled runs. A run with nothing new returns one free row per search that says so and pays only the run start fee.
  • Each listing once. The same listing found by two of your searches is returned once per run.

What you get

One row per listing. Example (a real row from a Monitor mode run on 2026-10-28, iphone 13 near Madrid; the first run, so isFirstCheck is true):

{
"status": "ok",
"changeType": "new",
"isFirstCheck": true,
"id": "xzog5odyrlj9",
"url": "https://wallapop.com/item/pantalla-iphone-13-pro-soft-oled-dd-1317965281",
"title": "Pantalla iPhone 13 Pro Soft OLED DD",
"description": "📱Pantalla para iPhone 13 Pro marca DD - Soft Oled, calidad como la original ✅ - Compatibilidad para transferir IC - Tasa de refresco 120Hz - Envíos 24/48h 📦 Cualquier duda no dudéis en preguntar! Ref: PAN-13P-DD",
"price": 70,
"currency": "EUR",
"condition": null,
"categoryId": 24200,
"category": "Tecnología y electrónica",
"subcategory": "Piezas de recambio",
"city": "Madrid",
"postalCode": "28042",
"region": "Madrid",
"countryCode": "ES",
"latitude": 40.409498018050265,
"longitude": -3.708078468504492,
"createdAt": "2026-10-28T01:53:59.517Z",
"updatedAt": "2026-10-28T01:54:14.764Z",
"isReserved": false,
"isShippable": true,
"isRefurbished": false,
"hasWarranty": false,
"isTopSeller": false,
"isBumped": false,
"imageUrl": "https://cdn.wallapop.com/images/10420/ls/ok/__/c10420p1317965281/i6825065959.jpg?pictureSize=W800",
"photos": [
"https://cdn.wallapop.com/images/10420/ls/ok/__/c10420p1317965281/i6825065959.jpg?pictureSize=W800",
"https://cdn.wallapop.com/images/10420/ls/ok/__/c10420p1317965281/i6825065965.jpg?pictureSize=W800"
],
"sellerId": "qjwyv523egzo",
"previousPrice": null,
"previousCurrency": null,
"priceChange": null,
"priceChangePercent": null,
"searchKeywords": "iphone 13",
"searchDescription": "\"iphone 13\", near Madrid (50 km)",
"searchUrl": null,
"checkedAt": "2026-10-28T06:37:33.258Z",
"note": null
}
FieldWhat it is
statusok for a listing. Free rows (with note saying why): no-new-listings, no-results, incomplete, blocked, unreadable, bad-input, budget-reached.
changeTypeMonitor mode: new, price_drop, price_up, removed or unchanged. null in a normal search.
isFirstChecktrue on the first monitor run, which returns every listing as new to set the baseline.
id, url, title, descriptionWallapop listing ID, link, title and description as the seller wrote them. Phone numbers and e-mail addresses in the text are replaced with [phone removed] / [email removed].
price, currencyAsking price and its currency (EUR in Spain, Italy and Portugal).
previousPrice, previousCurrency, priceChange, priceChangePercentMonitor mode: the price at the previous run and the change.
conditionThe condition you searched for (new, as_good_as_new, good, fair, has_given_it_all). Search with one or more conditions to get it on every row.
categoryId, category, subcategoryWallapop category number and names, in Spanish as Wallapop shows them (Tecnología y electrónica, Bicicletas).
city, postalCode, region, countryCode, latitude, longitudeWhere the item is, as shown on the listing (Wallapop shows an approximate point).
createdAt, updatedAtWhen the listing was published and last edited.
isReserved, isShippable, isRefurbished, hasWarranty, isTopSeller, isBumpedListing flags.
imageUrl, photosMain photo and all photos (large, 800 px wide).
sellerIdWallapop user ID of the seller. No names.
searchKeywords, searchDescription, searchUrlThe search that found it (searchUrl is the address you pasted).
checkedAt, noteTime of the check, and the reason on free rows.

Input

FieldTypeWhat it does
keywordslistWhat you would type into the Wallapop search box, one per line (iphone 13, bicicleta, ps5). Each keyword is its own search. Empty (and no URLs) = example search iphone near Madrid.
locationstringA city (Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Málaga, Bilbao and about 70 more, also Roma, Milano, Lisboa, Porto) or coordinates 40.4168,-3.7038. Empty = all of Spain.
distanceKmintegerRadius around the location, 1 to 500 km. Default 50 km.
minPrice, maxPriceintegerPrice range in euros.
categoryselectOne Wallapop category (Cars, Motorbike, Technology & electronics, Bikes, Fashion & accessories, Home & garden ...).
conditionslistnew, as_good_as_new, good, fair, has_given_it_all. Each condition is searched separately so every row carries it. Keywords × conditions + search URLs: up to 20 searches per run.
sortByselectnewest (default), price_low_to_high, price_high_to_low, closest. Monitor mode always uses newest.
onlyShippable, postedTodaybooleanOnly listings with shipping / published today.
searchUrlslistWallapop search addresses copied from your browser (https://es.wallapop.com/search?keywords=...). Keywords, location, distance, price, category, condition, shipping and order are taken from the address.
maxResultsPerSearchintegerHow many of the newest listings to read per search, 1 to 5,000. Default 100. In Monitor mode these are the listings watched on every run.
onlyNewbooleanMonitor mode. Default off.
includePriceChanges, includeRemovedbooleanMonitor mode: return price changes / listings that disappeared (sold, reserved, deleted or no longer matching). Default on.
includeUnchangedbooleanMonitor mode: also return listings that did not change. Default off.
watchNamestringSeparate memories for different schedules on the same searches.
resetMonitoringStatebooleanForget what earlier runs saw for these searches and start a new baseline.

Monitor mode

  1. The first run returns the newest maxResultsPerSearch listings of each search as new with isFirstCheck: true and remembers them.
  2. Every later run reads the same window again and returns:
    • new: a listing it has not seen, published at or after the oldest listing it watched last time;
    • price_drop / price_up: a watched listing whose price changed, with previousPrice;
    • removed: a watched listing that is no longer in the search (sold, reserved and hidden, deleted, or edited out of your filters).
  3. Nothing changed = one free no-new-listings row per search.
  4. The memory lives in a named key-value store of your account (wallapop-monitor-state), one entry per search and watchName, so it carries over between scheduled runs.
  5. Rows that did not fit into your maximum charge are not charged and are returned by the next run.

Pick maxResultsPerSearch so that it covers more listings than appear between two runs. On the night of 2026-10-28 the newest 100 listings for iphone near Madrid spanned about 7.5 hours, so the default 100 covers an hourly schedule; daytime is busier, so raise it for broad searches (all of Spain, popular words) or longer gaps between runs.

Pricing

Pay per event:

  • Run start: once per run that returns listings, and once per monitor run that read and compared the list, even when nothing changed. Not charged when nothing could be read or nothing matched in a normal search.
  • Listing returned: per listing row delivered. Free rows (nothing new, no results, bad input and so on) are never charged.

If your maximum total charge has no room for the run start fee plus one listing, the run reads nothing and is charged nothing.

Good to know

  • Wallapop's newest-first list is split by date, so some pages come back empty in between; the Actor keeps reading until it has maxResultsPerSearch listings or the search ends.
  • condition is filled when you search with conditions; Wallapop's list itself does not carry it.
  • If more new listings appear between two runs than maxResultsPerSearch, the oldest of them are not reported; raise it for busy searches or schedule more often.
  • Coordinates are the approximate point Wallapop shows, not an exact address.
  • Two schedules running the same searches with the same watchName at the same moment can return the same change twice; give each schedule its own watchName.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.