The fastest way to start scraping Vinted at scale. Our Vinted API returns structured JSON for listings, seller profiles, and brand data across all 26 country sites โ with anti-bot bypass and country-matched proxies built in.
No credit card required ยท Credits never expire
# Search Nike shoes in France, under โฌ50
import scrapebadger
client = scrapebadger.ScrapeBadger("sb_live_...")
results = client.vinted.search(
query="Nike Air Max",
market="fr",
price_to=50,
condition="very_good",
per_page=20
){
"items": [{
"id": 8523449950,
"title": "Nike Air Max 90",
"price": { "amount": "45.00", "currency": "EUR" },
"brand": "Nike",
"size": "42",
"condition": "Very good",
"favourites": 34,
"seller": { "username": "marie_style" }
}],
"pagination": { "total_entries": 960 }
}Structured JSON responses with normalized data models. No HTML parsing. No proxy management.
/v1/vinted/search/v1/vinted/items/{id}/v1/vinted/users/{id}/v1/vinted/users/{id}/items/v1/vinted/brands/v1/vinted/colors/v1/vinted/statuses/v1/vinted/marketsAll fields are normalized across markets. Prices always include currency code. Conditions are standardized regardless of local language.
idintegerUnique item identifiertitlestringListing title as entered by sellerbrand_titlestringBrand name, normalizedprice.amountstringPrice as decimal stringprice.currency_codestringISO 4217 currency (EUR, GBP, etc.)size_titlestringSize label in local formatstatusstringCondition (New with tags, Very goodโฆ)descriptionstringFull item description textfavourite_countintegerNumber of times item was favouritedcategory_titlestringCategory and subcategory pathphotosarrayDirect CDN photo URLs (up to 20)is_reservedbooleanWhether item is reservedshipping_optionsarrayCarrier options for this marketidintegerUnique seller identifierloginstringSeller usernamefeedback_reputationfloatRating score 0โ5positive_feedback_countintegerTotal positive reviewscitystringSeller citycountry_titlestringSeller countryitem_countintegerActive listings in wardrobecreated_atdatetimeMember since date (ISO 8601)last_loged_ondatetimeLast active timestampbundle_discountobjectBundle discount tiers if setis_probooleanWhether seller is a pro accountphoto_urlstringProfile photo CDN URLEach market routes through a country-matched residential proxy. Results include local currency, language-specific condition labels, and country shipping options.
No proxy setup. No session management. No anti-bot configuration.
Call any Vinted endpoint with your API key and parameters โ query, market, price range, condition, or item ID. REST or SDK.
ScrapeBadger routes the request through a country-matched residential proxy, manages Vinted sessions, and handles any anti-bot challenges automatically.
Receive normalized JSON with typed fields, direct photo CDN links, and currency codes โ ready to store, analyse, or pipe into your application.
Scraping Vinted gives you real-time peer-to-peer marketplace signals unavailable from retail datasets โ brand momentum, actual resale prices, and cross-market demand gaps.
Track secondhand market prices for specific brands, sizes, and conditions across multiple Vinted country sites. Identify where prices are highest and which items sell fastest.
Monitor which brands have the most listings, highest favourite counts, and fastest sell-through rates. Use brand endpoint data to spot emerging demand before it hits retail.
Build tools that scan Vinted for undervalued listings matching specific criteria. Alert when items matching your keywords appear below a price threshold in a target market.
Analyse top Vinted sellers by market โ listing volume, feedback score, average price points, and category focus. Useful for competitive research and partnership discovery.
Collect structured fashion data โ item descriptions, condition labels, brand associations, and photo URLs โ for training fashion classification models or recommendation engines.
Compare the same brand or category across vinted.fr, vinted.de, and vinted.co.uk to understand pricing differences, demand levels, and supply gaps between European markets.
No subscriptions. No monthly minimums. You only pay for successful responses โ failed requests are always free.
| Endpoint | Credits / request | Starter ($0.10/1K cr) | Professional ($0.06/1K cr) | Enterprise ($0.05/1K cr) |
|---|---|---|---|---|
Search /search | 5 credits | $0.50 / 1K | $0.30 / 1K | $0.25 / 1K |
Item detail /items/{id} | 10 credits | $1.00 / 1K | $0.60 / 1K | $0.50 / 1K |
User profile /users/{id} | 3 credits | $0.30 / 1K | $0.18 / 1K | $0.15 / 1K |
User items /users/{id}/items | 5 credits | $0.50 / 1K | $0.30 / 1K | $0.25 / 1K |
| Brands / reference data | 0โ3 credits | From free (markets) to $0.30 / 1K (brands) | ||
ScrapeBadger's Vinted Scraper API handles everything Vinted throws at automated requests โ so your pipeline keeps running.
Every Vinted market is accessed through a residential proxy in that country. French listings come through a French IP, German listings through a German IP. Results include correct local currency, language, and shipping options.
Vinted requires active sessions to return full listing data. ScrapeBadger manages cookie state, session tokens, and request timing automatically on every API call.
Vinted uses Cloudflare and behavioral bot detection. ScrapeBadger bypasses both without any configuration on your end โ no CAPTCHA solving, no fingerprint management needed.
Responses are normalized typed JSON โ no HTML to parse, no XPath selectors, no fragile CSS selectors that break when Vinted updates its frontend.
Credits are only deducted for successful responses. If Vinted returns an error or the request times out, no credits are consumed. You only pay for data you actually receive.
Official typed SDKs for Python and Node.js/TypeScript. Or use the REST API directly with any language. Full documentation with working code examples for every endpoint.
Get started in minutes with Python, Node.js, or plain HTTP requests.
The scrapebadger Python library wraps the Vinted API with typed methods. Install with pip install scrapebadger, then start scraping Vinted in a few lines of code.
from scrapebadger import ScrapeBadger
client = ScrapeBadger("sb_live_...")
# Search Nike items in Germany under โฌ60
results = client.vinted.search(
query="Nike",
market="de",
price_to=60,
per_page=20
)
# Get full details for first item
for item in results.items[:3]:
detail = client.vinted.item(
item_id=item.id,
market="de"
)
print(detail.title, detail.price.amount)import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
// Get all items from a seller
const wardrobe = await client.vinted.userItems({
userId: 4841203,
market: 'fr',
per_page: 50
})
console.log(`${wardrobe.pagination.total_entries} items`)
for (const item of wardrobe.items) {
console.log(item.title, item.price.amount)
}Common questions about scraping Vinted with the API โ Python, Node.js, or REST.
Item listing endpoints return title, brand, category, size, condition, price with currency, description, photos (CDN URLs), favourites count, shipping options, and item status. Seller profile endpoints additionally return username, feedback score, positive review count, city, country, item count, member-since date, bundle discount settings, and pro seller status.
All 26 active Vinted markets: FR, DE, GB, ES, IT, NL, BE, PT, PL, CZ, AT, SK, HU, RO, LU, LT, LV, EE, FI, DK, SE, GR, IE, SI, HR, and US. Each market uses a country-matched residential proxy so results include the correct local currency, language-specific condition labels, and market-appropriate shipping options.
Vinted uses Cloudflare and session-based bot detection. ScrapeBadger handles both automatically โ you never configure proxies, manage cookies, or solve CAPTCHAs. Every request is routed through a country-matched residential IP, with automatic session management that mimics normal browser behaviour. Anti-bot bypass methods are continuously updated as Vinted changes its protections.
Search requests cost 5 credits. Item detail costs 10 credits. User profile and brand lookups cost 3 credits. Reference data (colors, conditions) costs 0โ1 credit. Credits start from $0.10 per 1,000 on Starter down to $0.05 per 1,000 on Enterprise. No subscriptions. Credits never expire. Failed requests are always free.
All endpoints return structured JSON with typed, normalized fields. No HTML parsing required. Prices are normalized with currency codes, conditions are standardized across markets (e.g., "Very good" in English regardless of the Vinted country site), and photo URLs are direct CDN links ready for download.
Yes. The /v1/vinted/search endpoint supports query (keyword), brand_ids, price_from / price_to, size_ids, status_ids, color_ids, per_page / page, and order (sort by relevance, newest, or price). Use /brands, /statuses, and /colors to look up the valid IDs.
Install with `pip install scrapebadger`, then initialise the client and call client.vinted.search(query="Nike", market="fr"), client.vinted.item(item_id=123, market="fr"), or client.vinted.user(user_id=456, market="de"). The SDK returns typed dataclasses โ prices include .amount and .currency_code, pagination includes .total_entries.
Yes. Every new account receives 1,000 free credits on signup โ no credit card required. That's enough for 200 Vinted search requests or 100 item detail lookups. Credits never expire, so you can test at your own pace.
1,000 free credits. No credit card. No subscriptions. Get your API key in under a minute.
Credits never expire ยท Pay only for successful requests ยท 26 markets included