Dedicated ScrapersVinted Scraper API
Dedicated Vinted API

Vinted Scraper API by ScrapeBadger: Extract Vinted Data Across 27 Markets

Search listings, explore sellers and compare sold prices across 27 markets. Get structured JSON from 76 public read operations, including reviews, suggested prices, catalog filters and shipping references. No Vinted account required.

27Markets
76Public read operations
1 creditPer read operation
FreeOperation discovery

No credit card required · PAYG credits never expire

Search Vinted
import asyncio
from scrapebadger import ScrapeBadger

async def main():
    async with ScrapeBadger(api_key="YOUR_API_KEY") as client:
        results = await client.vinted.search.search(
            query="Nike Air Max", market="fr",
            price_to=50, status_ids="2", per_page=20
        )
        print(results.model_dump_json(indent=2))

asyncio.run(main())
200 OKExample response · 5 credits
{
  "items": [{
    "id": 8523449950,
    "title": "Nike Air Max 90",
    "price": { "amount": "45.00", "currency_code": "EUR" },
    "brand_title": null,
    "display_title": "Nike",
    "size_title": "42",
    "status": "Très bon état",
    "favourite_count": 34,
    "url": "https://www.vinted.fr/items/8523449950"
  }],
  "pagination": { "total_entries": 960 }
}
API Reference

Explore the Vinted API Endpoints

Search, item and seller endpoints, plus 76 public read operations through one catalog. Discover the available parameters and try each operation in the playground.

POST
/v1/vinted/search_by_image
Find similar active listings from an image URL or uploaded photo
10 cr / req
GET
/v1/vinted/search
Search catalog with brand, price, size, color, and condition filters
5 cr / req
GET
/v1/vinted/items/{id}
Listing descriptions, photos, seller info, category and attributes
10 cr / req
GET
/v1/vinted/users/{id}
Seller profile: feedback stats, location, follower and item counts
3 cr / req
GET
/v1/vinted/users/{id}/items
Browse all listings in a seller's wardrobe
3 cr / req
GET
/v1/vinted/brands
Find brand names and IDs by keyword
3 cr / req
GET
/v1/vinted/colors
All available color options with ID, name, and hex value
1 cr / req
GET
/v1/vinted/statuses
Item condition options for filtering (new, very good, good, etc.)
1 cr / req
POST
/v1/vinted/mobile/{operation}
76 public reads: sold comparables, suggested prices, reviews, feeds, filters and more
1 cr / req
GET
/v1/vinted/mobile/operations
List all 76 operations, parameter schemas and request examples
0 cr / req
GET
/v1/vinted/markets
All 27 supported Vinted markets with country codes
0 cr / req

Sold prices and suggestions

Compare samples of similar sold listings and suggested price ranges by category, brand and condition.

Sellers and discovery

Explore reviews, followers, wardrobes, related listings, homepage feeds and recommendations.

Catalog and shipping

Look up categories, filters, ISBN metadata, package sizes, shipping references and help articles.

Sold comparables are samples, not a complete sales history. Displayed prices may differ from final negotiated prices. Browse all 76 operations →

Response Schema

Every Field You Need, Ready to Use

Search and detail endpoints use these normalized fields. Labels can be localized and unavailable fields remain null. Read operations preserve their complete upstream JSON inside data.

Item Listing

idintegerUnique item identifier
titlestringListing title as entered by seller
brand_titlestring | nullBrand when supplied; not inferred from display labels
display_titlestring | nullOriginal listing presentation label
price.amountstringPrice as decimal string
price.currency_codestringISO 4217 currency (EUR, GBP, etc.)
size_titlestringSize label in local format
statusstringCondition (New with tags, Very good…)
descriptionstringFull item description text
favourite_countintegerNumber of times item was favourited
catalog_idinteger | nullCategory ID on item details
photosarrayPhoto objects with URLs and dimensions
is_reservedbooleanWhether item is reserved

Seller Profile

