Vinted APIvinted.fr ↗
Search Vinted.fr listings and retrieve price statistics via 2 endpoints. Filter by price range, sort order, and keyword. Returns per-item fees, seller info, and aggregates.
What is the Vinted API?
The Vinted.fr API exposes 2 endpoints for querying secondhand product listings on the French Vinted marketplace. The search_items endpoint returns full listing data — including base price, service fee, total price, brand, size, seller info, and photo URL — with filters for keyword, price range, sort order, and pagination. A companion get_price_stats endpoint aggregates up to 96 listings into min, max, median, and average price statistics for market valuation.
curl -X GET 'https://api.parse.bot/scraper/36af9f94-6ab8-4b56-bd31-20dd8a02f0eb/search_items?page=1&order=relevance&query=jacket&per_page=5&price_to=500&price_from=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Full-text search over Vinted product listings. query matches title and description; order controls result sorting; price_from/price_to narrow by price range. Paginates via page number. Each item includes pricing breakdown (base price, service fee, total), seller info, photo URL, and engagement metrics (favourites, views). An empty query returns trending/popular items.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based) |
| order | string | Sort order for results |
| query | string | Search keyword to match against listing titles and descriptions |
| per_page | integer | Number of results per page, between 1 and 96 |
| price_to | number | Maximum price filter in EUR |
| price_from | number | Minimum price filter in EUR |
{
"type": "object",
"fields": {
"items": "array of Item objects with id, title, price, currency, total_price, service_fee, brand, size, url, photo_url, favourite_count, view_count, status, is_promoted, and seller info",
"per_page": "integer, items per page",
"total_pages": "integer, total number of pages",
"current_page": "integer, current page number",
"total_entries": "integer, total number of matching items"
},
"sample": {
"data": {
"items": [
{
"id": 9142371160,
"url": "https://www.vinted.fr/items/9142371160-ralph-lauren-track-bomber-jacket",
"size": "S",
"brand": "Ralph Lauren",
"price": "39.95",
"title": "Ralph Lauren Track Bomber Jacket",
"seller": {
"id": 3134280212,
"login": "lavintage_es",
"profile_url": "https://www.vinted.fr/member/3134280212-lavintagees"
},
"status": "Très bon état",
"currency": "EUR",
"photo_url": "https://images1.vinted.net/t/05_0179e_QEcoyLFSmw5ZUYpgDAdnSXoJ/f800/1781123612.webp",
"view_count": 0,
"is_promoted": true,
"service_fee": "2.7",
"total_price": "42.65",
"favourite_count": 15
}
],
"per_page": 5,
"total_pages": 192,
"current_page": 1,
"total_entries": 960
},
"status": "success"
}
}About the Vinted API
Search Listings
The search_items endpoint accepts a query string matched against listing titles and descriptions on Vinted.fr. Results can be sorted via the order parameter and narrowed by price_from and price_to (both in EUR). Pagination is controlled by page (1-based) and per_page (1–96 results per page). Each item in the response includes id, title, price, currency, total_price, service_fee, brand, size, url, photo_url, and favourite_count. The response also exposes total_entries and total_pages so callers can iterate the full result set.
Price Statistics
The get_price_stats endpoint runs the same keyword and price-range filters as search_items but returns aggregate statistics computed over the sample. The per_page parameter (1–96) controls the sample size — larger values produce more accurate averages. The response includes average_price, median_price, min_price, max_price, and sample_size, alongside the raw items array and a total_listings count reflecting the full match volume on Vinted. Currency is always EUR.
Pricing Breakdown
Both endpoints surface Vinted's three-part pricing model: price (the seller's listed price), service_fee (the buyer protection fee Vinted charges), and total_price (what a buyer actually pays). This breakdown is useful when comparing true acquisition cost across listings rather than just seller-set prices.
The Vinted API is a managed, monitored endpoint for vinted.fr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vinted.fr changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official vinted.fr API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Estimate resale value of a specific item by querying
get_price_statswith a model name and reviewingmedian_priceandaverage_price - Build a price-drop alert tool by polling
search_itemswithprice_toand trackingtotal_pricechanges across pages - Aggregate secondhand market pricing for trading cards or collectibles using
get_price_statswith targetedquerystrings - Populate a comparison shopping interface with Vinted listings including
brand,size,service_fee, andphoto_url - Monitor listing volume trends by recording
total_entriesfromsearch_itemsover time for a given search query - Identify the cheapest available listings for a specific brand and size by combining
price_from/price_tofilters withordersorting
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Vinted have an official public developer API?+
What does the `get_price_stats` endpoint actually compute, and how accurate are the statistics?+
average_price, median_price, min_price, and max_price from a sample of active listings matching your query and price filters. The sample_size field tells you how many listings were used. Setting per_page to 96 gives the largest possible sample; smaller values produce less reliable aggregates. total_listings shows the full match count on Vinted even when the sample is smaller.Is listing data scoped to Vinted.fr specifically, or does it cover other Vinted country domains?+
Can I retrieve seller profile details or individual listing condition beyond what `search_items` returns?+
search_items response includes seller info embedded in each item object along with brand, size, favourite_count, and pricing fields. It does not currently expose a dedicated seller profile endpoint or granular condition grades. You can fork the API on Parse and revise it to add an endpoint targeting individual listing or seller detail pages.How does pagination work for large result sets?+
search_items response returns current_page, total_pages, and total_entries. Increment the page parameter (1-based) and keep per_page consistent across requests to walk through the full result set. Note that per_page is capped at 96, matching Vinted's own per-page limit.