Vinted
Vinted Search API
Search second-hand listings on any of 27 Vinted country sites by keywords, category, brand, condition, size, color, material and price range, sorted by relevance, newest or price. 96 items per page, pages 1-10 (Vinted serves no deeper). Each item has its id, title, URL, price and currency (the country site's currency), price_with_discount, service_fee (the Vinted fee the buyer pays on top, formerly the Buyer Protection fee), total_price, brand, size, condition, favourite count, promoted flag, photos and the seller's id and business flag. Also returns listed_results, total_pages and total_is_capped, and the filters Vinted actually applied, so an ignored filter is visible. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsoncountryenum<string>default:frThe Vinted country site. Category, condition and filter names come back in the site's language. The EU sites share one cross-border listing pool, and every site can show listings from sellers in other countries, priced in the site's currency.
Example: uk
fr— France (vinted.fr), EUR. The default.be— Belgium (vinted.be), EUR.lu— Luxembourg (vinted.lu), EUR.es— Spain (vinted.es), EUR.nl— Netherlands (vinted.nl), EUR.lt— Lithuania (vinted.lt), EUR.de— Germany (vinted.de), EUR.at— Austria (vinted.at), EUR.it— Italy (vinted.it), EUR.uk— United Kingdom (vinted.co.uk), GBP.pt— Portugal (vinted.pt), EUR.us— United States (vinted.com), USD.cz— Czech Republic (vinted.cz), CZK.sk— Slovakia (vinted.sk), EUR.pl— Poland (vinted.pl), PLN.se— Sweden (vinted.se), SEK.ro— Romania (vinted.ro), RON.hu— Hungary (vinted.hu), HUF.dk— Denmark (vinted.dk), DKK.fi— Finland (vinted.fi), EUR.hr— Croatia (vinted.hr), EUR.gr— Greece (vinted.gr), EUR.ie— Ireland (vinted.ie), EUR.ee— Estonia (vinted.ee), EUR.lv— Latvia (vinted.lv), EUR.si— Slovenia (vinted.si), EUR.au— Australia (vinted.com.au), AUD.
querystringSearch keywords, up to 200 characters. Optional when category_id or brand_ids is given (browse a category or brand).
Example: barbour jacket
category_idintegerOnly this category and its subcategories, by id from /api/v1/vinted/categories (1907 is Women > Clothing > Outerwear > Coats).
Example: 1907
brand_idsinteger[]Only these brands, by id from /api/v1/vinted/brands (Nike 53, Levi's 10, Barbour 46805). Array or comma-separated, up to 20.
Example: [46805]
status_idsinteger[]Only these conditions: 6 New with tags, 1 New without tags, 2 Very good, 3 Good, 4 Satisfactory. Array or comma-separated.
Example: [6, 1]
size_idsinteger[]Only these sizes, by option id from /api/v1/vinted/filters with filter size (4 is women's M / UK 12-14 / US 8-10).
Example: [4]
color_idsinteger[]Only these colors, by option id from /api/v1/vinted/filters with filter color (1 is black).
Example: [1]
material_idsinteger[]Only these materials, by option id from /api/v1/vinted/filters with filter material (123 is cashmere).
Example: [123]
price_fromnumberMinimum item price, in the country site's currency.
Example: 20
price_tonumberMaximum item price, in the country site's currency. Must not be below price_from.
Example: 80
sortstringrelevance (default), newest_first, price_low_to_high or price_high_to_low. Price sorts also rank loosely matching items (very cheap or placeholder-priced listings), so pair them with a category or a price range.
pageintegerResults page, 1-10. Vinted serves at most 10 pages of 96. Defaults to 1.
Example: 1
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.vinted.search(country="uk", query="barbour jacket", sort="newest_first")["data"]
print(res["count"], "items, page", res["page"], "of", res["total_pages"])
for item in res["items"]:
print(item["id"], item["title"], item["price"], item["currency"],
"with the Vinted fee", item["total_price"], item["condition"])Response