idintegerUnique seller identifier
loginstringSeller username
feedback_reputationfloatRating score 0-5
positive_feedback_countintegerTotal positive reviews
citystringSeller city
country_codestring | nullSeller country code
item_countintegerActive listings in wardrobe
last_loged_on_tsstring | nullLast active timestamp, when available
followers_countintegerNumber of followers
businessbooleanWhether seller is a business account
photo_urlstringProfile photo CDN URL
Coverage

All 27 Vinted Markets

Choose the market for regional inventory, local currency, translated condition labels and shipping references. Listing visibility and available data vary by market.

🇫🇷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
🇺🇸US
🇦🇺AU
Cross-market analysis: Send a separate request for each market to compare listings and prices. Results retain their original currency; convert currencies in your analysis when needed. Market does not restrict every listing to sellers physically located in that country.
How it works

From API call to structured JSON

No proxy setup. No session management. No anti-bot configuration.

1

Send a request

Call any Vinted endpoint with your API key and parameters: query, market, price range, condition, or item ID. REST or SDK.

2

We handle the hard parts

ScrapeBadger manages app API authentication and the requested market, with pooled connections for repeated requests.

3

Get structured JSON

Receive normalized JSON with typed fields, direct photo CDN links, and currency codes, ready to store, analyse, or pipe into your application.

Use Cases

What Developers Build with Vinted Data

Scraping Vinted gives you real-time peer-to-peer marketplace signals unavailable from retail datasets: brand activity, sold comparables, and cross-market price differences.

Resale price intelligence

Track secondhand market prices for specific brands, sizes, and conditions across multiple Vinted country sites. Use sold comparables and suggested prices to inform resale pricing.

Brand trend monitoring

Monitor which brands have the most listings, favourite counts, and changing price ranges. Track repeated snapshots to spot shifts in marketplace activity.

Inventory sourcing tools

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.

Seller research

Analyse top Vinted sellers by market: listing volume, feedback score, average price points, and category focus. Useful for competitive research and partnership discovery.

AI training datasets

Collect structured fashion data (item descriptions, condition labels, brand associations, and photo URLs) for training fashion classification models or recommendation engines.

Cross-market comparison

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.

Pricing

Pay Per Request. Credits Never Expire.

You only pay for successful responses. Failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.

EndpointCredits / requestPAYGSubscription
Search by Image /search_by_image10 credits——
Search Items /search5 credits——
Item Details /items/{id}10 credits——
User Profile /users/{id}3 credits——
User Items /users/{id}/items3 credits——
Search Brands /brands3 credits——
List Colors /colors1 credit——
List Conditions /statuses1 credit——
Read Operation /mobile/{operation}1 credit——
Discover Operations /mobile/operationsFree——
List Markets /marketsFree——

See the full plan comparison on the pricing page, subscription tiers step down per-credit cost beyond the cheapest column shown above.

Free trial
1,000 credits free
= 1,000 one-credit read operations
Credits expire
Never
Buy once, use anytime
Failed requests
Always free
Pay for success only
Live cost estimator
Credits per request1
Total credits needed1,000
Loading plans…
Why ScrapeBadger

Built for Reliability at Scale

Explore public Vinted data through a single API, with managed authentication and market routing.

Prices for your market

Choose a market to retrieve regional inventory, local currency and translated labels. Compare countries with a separate request for each market.

No Vinted account required

Read public listings, seller information and reference data with your ScrapeBadger API key. Authentication and connection management are handled for you.

Sold comparables and suggestions

Get samples of similar sold listings and suggested price ranges by category, brand and condition. Sold samples are not a complete sales history or guaranteed final settlement prices.

Structured JSON

Use normalized search and detail endpoints or explore the complete data returned by 76 public read operations. No HTML parsing required.

Pay per success only

Each successful read operation costs one credit. Discovering operations is free. Existing search and detail endpoints retain their listed prices; failed requests are free.

SDKs, CLI and MCP

Use SDKs for 12 languages, the CLI, or MCP tools. The playground includes parameter forms and request examples for every public operation.

Code Examples

Simple Integration. Any Language.

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.

