When it stops finding things
First: are you on the newest version?
Vinted moved its search to a new address in September 2026. Versions before 2.0.0 still ask the old one and find nothing, or report errors such as a 404 or "malformed" on every search. No setting fixes that; updating does.
Check the version you run with vinted-bot --version (Docker:
docker compose exec vinted-bot vinted-bot --version). The dashboard also says when a
newer version is out.
Then: how is each search doing?
The dashboard shows the state of every search. On the command line,
vinted-bot status prints the same: each search with a one-word state, when it last
succeeded, and what went wrong if anything did. With Docker, put
docker compose exec vinted-bot in front of any vinted-bot command.
Running.
nike air max [ok] — vinted.fr
last successful check: 34s ago
newest listing seen: 112s ago
carhartt jacket [failing] — vinted.co.uk
last successful check: 1840s ago
blocked 12 times, rate limited 0 times
last error: vinted.co.uk refused the request with 403
The state tells you which of the following sections to read.
Vinted reachable from this machine
Most "it finds nothing" reports come down to one question: does Vinted answer the computer vinted-bot runs on? To test it by hand, try one search once:
vinted-bot check --url "https://www.vinted.fr/catalog?search_text=nike"
Listings printed means the connection works. "Blocked" means Vinted is refusing this address. To confirm without vinted-bot at all, ask Vinted for a session cookie, using the country site you watch:
# macOS, Linux, Raspberry Pi
curl -s -c - -L "https://www.vinted.fr/" | grep access_token_web
# Windows (PowerShell)
curl.exe -s -c - -L "https://www.vinted.fr/" | Select-String access_token_web
# Docker
docker compose exec vinted-bot sh -c 'curl -s -c - -L "https://www.vinted.fr/" | grep access_token_web'
A line with access_token_web in it means your address is fine. If searches still fail,
the problem is in the app: please open an issue
with the output of vinted-bot status and the log.
Nothing printed means Vinted is challenging this address, and no setting inside vinted-bot changes that. See the 403 section for what does.
"ok" but nothing is arriving
The search is working; it just isn't matching anything. Common causes, in the order worth checking:
Your price limit includes buyer protection. A limit of 20 rejects a listing priced at 18
that costs 20.50 to actually buy. That is the intended behaviour, but it surprises people.
Check what you set with vinted-bot searches.
The search itself is narrow. Open the URL in a browser. If Vinted shows nothing new either, there is nothing wrong.
Excluded words are catching more than you meant. Excluding "new" also excludes "brand new condition" and anything else containing it.
Everything is a boosted listing. Paid bumps are skipped, because they are old listings resurfacing rather than new ones.
"stale"
The search has stopped seeing new listings while your other searches on the same site are still finding them. Vinted sometimes serves a catalog that has quietly stopped updating, which looks like success from the outside.
The app starts a fresh session on its own when it notices. If it stays stale for more than
an hour, restart it: run the install command again if you used the installer, or
docker compose restart vinted-bot with Docker.
If it persists after that, the search may have genuinely dried up. Compare with the same URL in a browser.
"failing" with 403
Vinted is refusing the connection. Almost always this is about where the request comes from, not what it asked for. Confirm it with the reachability check.
If the check passes, your address is fine and the problem is the app: please open an issue with your logs. If it fails, your address is being challenged. Options, cheapest first:
- Wait. These are usually temporary. The app backs off on its own.
- Slow down. Raise
VINTED_BOT_POLL_DEFAULT_INTERVAL_Sto 120 or 300. Ten searches at once from one address is a lot more traffic than one search. - Move it home. Residential connections are challenged far less than datacenter ones. A Raspberry Pi is enough.
- Turn on TLS impersonation. Set
VINTED_BOT_HTTP_IMPERSONATE=true. This makes requests look like a real browser at the connection level rather than like Python. It needs theimpersonateextra installed, and it is not a magic fix — if your address is blocked outright, it stays blocked. - Use a proxy.
VINTED_BOT_PROXY_FILEpoints at a text file with one proxy URL per line. Free proxy lists are already blocked; if you go this route, use residential proxies in the same country as the site you are watching. Most people never need this.
"failing" with 429
You are checking too often for how Vinted feels about your address right now. The app already waits as long as Vinted asks it to. If it keeps happening, increase the interval — the listings will still be there.
"failing" with malformed
Vinted answered with something that is not a catalog. That usually means one of three things: a version from before September 2026's API move (update), an anti-bot page instead of an answer (see the 403 section), or a new change on Vinted's side, which needs a fix here. If you are on the newest version, please open an issue with the logged error.
Notifications stopped but searches are fine
Check the destination:
vinted-bot destinations
A destination marked disabled was switched off because the other end said it was gone — a
deleted Discord webhook, a blocked Telegram bot, a wrong chat id. This is deliberate:
repeatedly sending to a dead webhook is what gets your address rate-limited by Discord
itself. Remove it and add the new one.
Also worth knowing: undelivered notifications are discarded after an hour by default. If Discord was down all night, you get the current listings when it comes back rather than a flood of stale ones.
It says "Not running"
The heartbeat is stale, meaning the process is not coming round its loop, or it is not
running at all. The log says why; see where the logs are. With Docker,
docker compose ps also shows whether the container keeps restarting.
Also worth grepping the logs for web.no_password: that warning means the dashboard is
listening on an address other than localhost with no sign-in, so anyone who can reach the
port can change your searches and where alerts go. Either set VINTED_BOT_WEB_AUTH_TOKEN
or check that the published port is not public.
The dashboard says "Unknown address"
It only answers to names it was told about, so that another website cannot point its own
name at your computer and use the dashboard through your browser. Localhost and any IP
address always work. If you reach it by a name (a reverse proxy, a tunnel, nas.local),
add that name to VINTED_BOT_WEB_ALLOWED_HOSTS, or set VINTED_BOT_WEB_PUBLIC_URL to
the full address, and restart. Behind a reverse proxy that does not pass the original
Host on, add the name it forwards instead (often the container's name).
Telegram never connects
The bot cannot message you first — that is a Telegram rule, not a limitation here. Run
vinted-bot pair-telegram --bot-username yourbot, then tap the link it prints, in the chat
or group you want alerts in. The app must be running for the link to work, and the link
expires after thirty minutes.
For a group, add the bot to the group first. For a forum topic, tap the link inside that topic.
The update button didn't work
The message under Settings, Updates says what happened, and uv's own output is underneath it (on Windows it is in the log file instead). The two usual causes:
- "Nothing newer was installed." A release reaches GitHub a few minutes before PyPI, where updates are downloaded from. Try again later.
- "uv stopped with an error." Often no internet, or a full disk. vinted-bot keeps running the version it was on.
On Windows, if vinted-bot comes back still on the old version, the upgrade that runs while it is closed failed, and the log file says why. Running the install command again does the same update by hand, on any system.
Everything is broken after an update
Go back to the previous release and open an issue. With Docker, pin its tag in
docker-compose.yml, then docker compose up -d:
image: ghcr.io/jasp-nerd/vinted-bot:2.1.0
With the installer, run it with the release you want (macOS and Linux shown; on Windows set
the same variable with $env:VINTED_BOT_PACKAGE = "..." first):
curl -LsSf https://raw.githubusercontent.com/jasp-nerd/vinted-bot/main/install.sh | \
VINTED_BOT_PACKAGE="vinted-bot==2.1.0" sh
Your searches carry over either way. The weekly canary tests against the live site, so an outright break usually gets caught before it ships. If you hit one anyway, the log is the useful thing to attach.
Installing
"vinted-bot: command not found" (or "not recognized" on Windows) right after installing: open a new terminal window. The installer adds its folder to your PATH, and windows that were already open don't see that.
The installer says port 8000 is taken. Something else listens there, often an older copy
of vinted-bot running in Docker. Stop that, or install on another port: put
VINTED_BOT_WEB_PORT=8001 before sh in the install command (Windows:
$env:VINTED_BOT_WEB_PORT = 8001 first). The dashboard is then on
http://localhost:8001.
"running scripts is disabled on this system" on Windows: use the install command exactly
as written, including -ExecutionPolicy ByPass. That lifts the restriction for this one
command only.
The download fails at work or school: some networks block downloads from GitHub or from astral.sh, where uv comes from. Try from home.
"It installed, but didn't start". The log says why: see below.
Docker: "unable to open database file" or "/data is not writable": the folder mounted at
/data belongs to a user the container can't write as. Set PUID and PGID to the
folder's owner (id on the host prints yours) and start the container normally, without a
user: line, so it can fix the ownership itself.
Where the logs are
| Installed with | Log |
|---|---|
| Installer, Windows | %LOCALAPPDATA%\vinted-bot\vinted-bot.log |
| Installer, macOS | ~/Library/Application Support/vinted-bot/vinted-bot.log |
| Installer, Linux | journalctl --user -u vinted-bot (or ~/.local/share/vinted-bot/vinted-bot.log if it isn't started at login) |
| Docker | docker compose logs --tail 200 vinted-bot |
When you open an issue, attach the last couple of hundred lines and the output of
vinted-bot status. The app keeps tokens and webhook links out of both, but glance over
them before posting anyway.