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 · PAYG 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.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
| 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. PAYG pricing is $0.15 per 1,000 credits (PAYG credits never expire); monthly subscriptions bring that down to as low as $0.054 per 1,000 on the Scale plan. 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.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All Vinted endpoints — search, listings, profiles, brands across 26 markets — included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · 26 markets included