watch
Track searches, items and sellers and get events when they change
vinted 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.
vinted watch add search "levis 501" --price-to 30 --name levis --notify phone
vinted watch add item https://www.vinted.com/items/4815162342-levis-501 --name those-jeans
vinted watch add seller 123456789 --name good-seller
vinted watch add search "nike air max" --price-to 40 --name airmax --emit-initial # seed a feed
vinted watch check --all --format jsonl | jq -r 'select(.type=="item.new") | .item.url'
vinted watch run --interval 30m
vinted watch service install --interval 30mvinted watch add
Create a watch
vinted watch add item
Watch one item for price, reserved, sold, removed
vinted 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, 15m; floor 15m) |
--name | string | - | watch name (required, used in events and commands) |
--notify | stringSlice | [] | sink names from config, repeatable |
vinted watch add search
Watch a search for new items and price changes
vinted watch add search [text...] [flags]Watch a search for new items and price changes. Takes the same text and
filters as vinted search; --pages sets how many result pages each check diffs.
Without --order the watch reads newest_first, where new items show up.
Only items newer than the watch count as item.new: Vinted reshuffles its result pages between loads, so an older item appearing on the page is recorded without an event.
Or give --from-alert ID to copy the query of one of the account's saved
searches (see vinted alert list). The two are exclusive: the saved query
is replayed as Vinted stored it, except that an unset order becomes newest_first.
| Flag | Type | Default | Description |
|---|---|---|---|
--attr | stringArray | [] | any other filter as CODE=ID[,ID], repeatable (codes and ids from vinted search filters) |
--brand | intSlice | [] | brand id, repeatable (ids from vinted brand search) |
--catalog | intSlice | [] | category id, repeatable (ids from vinted category list) |
--color | intSlice | [] | colour id, repeatable (ids from vinted search filters) |
--condition | stringSlice | [] | item condition, repeatable: new_with_tags, new_without_tags, new, very_good, good, satisfactory, not_fully_functional, or a status id |
--currency | string | - | code of the --price-from/--price-to currency (EUR, USD...; default the site's) |
--emit-initial | bool | false | report everything that exists now as events instead of baselining silently |
--filter | stringArray | [] | any other catalog query parameter as key=value, repeatable, sent verbatim |
--from-alert | string | - | copy the query of this saved search (see vinted alert list) |
--interval | duration | 0s | how often this watch is due (default from config, 15m; floor 15m) |
--language | intSlice | [] | book language id, repeatable (books) |
--material | intSlice | [] | material id, repeatable (ids from vinted search filters) |
--model | intSlice | [] | model id, repeatable (phones and other electronics) |
--name | string | - | watch name (required, used in events and commands) |
--notify | stringSlice | [] | sink names from config, repeatable |
--order | string | - | order: relevance, newest_first, price_low_to_high, price_high_to_low |
--pages | int | 1 | result pages to diff per check (max 5) |
--pattern | intSlice | [] | pattern id, repeatable (clothing) |
--platform | intSlice | [] | video game platform id, repeatable (video games) |
--price-from | float64 | 0 | minimum price |
--price-to | float64 | 0 | maximum price |
--sim-lock | intSlice | [] | SIM lock id, repeatable (phones) |
--size | intSlice | [] | size id, repeatable (ids from vinted search filters --catalog ID) |
--storage | intSlice | [] | storage capacity id, repeatable (phones, tablets) |
--video-game-rating | intSlice | [] | content rating id, repeatable (video games) |
vinted watch add seller
Watch a seller for new and removed items
vinted 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, 15m; floor 15m) |
--name | string | - | watch name (required, used in events and commands) |
--notify | stringSlice | [] | sink names from config, repeatable |
vinted watch check
Run due watches once and print their events
vinted 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. Watches run one after another, and every request waits its turn behind the shared request interval. Prints the events produced (none is fine: exit 0) and delivers them to sinks. --jitter first sleeps a random time up to the given duration, so scheduled runs do not hit Vinted at fixed times; the service units pass a tenth of their interval.
| Flag | Type | Default | Description |
|---|---|---|---|
--all | bool | false | run every watch of the profile, due or not |
--jitter | duration | 0s | sleep a random time up to this before checking (e.g. 90s) |
vinted watch events
Show stored events, newest first
vinted watch events [NAME] [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--limit | int | 100 | maximum events |
--since | duration | 0s | only events newer than this (e.g. 24h) |
vinted watch list
List watches for the active profile
vinted watch list [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--all-profiles | bool | false | include every profile's watches |
vinted watch remove
Delete a watch and its history
vinted watch remove NAME [flags]| Flag | Type | Default | Description |
|---|---|---|---|
--yes | bool | false | do not prompt |
vinted watch run
Check due watches in a loop until Ctrl-C
vinted watch run [flags]Foreground loop. Every tick runs the due watches one after another and prints events as they happen (use --format jsonl to stream). The tick defaults to the shortest watch interval, floored at 15m, with up to 10% jitter. A block from Vinted's bot protection ends the loop with exit 5.
| Flag | Type | Default | Description |
|---|---|---|---|
--interval | duration | 0s | tick length (default: shortest watch interval) |
vinted watch service
Run checks on a schedule via systemd (Linux) or launchd (macOS)
vinted watch service install
Install a user-level timer that runs watch check --all
vinted watch service install [flags]Install a user-level timer that runs "watch check --all" every --interval (floor 15m). Each run first sleeps a random tenth of the interval, so checks do not hit Vinted at fixed times.
| Flag | Type | Default | Description |
|---|---|---|---|
--interval | duration | 0s | timer period (default from config, 15m; floor 15m) |
vinted watch service status
Show the timer's state and last run
vinted watch service statusvinted watch service uninstall
Remove the timer and its log
vinted watch service uninstall