Wallapop Monitor: New Listings & Price Change Alerts avatar

Wallapop Monitor: New Listings & Price Change Alerts

Pricing

from $0.35 / 1,000 alerts

Go to Apify Store
Wallapop Monitor: New Listings & Price Change Alerts

Wallapop Monitor: New Listings & Price Change Alerts

Watch Wallapop searches on a schedule and get only what changed since the last run: new listings and price drops or rises in Spain, Italy and Portugal. Connect Slack, Telegram or Sheets. From $0.35 per 1,000 alerts.

Pricing

from $0.35 / 1,000 alerts

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

Wallapop Monitor: new listings and price change alerts

Wallapop Monitor watches Wallapop searches on a schedule and outputs only what changed since the last run: listings that are new, or whose price dropped or rose. Everything you already saw is remembered in a private store on your Apify account, so a run after an hour or a day emits a handful of rows instead of the whole market — perfect for Slack, Telegram or Google Sheets alerts. It covers Spain, Italy and Portugal with the same location and filter fields as Wallapop Scraper.

  • Only changes, every run. Each run compares the feed against the previous one and emits new, price_drop and price_rise rows. Unchanged listings are not output and not charged.
  • Same filters as the Scraper. Keywords, category, search URLs, 30 cities or your own coordinates, price range, condition and shipping-only — mirrored from Wallapop Scraper.
  • Choose your alerts. notifyOn picks which of new listings, price drops and price rises you want, with new listings and price drops as the default.
  • First run shows the market. The first run outputs the current listings (up to your max per search) and remembers them, so later runs report only changes. Set firstRun to baseline to record silently instead.
  • Many schedules, one Actor. Give each schedule a monitorName to keep their memories separate — an hourly and a daily watch of the same search won't interfere.
  • Rich rows. Every alert is a full Wallapop Scraper row (price, location, images, dates, flags) plus changeType, previousPrice, priceChange, firstSeenAt and monitorKey, so rows join with Scraper output on id.
  • Pay per alert, no login. No Wallapop account, cookies or proxy setup. A quiet run costs only the small actor-start fee.

To pull everything a search returns in one go — thousands of listings with views, favorites and seller ratings — use Wallapop Scraper. For a seller's whole inventory and reviews, see Wallapop Seller Scraper.

What can you do with Wallapop Monitor?

GoalHow
Snag underpriced deals fastWatch a keyword hourly with a max price and forward new rows to Slack or Telegram.
Know when a sought-after item appearsWatch a narrow search (notifyOn: ["new"]) and alert on every new listing.
Catch price cuts on fresh listingsKeep price_drop on and read previousPrice and priceChange.
Source stock before competitorsWatch several keywords in one city and sort each run's alerts by price.
Watch several searches independentlyOne task per search, each with its own monitorName and schedule.

Quick start

  1. Click Try for free and sign in to Apify.
  2. Type one or more Search keywords, or paste a Wallapop search URL. Pick a City and filters as needed.
  3. Save the input as a task (Save as a new task) and run it once. This run outputs the current listings and remembers them.
  4. In the task's Schedules tab, run it hourly or daily. From the second run on, the dataset holds only new listings and price changes.
  5. Connect Slack, Telegram, Google Sheets, Make or Zapier in the task's Integrations tab to get the alerts delivered.

Input

{
"keywords": ["iphone 15"],
"country": "ES",
"city": "madrid",
"radiusKm": 30,
"maxPrice": 500,
"notifyOn": ["new", "price_drop"],
"maxItemsPerSearch": 100,
"firstRun": "output",
"monitorName": "iphone-hourly",
"includeDetails": false,
"includeSellerInfo": false
}
FieldTypeDefaultEffect
keywordsArray of strings[]One watch per keyword. Leave empty with a categoryId to watch a category.
startUrlsArray of strings[]Wallapop search URLs (filters in the URL are kept). Listing URLs are skipped with a warning.
monitorNameString""Namespaces the state, so two schedules with the same search keep separate memories.
notifyOnArray["new", "price_drop"]Which changes to emit: new, price_drop, price_rise.
maxItemsPerSearchInteger100Max alerts per keyword or URL per run. 0 means no limit.
firstRunString"output"output emits current listings as new on a search's first run; baseline records them silently.
countryString"ES""ES", "IT" or "PT".
cityString""One of 30 preset cities. Sets the country and a 30 km radius.
radiusKmIntegernoneDistance limit around the city or coordinates.
latitude, longitudeStringnoneCustom search point. Overrides the city and turns off the country filter.
categoryIdString""One Wallapop category, for example 24200 (technology) or 100 (cars).
minPrice, maxPriceIntegernonePrice range in EUR.
conditionArray[]un_opened, new, as_good_as_new, good, fair, has_given_it_all.
shippingOnlyBooleanfalseOnly listings that can be shipped.
includeDetailsBooleanfalseAdds views, favorites, condition, brand, model and attributes to emitted rows.
includeSellerInfoBooleanfalseAdds seller name, rating, reviews, items sold and shop contacts to emitted rows.

