watch
Track searches, items and sellers and get events when they change
wallapop watch
Track searches, items and sellers and get events when they change
Track searches, items and sellers and get events when they change.
A watch is local. "check" runs every due watch once, prints new events and delivers them to the watch's sinks; "run" loops in the foreground; "service" installs a systemd timer or launchd agent that runs "check" on a schedule.
wallapop watch add search "thinkpad x1" --max-price 400 --name x1 --notify phone
wallapop watch add item https://es.wallapop.com/item/... --name that-bike
wallapop watch add seller p8j35kmwr7z9 --name good-seller
wallapop watch add search patinete --max-price 100 --name pat --emit-initial # seed a feed
wallapop watch check --all --format jsonl | jq -r 'select(.type=="item.new") | .item.url'
wallapop watch run --interval 2m
wallapop watch service install --interval 10mwallapop watch add
Create a watch
wallapop watch add item
Watch one item for price, reserved, sold, removed
wallapop watch add item ITEM [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--emit-initial | bool | false | report everything that exists now as events instead of baselining silently |
--interval | duration | 0s | how often this watch is due (default from config, 5m; floor 30s) |
--name | string | - | watch name (required, used in events and commands) |
--notify | stringSlice | [] | sink names from config, repeatable |
wallapop watch add search
Watch a search for new items and price changes
wallapop watch add search [keywords...] [flags]Watch a search for new items and price changes.
Give keywords and search flags, or --from-alert ID to copy the query of one of
the account's saved searches (see wallapop alert list). The two are
exclusive: the saved query is replayed as Wallapop stored it.
| Flag | Type | Default | Description |
|---|---|---|---|
--category | int | 0 | category id (see wallapop category list) |
--condition | stringSlice | [] | item condition, repeatable: new, as_good_as_new, good, fair, has_given_it_all |
--distance | int | 0 | radius in km |
--emit-initial | bool | false | report everything that exists now as events instead of baselining silently |
--filter | stringToString | [] | category-specific filter key=value, repeatable (see wallapop search filters) |
--from-alert | string | - | copy the query of this saved search (see wallapop alert list) |
--interval | duration | 0s | how often this watch is due (default from config, 5m; floor 30s) |
--lat | float64 | 0 | latitude of the search centre (default: profile location) |
--lng | float64 | 0 | longitude of the search centre |
--max-price | int | -1 | maximum price |
--min-price | int | -1 | minimum price |
--name | string | - | watch name (required, used in events and commands) |
--notify | stringSlice | [] | sink names from config, repeatable |
--pages | int | 1 | result pages to diff per check |
--shipping | bool | false | only items that can be shipped |
--since | string | - | listing age: today, week, month |
--sort | string | - | order: relevance, newest, price_asc, price_desc |
wallapop watch add seller
Watch a seller for new and removed items
wallapop watch add seller USER [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--emit-initial | bool | false | report everything that exists now as events instead of baselining silently |
--interval | duration | 0s | how often this watch is due (default from config, 5m; floor 30s) |
--name | string | - | watch name (required, used in events and commands) |
--notify | stringSlice | [] | sink names from config, repeatable |
wallapop watch check
Run due watches once and print their events
wallapop watch check [NAME...] [flags]Run watches once. With names, those watches run regardless of schedule. Without names, watches whose interval has elapsed run; --all forces every watch. Prints the events produced (none is fine: exit 0) and delivers them to sinks.
| Flag | Type | Default | Description |
|---|---|---|---|
--all | bool | false | run every watch of the profile, due or not |
wallapop watch events
Show stored events, newest first
wallapop watch events [NAME] [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 100 | maximum events |
--since | duration | 0s | only events newer than this (e.g. 24h) |
wallapop watch list
List watches for the active profile
wallapop watch list [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--all-profiles | bool | false | include every profile's watches |
wallapop watch remove
Delete a watch and its history
wallapop watch remove NAME [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--yes | bool | false | do not prompt |
wallapop watch run
Check due watches in a loop until Ctrl-C
wallapop watch run [flags]Foreground loop. Every tick runs the due watches and prints events as they happen (use --format jsonl to stream). The tick defaults to the shortest watch interval, floored at 30s, with up to 10% jitter.
| Flag | Type | Default | Description |
|---|---|---|---|
--interval | duration | 0s | tick length (default: shortest watch interval) |
wallapop watch service
Run checks on a schedule via systemd (Linux) or launchd (macOS)
wallapop watch service install
Install a user-level timer that runs watch check --all
wallapop watch service install [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--interval | duration | 0s | timer period (default from config, 5m) |
wallapop watch service status
Show the timer's state and last run
wallapop watch service statuswallapop watch service uninstall
Remove the timer and its log
wallapop watch service uninstall