Para criar um bot da Vinted que o avisa de anúncios novos, use a API da Vinted do Scavio. POST /api/v1/vinted/search com "country": "pt", uma pesquisa e "sort": "newest_first" devolve os 96 anúncios mais recentes da vinted.pt, cada um com preço, taxa Vinted, total antes dos portes, tamanho, estado, fotos e id do vendedor. Converta antes marcas, categorias e estados em ids com /brands, /categories e /filters, abra um anúncio com /product (descrição, fotos, vendido ou reservado) e verifique o vendedor com /seller e /seller-feedback. Cada pedido custa 1 crédito.
A API oficial da Vinted, a Vinted Pro Integrations, está disponível apenas para empresas Vinted Pro autorizadas e gere os artigos e as encomendas delas, sem pesquisa no marketplace. Os passos abaixo leem o marketplace em JSON com uma chave do Scavio. Todas as respostas foram capturadas a 9 de novembro de 2026 na vinted.pt, e o exemplo é um alerta para casacos de malha de mulher em tamanho M. O bot avisa; não compra, não faz ofertas e não envia mensagens.
Passo 1: transforme nomes em ids
Os filtros da pesquisa recebem ids, não nomes. Comece pelo que os compradores escrevem:
curl -s https://api.scavio.dev/api/v1/vinted/suggestions \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "pt", "query": "casaco de m"}'data capturado (6 das 10 sugestões cortadas):
{
"country": "pt",
"query": "casaco de m",
"count": 10,
"suggestions": [
{ "text": "casaco de malha", "type": "popular_search" },
{ "text": "casaco de malha mulher", "type": "popular_search" },
{ "text": "casaco de malha homem", "type": "popular_search" },
{ "text": "casaco de malha polar columbia", "type": "non_parent_cat+brand" }
]
}A categoria vem de /categories. {"country": "pt", "parent_id": 1904} devolveu a árvore de Mulher, 273 categorias em português, e nela Mulher > Roupa > Camisolas e sweaters > Sweaters > Casacos de malha é o id 529. Para filtrar por marca, /brands dá o id:
curl -s https://api.scavio.dev/api/v1/vinted/brands \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "pt", "query": "salsa"}'data capturado (8 das 10 marcas cortadas):
{
"country": "pt",
"query": "salsa",
"count": 10,
"brands": [
{ "id": 260, "title": "Salsa", "slug": "salsa", "url": "https://www.vinted.pt/brand/260-salsa", "item_count": 396654, "is_luxury": false, "requires_authenticity_check": false },
{ "id": 1411, "title": "Salsa Jeans", "slug": "salsa-jeans", "url": "https://www.vinted.pt/brand/1411-salsa-jeans", "item_count": 46971, "is_luxury": false, "requires_authenticity_check": false }
]
}A correspondência é aproximada: a mesma resposta traz Resalsa, Salvatore Ferragamo e Salamander. Escolha o title exato. item_count é o número de anúncios da marca, o que faz de /brands uma forma rápida de dimensionar uma marca.
Passo 2: obtenha os ids de estado e tamanho, com contagens
curl -s https://api.scavio.dev/api/v1/vinted/filters \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "pt", "filter": "status", "query": "casaco de malha", "category_id": 529}'data capturado em 2,1 segundos (descrições cortadas):
{
"country": "pt",
"filter": "status",
"search_param": "status_ids",
"query": "casaco de malha",
"category_id": 529,
"count": 5,
"options": [
{ "id": 6, "title": "Novo com etiquetas", "item_count": 14344 },
{ "id": 1, "title": "Novo sem etiquetas", "item_count": 52551 },
{ "id": 2, "title": "Muito bom", "item_count": 193287 },
{ "id": 3, "title": "Bom", "item_count": 65285 },
{ "id": 4, "title": "Satisfatório", "item_count": 9651 }
]
}search_param diz em que parâmetro da pesquisa entram os ids. As contagens são em tempo real e cobrem os anúncios de todos os países europeus da Vinted, não só os portugueses. O mesmo pedido com "filter": "size" devolveu 146 opções de tamanho; no grupo "Mulher > Artigos de mulher", M é o id 4, com 81.594 anúncios para esta pesquisa:
[
{ "id": 3, "title": "S / 36 / 8", "item_count": 99461, "group": "Mulher > Artigos de mulher" },
{ "id": 4, "title": "M / 38 / 10", "item_count": 81594, "group": "Mulher > Artigos de mulher" },
{ "id": 5, "title": "L / 40 / 12", "item_count": 30419, "group": "Mulher > Artigos de mulher" }
]Envie também a query quando pedir tamanhos: sem ela, as contagens são as da categoria inteira, não as da sua pesquisa.
Passo 3: pesquise com os filtros, os mais recentes primeiro
curl -s https://api.scavio.dev/api/v1/vinted/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "pt", "query": "casaco de malha", "category_id": 529, "size_ids": [4], "status_ids": [2], "price_to": 10, "sort": "newest_first"}'data capturado em 8,5 segundos (94 dos 96 anúncios cortados, e os ids dos vendedores particulares removidos):
{
"country": "pt",
"currency": "EUR",
"query": "casaco de malha",
"page": 1,
"per_page": 96,
"count": 96,
"listed_results": 960,
"total_is_capped": true,
"total_pages": 10,
"has_more": true,
"filters": {
"query": "casaco de malha",
"category_ids": [529],
"brand_ids": [],
"status_ids": [2],
"size_ids": [4],
"color_ids": [],
"material_ids": [],
"price_from": null,
"price_to": 10,
"currency": "EUR",
"sort": "newest_first"
},
"items": [
{
"id": 10732521356,
"title": "Malha zara",
"url": "https://www.vinted.pt/items/10732521356-malha-zara",
"price": 7,
"currency": "EUR",
"price_with_discount": null,
"service_fee": 1.05,
"total_price": 8.05,
"brand": "Zara Man",
"size": "M",
"condition": "Muito bom",
"favourite_count": 0,
"is_promoted": false,
"image": "https://images1.vinted.net/t/05_003d4_YJnueQsYFpjHticmC2mktMEz/f800/337797f2.webp?s=011a886d0abad19f6eddc42127f388195f5fda1a",
"thumbnail": "https://images1.vinted.net/t/05_003d4_YJnueQsYFpjHticmC2mktMEz/310x430/337797f2.webp?s=51c7d8f5b243c3cef75bfe857cc92c409006e945",
"photos": ["https://images1.vinted.net/t/05_003d4_YJnueQsYFpjHticmC2mktMEz/f800/337797f2.webp?s=011a886d0abad19f6eddc42127f388195f5fda1a"],
"seller": { "is_business": false }
},
{
"id": 10732511414,
"title": "Camisola de malha com pérolas",
"url": "https://www.vinted.pt/items/10732511414-camisola-de-malha-com-perolas",
"price": 5,
"currency": "EUR",
"price_with_discount": null,
"service_fee": 0.95,
"total_price": 5.95,
"brand": "Zara",
"size": "M",
"condition": "Muito bom",
"favourite_count": 1,
"is_promoted": false,
"image": "https://images1.vinted.net/t/05_02394_voVbyGzHbqdFuNdfVt1B778j/f800/7795a50f.webp?s=9904c0f760fa7a1f17c238a46f59b16b0e074ad8",
"thumbnail": "https://images1.vinted.net/t/05_02394_voVbyGzHbqdFuNdfVt1B778j/310x430/7795a50f.webp?s=d052e6661cdfe8671ddfd10f93f327c1b4563a18",
"photos": ["https://images1.vinted.net/t/05_02394_voVbyGzHbqdFuNdfVt1B778j/f800/7795a50f.webp?s=9904c0f760fa7a1f17c238a46f59b16b0e074ad8"],
"seller": { "is_business": false }
}
]
}Leia uma linha assim: o vendedor pede 7,00 €, a taxa Vinted (service_fee) é 1,05 €, e o comprador paga 8,05 € antes dos portes. Em 480 anúncios de casacos de malha que pesquisámos nesse dia, a taxa foi sempre 0,70 € mais 5% do preço; os portes não são devolvidos. O bloco filters é o que a Vinted aplicou: estão lá todos os ids enviados, por isso as 96 linhas são mesmo tamanho M, muito bom e até 10 €. listed_results: 960 com total_is_capped: true quer dizer pelo menos 960, não exatamente 960. Para estudar preços, uma pesquisa por estado dá a distribuição; nesta pesquisa sem filtro de tamanho, o preço mediano foi de 11,45 € em novo com etiquetas a 3,00 € em satisfatório:
Passo 4: abra um anúncio e veja se ainda está à venda
curl -s https://api.scavio.dev/api/v1/vinted/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "pt", "item_id": 10732511414}'data capturado em 2,0 segundos (2 das 3 fotos cortadas; o login, o id e o URL de perfil da vendedora removidos):
{
"country": "pt",
"id": 10732511414,
"url": "https://www.vinted.pt/items/10732511414-camisola-de-malha-com-perolas",
"title": "Camisola de malha com pérolas",
"description": "Camisola de malha cinza com pérolas",
"description_translated": false,
"price": 5,
"currency": "EUR",
"brand": { "id": 12, "name": "Zara" },
"size": null,
"condition": "Muito bom",
"color": "Cinzento",
"material": null,
"uploaded_relative": "há 8 minutos",
"category": {
"id": 529,
"name": "Casacos de malha",
"path": [
{ "id": 1904, "title": "Mulher", "url": "https://www.vinted.pt/catalog/1904-women" },
{ "id": 4, "title": "Roupa", "url": "https://www.vinted.pt/catalog/4-clothing" },
{ "id": 13, "title": "Camisolas e sweaters", "url": "https://www.vinted.pt/catalog/13-jumpers-and-sweaters" },
{ "id": 1917, "title": "Sweaters", "url": "https://www.vinted.pt/catalog/1917-jumpers" },
{ "id": 529, "title": "Casacos de malha", "url": "https://www.vinted.pt/catalog/529-knitted-jumpers" }
]
},
"photos": ["https://images1.vinted.net/t/05_02394_voVbyGzHbqdFuNdfVt1B778j/f800/7795a50f.webp?s=9904c0f760fa7a1f17c238a46f59b16b0e074ad8"],
"favourite_count": 1,
"is_reserved": false,
"is_sold": false,
"status_label": null,
"can_buy": true,
"instant_buy": true,
"is_hidden": false,
"seller": { "is_business": false, "feedback_count": 17, "feedback_reputation": 0.96, "badges": ["ACTIVE_LISTER"] }
}O preço da ficha é o do vendedor, na moeda dele; aqui coincide com a pesquisa porque a vendedora vende em euros. Os sites europeus da Vinted partilham anúncios entre países, por isso o anúncio de um vendedor de outro país aparece convertido para a moeda do site e a ficha mostra-o na moeda do vendedor: no mesmo dia, na vinted.se, um fato de neve polaco a 165,08 coroas na pesquisa voltou da ficha a 65 PLN. Compare preços de pesquisa com preços de pesquisa. uploaded_relative é o texto da própria Vinted, não uma data, e a ficha não traz a taxa; tire service_fee da pesquisa.
Quando um artigo é vendido ou reservado, is_sold ou is_reserved passam a true e can_buy a false. É assim que o bot sabe que pode esquecê-lo: volte a pedir a ficha e retire-o da lista. A pesquisa nunca devolve anúncios vendidos, por isso isto funciona um artigo de cada vez, não como histórico de vendas.
Passo 5: verifique o vendedor
O seller.id de uma linha de pesquisa ou de uma ficha serve para três endpoints. O exemplo é a loja profissional style.lovely (50115221):
curl -s https://api.scavio.dev/api/v1/vinted/seller \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "pt", "user_id": 50115221}'data capturado em 3,0 segundos:
{
"country": "pt",
"id": 50115221,
"login": "style.lovely",
"profile_url": "https://www.vinted.pt/member/50115221-stylelovely",
"is_business": true,
"feedback_count": 1991,
"feedback_reputation": 0.96,
"positive_feedback_count": 1911,
"neutral_feedback_count": 28,
"negative_feedback_count": 52,
"item_count": 293,
"country_code": "ES",
"country_name": "Espanha",
"city": null,
"verification": { "email": true, "facebook": false, "google": true },
"avg_response_time": null,
"is_on_holiday": false,
"last_seen_date": "2026-11-09"
}É uma loja espanhola, e a vinted.pt mostra-a porque o conjunto de anúncios é europeu. Depois, as avaliações, até 50 por página:
curl -s https://api.scavio.dev/api/v1/vinted/seller-feedback \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"country": "pt", "user_id": 50115221, "limit": 50}'data capturado (49 de 50 linhas cortadas):
{
"country": "pt",
"user_id": 50115221,
"page": 1,
"per_page": 50,
"total_results": 1991,
"total_pages": 40,
"count": 50,
"has_more": true,
"feedback": [
{ "id": 4699116537, "rating": 5, "text": "O vestido está ótimo, tal como descrito no anúncio.", "created_at": "2026-11-06T22:12:44.000Z", "is_automatic": false, "seller_reply": null }
]
}25 das 50 linhas eram avaliações automáticas da Vinted ("Valoración automática: Venta completada con éxito"), por isso filtre por is_automatic antes de resumir o que dizem os compradores; das outras 25, de 28 de setembro a 7 de novembro, 22 tinham 5 estrelas, 2 tinham 4 e 1 tinha 2. As linhas não identificam quem avaliou nem o artigo, de propósito. /seller-products com o mesmo user_id e "limit": 96 devolveu 96 dos 293 artigos da loja, de 1 € a 32 €, cada um com taxa, total e os indicadores is_sold e is_reserved.
Passo 6: transforme a pesquisa num bot de alertas
import time
import requests
KEY = "sk_live_your_key" # do painel do Scavio
BODY = {"country": "pt", "query": "casaco de malha", "category_id": 529,
"size_ids": [4], "status_ids": [2], "price_to": 10, "sort": "newest_first"}
vistos = set()
while True:
r = requests.post("https://api.scavio.dev/api/v1/vinted/search", json=BODY,
headers={"Authorization": f"Bearer {KEY}"}, timeout=60)
for item in r.json()["data"]["items"]:
if item["id"] not in vistos:
vistos.add(item["id"])
print(item["total_price"], item["currency"], item["title"], item["url"])
time.sleep(300) # uma verificação a cada 5 minutos: 288 créditos por diaA primeira execução enche vistos com os 96 anúncios atuais; a partir daí só aparecem os novos. Em vez de print, envie-os para o Discord, o Telegram ou o Slack. Instale a dependência com pip install requests==2.32.3.
Os 9 endpoints
| Endpoint | O que devolve | Créditos |
|---|---|---|
/api/v1/vinted/search | 96 anúncios por página, páginas 1 a 10, com preço, taxa Vinted, total, tamanho, estado, fotos e id do vendedor, mais os filtros aplicados | 1 |
/api/v1/vinted/product | Um anúncio por id ou URL: descrição, todas as fotos, caminho da categoria, estado de vendido e reservado, classificação do vendedor | 1 |
/api/v1/vinted/seller | O perfil público de um membro: classificação, avaliações positivas, neutras e negativas, artigos à venda, verificações | 1 |
/api/v1/vinted/seller-products | Os artigos de um membro, até 96 por página, com taxa, total e indicadores de vendido e reservado | 1 |
/api/v1/vinted/seller-feedback | Avaliações, até 50 por página, das mais recentes, com o indicador de automática e a resposta do vendedor | 1 |
/api/v1/vinted/brands | Ids de marcas com número de anúncios e os indicadores de luxo e de verificação de autenticidade | 1 |
/api/v1/vinted/suggestions | Até 10 sugestões da caixa de pesquisa, na língua do site | 1 |
/api/v1/vinted/filters | Ids de tamanho, estado, cor ou material com contagens em tempo real | 1 |
/api/v1/vinted/categories | A árvore de categorias na língua do site, ou uma subárvore | 1 |
Os erros não são cobrados: um artigo, membro ou categoria desconhecido devolve 404, e uma falha temporária 502. Todos os endpoints recebem country: pt para Portugal, fr (o valor por omissão) e os outros sites europeus, uk, us ou au. Não há pesquisa de vendidos, preço de portes nem artigos semelhantes. Para comparar todas as opções, veja as melhores APIs da Vinted em 2026.
Primeiros passos
- Registe-se em dashboard.scavio.dev/sign-up: 50 créditos grátis, sem cartão, o suficiente para 50 pedidos à Vinted.
- Copie a sua chave de API no painel.
- Envie um POST para
/api/v1/vinted/searchcom{"country": "pt", "query": "casaco de malha"}e a chave no cabeçalhoAuthorization.
Experimente a API da Vinted grátis no playground, use o SDK de Python ou chame-a a partir do Claude e de outros agentes pelo servidor MCP.
Referência: API da Vinted Portugal · pesquisa · ficha do artigo · vendedor · artigos do vendedor · avaliações · marcas · filtros · categorias · sugestões
Frequently asked questions
Como encontro o id de uma marca ou categoria da Vinted?
Chame /api/v1/vinted/brands com um nome: "salsa" devolveu a Salsa com o id 260 e 396.654 anúncios na vinted.pt a 9 de novembro de 2026. /api/v1/vinted/categories devolve a árvore com ids (Mulher > Casacos de malha é 529), e /api/v1/vinted/filters devolve os ids de estado, tamanho, cor e material com contagens em tempo real. Os ids são os mesmos nos 27 sites.
Quantos resultados devolve uma pesquisa da Vinted?
96 por página e 10 páginas, 960 no máximo. Quando total_is_capped é true há mais correspondências do que isso; estreite a pesquisa com categoria, marca, tamanho, estado ou preço e faça cada fatia em separado.
Como sei se um artigo da Vinted já foi vendido?
Um de cada vez. O /api/v1/vinted/product do Scavio devolve is_sold, is_reserved e can_buy para cada anúncio. A pesquisa só devolve anúncios ainda à venda, por isso não há uma lista de vendidos para percorrer.
O bot pode comprar ou fazer ofertas sozinho?
Não. A API devolve dados: anúncios, preços, fichas e avaliações. Não compra, não faz ofertas e não envia mensagens a vendedores. Um bot feito com ela avisa-o de anúncios novos que correspondem à sua pesquisa, e a decisão de comprar continua a ser sua, na Vinted.
Quanto custa um bot da Vinted com o Scavio?
Cada pedido custa 1 crédito, 1 dólar por 1.000 pedidos à tarifa do plano Growth de 1 dólar por 1.000 créditos. Uma pesquisa verificada a cada 5 minutos são 288 créditos por dia. Os erros, como um artigo que já não existe (404), não são cobrados, e as contas novas recebem 50 créditos grátis, sem cartão.