Python: Search + Detail
import asyncio
from scrapebadger import ScrapeBadger

async def main():
    async with ScrapeBadger(api_key="YOUR_API_KEY") as client:
        results = await client.vinted.search.search(
            query="Nike", market="de", price_to=60,
            per_page=20
        )
        for item in results.items[:3]:
            detail = await client.vinted.items.get(
                item.id, market="de"
            )
            if detail.item:
                print(detail.item.title, detail.item.price.amount)

asyncio.run(main())
Node.js: Sold Comparables
import { ScrapeBadger } from 'scrapebadger'

const client = new ScrapeBadger({ apiKey: 'YOUR_API_KEY' })

const result = await client.vinted.readVintedMobileData(
  'sold-comparables',
  {
    market: 'fr',
    parameters: {
      catalog_id: '1242',
      brand_id: '53',
      status_id: '2'
    }
  }
)

console.log(result.data.items)
FAQ

Frequently Asked Questions

Common questions about scraping Vinted with the API, Python, Node.js, or REST.

What data does the Vinted Scraper API return?

Search listings by text or image, item descriptions and photos, seller profiles and wardrobes, reviews, followers, sold comparables, suggested prices, related listings, catalog filters, shipping references and help articles. The 76-operation catalog includes parameter schemas and examples. Fields depend on the endpoint and upstream availability; unavailable normalized fields remain null.

Which Vinted markets are supported?

Choose from 27 market codes: 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, US and AU. Market selects regional inventory, currency and labels. Availability varies by market and listing.

How does the Vinted Scraper API handle anti-bot protection?

ScrapeBadger reads the JSON APIs used by the Vinted app and manages anonymous authentication and country routing. You need a ScrapeBadger API key, but no Vinted account, browser session or proxy setup.

What is the pricing for the Vinted Scraper API?

Each successful /mobile/{operation} read costs 1 credit; /mobile/operations discovery is free. Image search costs 10 credits, text search 5, item details 10, seller profiles and wardrobes 3, brands 3, and colors and conditions 1. Listing markets is free. Failed requests are free. The pricing table shows current PAYG and subscription rates.

What output format does the Vinted API return?

All endpoints return JSON. Search and detail endpoints use normalized schemas; public read operations return operation, market and upstream JSON in data. Prices retain their original currency code, labels can be localized, and unavailable fields remain null.

Can I search Vinted with a photo?

Yes. POST /v1/vinted/search_by_image with an image_url or image_base64 to find visually similar active listings. The playground also accepts local files. JPEG, PNG and WebP up to 5 MiB are supported. Choose a market and filter by price, brand, category or condition. A successful request costs 10 credits. Results include prices, photos and listing URLs, plus a similarity_score per item on the calls where Vinted returns a ranking. That score is Vinted’s own, on an unbounded scale it changes without notice, so use it to rank items inside one response rather than against a fixed cut-off.

Can I search and filter Vinted listings by category, brand, and condition?

Yes. Search supports query, catalog_ids, brand_ids, size_ids, material_ids, status_ids, color_ids, price_from, price_to, seller_country, page, per_page and order. Reuse pagination time and search_session_id across pages, and deduplicate by item ID.

How do I scrape Vinted with Python?

Install scrapebadger 0.46.0 or later. Use the async ScrapeBadger client: await client.vinted.search.search(query="Nike", market="fr"), or await client.vinted.read_vinted_mobile_data("sold-comparables", payload={"market":"fr","parameters":{"catalog_id":"1242","brand_id":"53","status_id":"2"}}). See the runnable examples below.

Is there a free trial for the Vinted Scraper API?

Yes. New accounts receive 1,000 free credits without a credit card. That covers 1,000 one-credit read operations, 200 search requests or 100 item detail requests.

Plans & subscriptions

Bigger volume? Save up to 64%

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 27 markets) included on every plan.

Get started

Start Scraping Vinted Today

1,000 free credits. No credit card. Get your API key in under a minute.

PAYG credits never expire · Pay only for successful requests · 27 markets included