Vinted APIvinted.co.uk ↗
Access Vinted UK marketplace data via API. Search listings, get item details, compare prices, and browse categories across second-hand fashion and more.
What is the Vinted API?
The Vinted UK API provides 5 endpoints for querying live second-hand marketplace listings on vinted.co.uk. Use search_listings to query items by keyword and filter by category, returning fields like price_gbp, condition, brand, and image_url. You can also retrieve individual listing details, pull a fast price summary for any search term, and run batch searches across multiple keywords in a single request.
curl -X GET 'https://api.parse.bot/scraper/4134c107-4d58-43bb-bf6d-24a642f27b69/search_listings?page=1&category_id=1904&search_text=nike+shoes' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace vinted-co-uk-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
Vinted UK API - Search and browse second-hand listings
Demonstrates searching listings, fetching details, checking prices,
browsing categories, and batch searching on the Vinted UK marketplace.
"""
from parse_apis.vinted_uk_api import VintedUK, ListingSummary, Listing, Category, BatchSearchResult, ListingNotFound
client = VintedUK()
# Search for nike shoes - limit caps total items fetched
for item in client.listings.search(search_text="nike shoes", limit=5):
print(item.title, item.price_gbp, item.condition, item.like_count)
# Drill down: get full details from the first search result
first_item = client.listings.search(search_text="camera", limit=1).first()
if first_item:
detail = first_item.details()
print(detail.title, detail.brand, detail.price, detail.category, detail.availability)
# Fetch a listing directly by ID with typed error handling
try:
listing = client.listings.get(item_id="9151806478")
print(listing.title, listing.description, listing.price, listing.currency)
except ListingNotFound as exc:
print(f"Listing not found: {exc}")
# Quick price comparison for a search term
for price in client.listings.get_prices(search_text="levi jeans", limit=10):
print(price)
# Browse available top-level categories
for category in client.listings.list_categories(limit=10):
print(category.id, category.name)
# Batch search across multiple keywords at once
batch = client.batchsearchresults.search_batch(keywords='["nike", "adidas"]')
print(batch.results)
print("exercised: search / get / details / get_prices / list_categories / search_batch")
Full-text search over Vinted UK product listings. Returns paginated results with item summaries including price, brand, condition, and image. Each page returns up to ~96 items. Filtering by category_id narrows results to a specific product category (use get_categories for valid IDs).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| category_id | integer | Category ID to filter results. Accepted values include 1904 (Women), 5 (Men), 1194 (Electronics), 3054 (Cameras). Use get_categories to retrieve valid IDs. |
| search_textrequired | string | Search keyword (e.g. 'nike shoes', 'levi jeans'). |
{
"type": "object",
"fields": {
"page": "integer current page number",
"items": "array of listing summary objects with id, title, brand, price_gbp, currency, url, image_url, condition, like_count",
"total": "integer total number of items returned on this page"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"id": 9134604641,
"url": "https://www.vinted.co.uk/items/9134604641-toddler-nike-dunks",
"brand": "Nike",
"title": "Toddler Nike dunks",
"currency": "GBP",
"condition": "Very good",
"image_url": "https://images1.vinted.net/t/06_01ca6_vh9GyTWd1NhaBW7CJe3g4sBE/f800/1781054211.webp?s=0875e4a0df1ababd48a89e2a19f079e03eac2da6",
"price_gbp": "15.13",
"like_count": 18
}
],
"total": 96
},
"status": "success"
}
}About the Vinted API
Search and Filter Listings
search_listings accepts a required search_text parameter plus optional category_id and page inputs. Results come back as an array of item objects including id, title, brand, price_gbp, currency, url, image_url, condition, and like_count, along with a total count for the current page. Use get_categories first to retrieve valid category_id values — it returns an array of objects with integer id and name, covering Vinted's main taxonomy.
Listing Detail and Price Intelligence
get_listing_detail takes a numeric item_id (obtainable from search_listings results) and returns a fuller record: title, description, brand, color, price, currency, condition, category (as a path string), url, and image_url. For quick market scans, get_search_prices accepts a single search_text keyword and returns an array of price strings in 'amount currency' format (e.g. '18.74 GBP') covering the first 10 matching results — useful for fast competitive benchmarking without fetching full listing objects.
Batch Keyword Search
search_by_keyword_list accepts a JSON-encoded array of search terms via the keywords parameter. It returns a results object keyed by each keyword, with each value being an array of matching items containing id, title, brand, price_gbp, and url. This avoids making separate calls when monitoring multiple search terms simultaneously.
Coverage Notes
All endpoints target the Vinted UK storefront (vinted.co.uk) and prices are denominated in GBP. Pagination is supported on search_listings via the page parameter. Seller profile data, buyer/seller messaging, and transaction history are not part of the current endpoint set.
The Vinted API is a managed, monitored endpoint for vinted.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vinted.co.uk 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.co.uk 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?+
- Track resale prices for specific brands (e.g. Nike, Levi's) using
get_search_pricesto monitorprice_gbptrends over time - Build a price comparison tool that queries multiple clothing keywords in one call via
search_by_keyword_list - Aggregate second-hand inventory data by category using
get_categoriesIDs withsearch_listingsfilters - Enrich a listing database by fetching
color,condition, andcategorypath fromget_listing_detailusing IDs from search results - Monitor
like_counton search result items to identify high-demand second-hand products - Feed a deal-alert system by polling
search_listingsfor a keyword and flagging items below a targetprice_gbp - Catalogue available Vinted UK category taxonomy for mapping to an internal product classification system
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. 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 `get_listing_detail` return beyond what appears in search results?+
search_listings returns a concise item object with fields like title, brand, price_gbp, condition, and image_url. get_listing_detail adds color, a full category path string, and the raw price number (separate from the GBP-labelled field), giving you the structured record for a single item in one call.Does the API cover Vinted marketplaces outside the UK, such as vinted.fr or vinted.de?+
How does pagination work in `search_listings`, and are there limits on how many items are returned?+
page parameter on search_listings is an optional integer that steps through result pages. The total field in each response reflects the count of items returned on that page, not the overall catalogue count. There is no per_page parameter exposed, so page size is determined by Vinted's default result set.