There is no sort or posted-within option: the monitor always reads the feed newest first.

Output

Every emitted row is a full listing (same fields as Wallapop Scraper, joined on id) plus the change fields. Values are illustrative.

{
"id": "abcd1234efgh",
"url": "https://es.wallapop.com/item/iphone-15-plus-128gb-1234567890",
"title": "iPhone 15 Plus 128GB",
"price": 380,
"currency": "EUR",
"changeType": "price_drop",
"previousPrice": 420,
"priceChange": -40,
"firstSeenAt": "2026-10-07T09:00:12.000Z",
"monitorKey": "9f13c2e0a4b7d8f6c1a2b3c4",
"city": "Madrid",
"region": "Comunidad de Madrid",
"countryCode": "ES",
"distanceKm": 2.2,
"isShippable": true,
"isBumped": false,
"createdAt": "2026-10-07T08:41:00.000Z",
"modifiedAt": "2026-10-07T08:41:15.000Z",
"sellerId": "8z81e1q7lo63",
"searchKeyword": "iphone 15",
"searchUrl": null,
"scrapedAt": "2026-10-07T10:00:20.000Z"
}
  • changeType is new, price_drop or price_rise. previousPrice is what this monitor last saw, null for new listings; priceChange is price - previousPrice.
  • firstSeenAt is when the monitor first recorded the listing. monitorKey identifies the watch, so rows from several schedules can be told apart.
  • Unchanged listings are not output. With includeDetails or includeSellerInfo, only emitted rows carry those (charged) fields.

How price detection works

The monitor pages Wallapop's feed newest first, and Wallapop's newest order is by the listing's creation date (verified against the API: pages are sorted by created_at, and edited listings keep their position). New listings therefore appear on the first pages. A price change does not move a listing up the feed, so a change is detected only while the listing is still on the pages the monitor reads — in practice the first pages, where recently created listings live. A price change on a listing that has drifted many pages deep may go unnoticed; run the monitor more often, or use Wallapop Scraper for full scans.

Italy and Portugal

Wallapop's newest-first searches ignore the location unless a radius is set, and return Spanish listings. The monitor therefore searches Italy within 650 km of Rome and Portugal within 350 km of central Portugal, and drops listings from other countries. If you set your own latitude and longitude, no country filter is applied.

Scheduling and integrations

  1. Save your input as a task and run it once.
  2. In Schedules, add a schedule. Every hour: cron 0 * * * *. Every day at 9:00: 0 9 * * *. See Schedules.
  3. In the task's Integrations tab, connect Slack (post a message per dataset item), Telegram (send a message), Google Sheets (append rows) or Make/Zapier.
  4. Each scheduled run appends only the changes to the dataset, and your integration forwards them.

Give each schedule its own monitorName when two tasks watch the same search. The state lives in a key-value store named wallapop-monitor on your Apify account and survives purges, migrations and reboots; delete its records to start over.

Pricing

You pay per alert — a new listing or a price change actually emitted — and only for the extras you turn on. Unchanged listings, and a first run with firstRun: baseline, are never charged. Platform usage and proxies are included. See the Pricing tab for your plan's rates.

EventCharged when
AlertEvery row emitted to the dataset
Listing detailsDetails are on and were fetched for the alert
Seller infoSeller info is on and was found for the alert

Set Max cost per run in the run options to cap spending. The run stops when it's reached.

FAQ

Do I need a Wallapop account or proxies? No. The Actor uses public data and handles proxies itself.

Why does a later run output nothing? Nothing changed since the previous run. Quiet runs cost only the start fee. To start a search over, change monitorName.

Will I miss price drops? Only for listings deep in the feed. Because Wallapop's newest order is by creation date, price changes surface while a listing is still on the pages the monitor reads — the first pages in practice. Hourly schedules catch nearly everything recent.

How much state is kept? Up to 5,000 listings per search. Older entries are dropped first; listings not seen for a long time may reappear as new if they resurface.

Can I watch a single listing? No — use Wallapop Scraper with listing URLs, on a schedule.

Is it legal to scrape Wallapop? The Actor collects only publicly visible listing data. Personal data such as seller names is protected by GDPR in the EU, so only collect it when you have a legitimate reason, and check Wallapop's terms for your use case.