Per creare un bot Vinted che ti avvisa dei nuovi annunci, usa la Vinted API di Scavio come fonte dei dati. Il bot chiama POST /api/v1/vinted/search con "country": "it", i tuoi filtri e "sort": "newest_first" ogni pochi minuti, ricorda gli id già visti e manda su Telegram solo gli annunci nuovi, con prezzo, tariffa Vinted, totale, condizioni e link. /brands e /filters trasformano marca, colore e condizioni negli id che la ricerca accetta, /product controlla se un annuncio è ancora disponibile e /seller dice chi vende. Ogni chiamata costa 1 credito.
Vinted non offre un'API pubblica per questo: Vinted Pro Integrations è riservata ad alcune aziende Vinted Pro e serve a gestire i loro articoli, non a cercare nel marketplace. Il bot di questa guida legge solo dati pubblici, non accede al tuo account Vinted, non compra e non scrive a nessuno: ti avvisa e basta. Tutte le risposte qui sotto sono state acquisite su vinted.it il 9 novembre 2026, e l'esempio è una borsa Liu Jo nera in ottime condizioni sotto i 30 euro.
Passo 1: trasforma i nomi in id
I filtri di ricerca vogliono id, non nomi. Parti da quello che la gente scrive nella barra di ricerca:
curl -s https://api.scavio.dev/api/v1/vinted/suggestions \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "it", "query": "borsa liu"}'data acquisito (6 suggerimenti su 10 tagliati):
{
"country": "it",
"query": "borsa liu",
"count": 10,
"suggestions": [
{"text": "borsa liu jo donna nera", "type": "popular_search"},
{"text": "borsa liu jo blu", "type": "popular_search"},
{"text": "borsa liu jo grande", "type": "popular_search"},
{"text": "borsa liu jo maculata", "type": "popular_search"}
]
}"borsa liu jo donna nera" è la prima ricerca popolare: è il bot che costruiamo. Poi l'id della marca:
curl -s https://api.scavio.dev/api/v1/vinted/brands \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "it", "query": "liu jo"}'data acquisito (8 marche su 10 tagliate):
{
"country": "it",
"query": "liu jo",
"count": 10,
"brands": [
{"id": 2165, "title": "Liu Jo", "slug": "liu-jo", "url": "https://www.vinted.it/brand/2165-liu-jo", "item_count": 1880052, "is_luxury": true, "requires_authenticity_check": true},
{"id": 6479670, "title": "Liu Jo Jeans", "slug": "liu-jo-jeans", "url": "https://www.vinted.it/brand/6479670-liu-jo-jeans", "item_count": 60122, "is_luxury": false, "requires_authenticity_check": false}
]
}La corrispondenza è approssimativa: la stessa risposta contiene Liu Jo Kids e LIU Jeans. Scegli il title esatto. Liu Jo ha 1.880.052 annunci ed è tra le marche per cui Vinted prevede la verifica di autenticità (requires_authenticity_check: true). La categoria arriva da /categories: {"country": "it", "parent_id": 1904} ha restituito l'albero Donna, 273 categorie in italiano, con Borse come 19 e le sue 18 sottocategorie, da Zaini a Pochette da polso.
Passo 2: id di colore e condizioni, con i conteggi
curl -s https://api.scavio.dev/api/v1/vinted/filters \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "it", "filter": "status", "query": "borsa liu jo", "category_id": 19}'data acquisito (descrizioni tagliate), in 2,8 secondi:
{
"country": "it",
"filter": "status",
"search_param": "status_ids",
"query": "borsa liu jo",
"category_id": 19,
"count": 5,
"options": [
{"id": 6, "title": "Nuovo con cartellino", "item_count": 11305},
{"id": 1, "title": "Nuovo senza cartellino", "item_count": 29709},
{"id": 2, "title": "Ottime", "item_count": 63658},
{"id": 3, "title": "Buone", "item_count": 35157},
{"id": 4, "title": "Discrete", "item_count": 10440}
]
}search_param dice in quale parametro della ricerca vanno gli id. I conteggi sono in tempo reale: 150.269 annunci corrispondono a "borsa liu jo" in Borse, 63.658 in condizioni ottime. Lo stesso endpoint accetta "filter": "color", "size" o "material". Con "color" ha restituito 29 colori: Nero è l'id 1 con 54.192 annunci, Beige il 4 con 20.502. I titoli arrivano in italiano perché il sito è vinted.it; gli id sono gli stessi su tutti i siti.
Passo 3: la ricerca che il bot ripete
curl -s https://api.scavio.dev/api/v1/vinted/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "it", "query": "borsa liu jo", "brand_ids": [2165], "category_id": 19, "color_ids": [1], "status_ids": [2], "price_to": 30, "sort": "newest_first"}'data acquisito in 7,6 secondi (94 annunci su 96 tagliati, senza gli id dei venditori privati):
{
"country": "it",
"currency": "EUR",
"query": "borsa liu jo",
"page": 1,
"per_page": 96,
"count": 96,
"listed_results": 960,
"total_is_capped": true,
"total_pages": 10,
"has_more": true,
"filters": {
"query": "borsa liu jo",
"category_ids": [19],
"brand_ids": [2165],
"status_ids": [2],
"size_ids": [],
"color_ids": [1],
"material_ids": [],
"price_from": null,
"price_to": 30,
"currency": "EUR",
"sort": "newest_first"
},
"items": [
{
"id": 10732307874,
"title": "Borsa liu jo",
"url": "https://www.vinted.it/items/10732307874-borsa-liu-jo",
"price": 19,
"currency": "EUR",
"price_with_discount": null,
"service_fee": 1.65,
"total_price": 20.65,
"brand": "Liu Jo",
"size": null,
"condition": "Ottime",
"favourite_count": 2,
"is_promoted": false,
"image": "https://images1.vinted.net/t/04_000f4_H1jrHCcjwmcrEWAzSmsv9z9w/f800/25e6a9e7.webp?s=c0a18bf7b4df116442b865e80448a7cbb7b0152e",
"thumbnail": "https://images1.vinted.net/t/04_000f4_H1jrHCcjwmcrEWAzSmsv9z9w/310x430/25e6a9e7.webp?s=9d80e0663982f09f57405315d9e4fee74a8d8333",
"photos": ["https://images1.vinted.net/t/04_000f4_H1jrHCcjwmcrEWAzSmsv9z9w/f800/25e6a9e7.webp?s=c0a18bf7b4df116442b865e80448a7cbb7b0152e"],
"seller": { "is_business": false }
},
{
"id": 10732289521,
"title": "Borsa a tracolla Liu Jo",
"url": "https://www.vinted.it/items/10732289521-borsa-a-tracolla-liu-jo",
"price": 26,
"currency": "EUR",
"price_with_discount": null,
"service_fee": 2,
"total_price": 28,
"brand": "Liu Jo",
"size": null,
"condition": "Ottime",
"favourite_count": 2,
"is_promoted": false,
"image": "https://images1.vinted.net/t/02_023dc_JNUoq4NEycKQERVnw64aX4oB/f800/47ec5ad2.webp?s=6b48b2adb55e12a42b89afbba06ae3e55c823883",
"thumbnail": "https://images1.vinted.net/t/02_023dc_JNUoq4NEycKQERVnw64aX4oB/310x430/47ec5ad2.webp?s=7e4d6d143eab56803396fdbc3664e3b9d0aa30ef",
"photos": ["https://images1.vinted.net/t/02_023dc_JNUoq4NEycKQERVnw64aX4oB/f800/47ec5ad2.webp?s=6b48b2adb55e12a42b89afbba06ae3e55c823883"],
"seller": { "is_business": false }
}
]
}Una riga si legge così: chi vende chiede 19 €, la tariffa Vinted (service_fee) è 1,65 € e l'acquirente paga 20,65 € prima della spedizione. In tutti i 480 annunci di borse Liu Jo che abbiamo letto quel giorno la tariffa è stata 0,70 € più il 5% del prezzo; la spedizione non viene restituita. Il blocco filters è quello che Vinted ha applicato: ci sono tutti gli id inviati, quindi le 96 righe sono davvero nere, in ottime condizioni e al massimo 30 €. listed_results: 960 con total_is_capped: true vuol dire almeno 960, non esattamente 960: Vinted serve 10 pagine da 96 e non di più. Per un bot non importa: con newest_first gli annunci nuovi sono sempre in cima alla prima pagina.
I siti Vinted dell'UE condividono un bacino di annunci, quindi anche su vinted.it arrivano annunci di altri paesi, sempre in euro e con le condizioni di vinted.it: tra i 12 più recenti di questa ricerca, 2 avevano il titolo in olandese o in tedesco ("Crossbody tas van Liu Jo", "Tasche Schwarz"). Se vuoi solo annunci scritti in italiano, filtra sul titolo nel tuo codice. Per capire che prezzo impostare nel filtro, una ricerca per condizione ti dà la forchetta; per le borse Liu Jo la mediana andava da 50,00 € con cartellino a 8,00 € in condizioni discrete:
Passo 4: il bot, con gli avvisi su Telegram
Crea un bot Telegram con @BotFather, che ti dà il token, e recupera l'id della chat in cui vuoi gli avvisi. Poi:
import time
import requests
SCAVIO_KEY = "sk_live_your_key" # dal pannello di Scavio
TG_TOKEN = "123456:your_bot_token" # da @BotFather
TG_CHAT = "your_chat_id"
BODY = {"country": "it", "query": "borsa liu jo", "brand_ids": [2165], "category_id": 19,
"color_ids": [1], "status_ids": [2], "price_to": 30, "sort": "newest_first"}
visti = set()
primo_giro = True
while True:
r = requests.post("https://api.scavio.dev/api/v1/vinted/search", json=BODY,
headers={"Authorization": f"Bearer {SCAVIO_KEY}"}, timeout=60)
for item in r.json()["data"]["items"]:
if item["id"] in visti:
continue
visti.add(item["id"])
if not primo_giro:
testo = (f"{item['title']}\n{item['price']} {item['currency']} "
f"({item['total_price']} con tariffa Vinted)\n{item['condition']}\n{item['url']}")
requests.post(f"https://api.telegram.org/bot{TG_TOKEN}/sendMessage",
json={"chat_id": TG_CHAT, "text": testo}, timeout=30)
primo_giro = False
time.sleep(300) # un controllo ogni 5 minuti: 288 crediti al giornoIl primo giro riempie visti con i 96 annunci attuali senza mandare niente; dai giri successivi arrivano su Telegram solo gli annunci nuovi. Per Discord basta sostituire la chiamata a sendMessage con un POST al webhook del canale. Più ricerche vuol dire più BODY nello stesso ciclo, ognuna 1 credito a controllo. Il bot avvisa e basta: non compra, non fa offerte e non scrive ai venditori.
Passo 5: prima di avvisare, apri l'annuncio
Se vuoi più dettagli nell'avviso, o controllare che l'annuncio sia ancora disponibile, chiama /product con l'id:
curl -s https://api.scavio.dev/api/v1/vinted/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "it", "item_id": 10731493543}'data acquisito in 6,9 secondi (6 foto su 7 tagliate; senza nome utente, id e profilo del venditore privato):
{
"country": "it",
"id": 10731493543,
"url": "https://www.vinted.it/items/10731493543-borsa-liujo-originale-tenuta-bene-a-tracolla-con-catena-oro",
"title": "Borsa LIUJO Originale tenuta bene a tracolla con catena oro",
"description": "Borsa LIUJO originale 100%\ntenuta bene a tracolla con catena oro\nMisure 29x20 cm circa",
"description_translated": false,
"price": 30,
"currency": "EUR",
"brand": { "id": 2165, "name": "Liu Jo" },
"size": null,
"condition": "Ottime",
"color": "Nero",
"material": "Similpelle",
"uploaded_relative": "2 ore fa",
"category": {
"id": 159,
"name": "Pochette",
"path": [
{ "id": 1904, "title": "Donna", "url": "https://www.vinted.it/catalog/1904-women" },
{ "id": 19, "title": "Borse", "url": "https://www.vinted.it/catalog/19-bags" },
{ "id": 159, "title": "Pochette", "url": "https://www.vinted.it/catalog/159-clutches" }
]
},
"photos": ["https://images1.vinted.net/t/06_0220a_iwkju2WG935xgimSAsC2SWqr/f800/bbef5b38.webp?s=e736311cc5e8ac5679b46ada32294e92906a92a2"],
"favourite_count": 0,
"is_reserved": false,
"is_sold": false,
"status_label": null,
"can_buy": true,
"instant_buy": true,
"is_hidden": false,
"seller": { "is_business": false, "feedback_count": 0, "feedback_reputation": 0, "badges": ["ACTIVE_LISTER"] }
}Tre campi utili per un bot. is_reserved e is_sold: quando uno dei due diventa true (e can_buy diventa false) l'annuncio è da togliere. seller.feedback_count: qui è 0, un account senza feedback, informazione da mettere nell'avviso per un articolo che Vinted classifica come da verificare. E material ("Similpelle"), che la ricerca non restituisce. La scheda non ha la tariffa: prendila da service_fee nella riga di ricerca. Il prezzo della scheda è nella valuta del venditore, mentre la ricerca lo dà sempre nella valuta del sito, quindi confronta prezzi di ricerca con prezzi di ricerca.
Passo 6: controlla il venditore
Il seller.id di una riga di ricerca o di una scheda alimenta tre endpoint. L'esempio è il negozio professionale rida_vintage (49753353), che aveva una borsa Liu Jo tra i risultati di vinted.it:
curl -s https://api.scavio.dev/api/v1/vinted/seller \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "it", "user_id": 49753353}'data acquisito in 2,6 secondi:
{
"country": "it",
"id": 49753353,
"login": "rida_vintage",
"profile_url": "https://www.vinted.it/member/49753353-ridavintage",
"is_business": true,
"feedback_count": 4136,
"feedback_reputation": 0.9800000000000001,
"positive_feedback_count": 4004,
"neutral_feedback_count": 36,
"negative_feedback_count": 96,
"item_count": 89,
"country_code": "IT",
"country_name": "Italia",
"city": null,
"verification": { "email": true, "facebook": false, "google": true },
"avg_response_time": null,
"is_on_holiday": false,
"last_seen_date": "2026-11-09"
}feedback_reputation è un voto da 0 a 1; con 96 feedback negativi su 4.136, guarda i conteggi e non solo il voto. Poi i feedback, fino a 50 per pagina:
curl -s https://api.scavio.dev/api/v1/vinted/seller-feedback \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "it", "user_id": 49753353, "limit": 50}'data acquisito (48 righe su 50 tagliate):
{
"country": "it",
"user_id": 49753353,
"page": 1,
"per_page": 50,
"total_results": 4136,
"total_pages": 83,
"count": 50,
"has_more": true,
"feedback": [
{"id": 4711440346, "rating": 5, "text": "Recensione automatica: Vendita completata correttamente", "created_at": "2026-11-09T09:53:10.000Z", "is_automatic": true, "seller_reply": null},
{"id": 4706405282, "rating": 3, "text": "satisfaisant", "created_at": "2026-11-08T10:17:12.000Z", "is_automatic": false, "seller_reply": null}
]
}31 delle 50 righe erano feedback automatici di Vinted, quindi filtra su is_automatic prima di riassumere cosa dicono gli acquirenti; gli altri 19, dal 30 ottobre all'8 novembre, erano 17 da 5 stelle e 2 da 3. Le righe non riportano chi ha scritto né cosa ha comprato, per scelta. /seller-products con lo stesso user_id e "limit": 20 ha restituito la prima di 5 pagine del negozio (89 articoli), con prezzi da 9,99 € a 50 €, ognuno con tariffa, totale e gli indicatori is_sold e is_reserved.
Tutti i 9 endpoint
| Endpoint | Cosa restituisce | Crediti |
|---|---|---|
/api/v1/vinted/search | 96 annunci per pagina, pagine 1-10, con prezzo, tariffa Vinted, totale, taglia, condizioni, foto e id del venditore, più i filtri applicati | 1 |
/api/v1/vinted/product | Un annuncio per id o URL: descrizione, tutte le foto, percorso di categoria, stato riservato o venduto, valutazione del venditore | 1 |
/api/v1/vinted/seller | Il profilo pubblico di un membro: valutazione, feedback positivi, neutri e negativi, articoli in vendita, verifiche | 1 |
/api/v1/vinted/seller-products | Gli articoli di un membro, fino a 96 per pagina, con tariffa, totale e indicatori di venduto e riservato | 1 |
/api/v1/vinted/seller-feedback | Feedback, fino a 50 per pagina, prima i più recenti, con l'indicatore automatico e la risposta del venditore | 1 |
/api/v1/vinted/brands | Id delle marche con numero di annunci e gli indicatori di lusso e verifica di autenticità | 1 |
/api/v1/vinted/suggestions | Fino a 10 suggerimenti della barra di ricerca nella lingua del sito | 1 |
/api/v1/vinted/filters | Id di taglia, condizioni, colore o materiale con conteggi in tempo reale | 1 |
/api/v1/vinted/categories | L'albero delle categorie nella lingua del sito, o un solo ramo | 1 |
Gli errori non si pagano: un articolo, un membro o una categoria inesistenti sono un 404, un problema temporaneo un 502. Ogni endpoint accetta country: it per vinted.it, fr (il valore predefinito) e gli altri siti UE, uk, us o au. Non c'è una ricerca dei venduti, né il costo di spedizione, né gli articoli simili. Per un confronto di tutte le opzioni, compresi i bot già pronti, leggi le migliori API Vinted.
Per iniziare
- Registrati su dashboard.scavio.dev/sign-up: 50 crediti gratuiti, senza carta, abbastanza per 50 chiamate Vinted.
- Copia la tua API key dal pannello.
- Invia un POST a
/api/v1/vinted/searchcon{"country": "it", "query": "borsa liu jo", "sort": "newest_first"}e la key nell'headerAuthorization.
Prova gratis la Vinted API nel playground, usa l'SDK Python o chiamala da Claude e da altri agenti con il server MCP.
Riferimenti: API Vinted Italia · ricerca · scheda articolo · venditore · articoli del venditore · feedback del venditore · marche · filtri · categorie · suggerimenti
Frequently asked questions
Come si crea un bot Vinted?
Un bot Vinted di avvisi fa tre cose: interroga una ricerca filtrata ordinata per più recenti a intervalli regolari, ricorda gli id già visti e invia ogni annuncio nuovo su Telegram o Discord. Con la Vinted API di Scavio la ricerca è un POST a /api/v1/vinted/search con "country": "it" e "sort": "newest_first", e l'invio su Telegram è una chiamata a sendMessage. Bastano una trentina di righe di Python.
Cosa sono i bot di Vinted?
Programmi che automatizzano qualcosa su Vinted. Quelli per chi vende ripubblicano articoli o mandano offerte; quelli per chi compra controllano le ricerche e avvisano quando esce un annuncio nuovo. Questa guida costruisce il secondo tipo, che legge solo dati pubblici e non agisce sull'account di nessuno.
Quanto costa far girare un bot Vinted?
Con Scavio ogni controllo è una ricerca da 1 credito. Una ricerca controllata ogni 5 minuti sono 288 crediti al giorno, circa 8.640 al mese: 8,64 dollari alla tariffa Growth di 1 dollaro ogni 1.000 crediti. Alla registrazione ricevi 50 crediti gratuiti senza carta.
Il bot può comprare in automatico?
No. La Vinted API di Scavio restituisce solo dati: non accede ad account Vinted, non compra, non fa offerte e non scrive ai venditori. Il bot di questa guida ti avvisa; la decisione di comprare resta tua, nell'app di Vinted.
Ogni quanto deve controllare il bot?
Dipende dalla ricerca. Una ricerca stretta (marca, colore, condizioni e prezzo massimo) cambia poche volte all'ora, e un controllo ogni 5 minuti basta. Il 9 novembre 2026 la ricerca di questa guida ha riempito una pagina intera, 96 borse Liu Jo nere in ottime condizioni sotto i 30 euro, e ogni controllo costa 1 credito qualunque sia l'intervallo.