Vinted APIvinted.fi ↗
Access Vinted.fi secondhand marketplace data: search listings by keyword and filters, retrieve full item details, and fetch user profile and wardrobe info.
What is the Vinted API?
The Vinted.fi API provides 3 endpoints to query the Finnish Vinted secondhand marketplace, covering listing search, full item detail pages, and seller profile data. The search_listings endpoint accepts keyword queries, price range filters, category IDs, and sort orders, returning paginated arrays of items with price, size, condition, and thumbnail. The get_listing_details and get_user_profile endpoints expose deeper fields including brand, seller identity, images, follower counts, and recent activity.
curl -X GET 'https://api.parse.bot/scraper/2a3df212-cb44-4b61-b5fa-1e7ac9d4001b/search_listings?page=1&order=relevance&query=nike&price_to=50&price_from=10&catalog_ids=1206' \ -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-fi-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.
"""Walkthrough: Vinted.fi marketplace — search listings, get details, check sellers."""
from parse_apis.vinted.fi_api import Vinted, Sort, ResourceNotFound
client = Vinted()
# Search for Nike items sorted by lowest price, capped at 5 results
for item in client.listingsummaries.search(query="nike", order=Sort.PRICE_LOW_TO_HIGH, limit=5):
print(item.title, item.price, item.size)
# Drill into the first result for full details
listing_summary = client.listingsummaries.search(query="adidas", limit=1).first()
if listing_summary:
listing = listing_summary.details()
print(listing.title, listing.price, listing.currency)
print(listing.brand, listing.condition)
for img in listing.images[:2]:
print(img)
# Check the seller's profile via the nested Seller resource
seller = listing.seller
profile = seller.profile()
print(profile.username, profile.location, profile.followers, profile.reviews)
# Typed error handling: catch ResourceNotFound for a bad user ID
try:
client.userprofiles.get(user_id_or_url="9999999999999")
except ResourceNotFound as exc:
print(f"User not found: {exc}")
print("exercised: listingsummaries.search / details / seller.profile / userprofiles.get")
Search for product listings on Vinted.fi by keyword and optional filters. Returns paginated results from the catalog page. Results include item ID, title, price, size, condition, thumbnail URL, and link.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| order | string | Sort order for results. |
| query | string | Search keyword (e.g. 'nike', 'adidas takki') |
| price_to | number | Maximum price filter in EUR. |
| price_from | number | Minimum price filter in EUR. |
| catalog_ids | string | Catalog/category IDs to filter by (e.g. '1206' for outerwear/jackets). |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"items": "array of listing objects, each containing id, url, thumbnail, title, price, size, and condition",
"query": "string or null, the search query used"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"id": "8994399495",
"url": "https://www.vinted.fi/items/8994399495-chlopiece-niebieskie-buciki-nike-w-rozmiarze-21?referrer=catalog",
"size": "21",
"price": "10.47",
"title": "Chłopięce niebieskie buciki Nike w rozmiarze 21",
"condition": "Erittäin hyvä",
"thumbnail": "https://images1.vinted.net/t/06_013dc_CXjm4sJQfUFFtwtgfGpG5dHC/310x430/1779628199.webp?s=34307ac58c7ffe9ce93239e1447e4ac3917c698b"
}
],
"query": "nike"
},
"status": "success"
}
}About the Vinted API
Listing Search
The search_listings endpoint queries the Vinted.fi catalog and returns paginated results. Each item in the items array includes id, url, thumbnail, title, price, size, and condition. You can narrow results using price_from and price_to (in EUR), catalog_ids for category filtering (for example, 1206 targets outerwear/jackets), and order for sorting by relevance, newest_first, price_low_to_high, or price_high_to_low. The query parameter accepts Finnish-language terms as well as brand names.
Listing Details
The get_listing_details endpoint accepts either a numeric item ID or a full Vinted.fi item URL via the item_id_or_url parameter. It returns a richer field set: brand, description (seller-written text), images (array of full-resolution URLs), condition, currency, and a seller object with username, id, and url. This is the endpoint to use when you need the full item description or want to resolve a seller identity from a search result.
User Profiles
The get_user_profile endpoint takes a numeric user ID or a Vinted member URL. It returns username, location, followers, following, last_active, and reviews counts. The listings array contains the user's current wardrobe items, each with id, title, price, currency, brand, size, status, url, and thumbnail — useful for monitoring a specific seller's active inventory or comparing wardrobe composition across users.
The Vinted API is a managed, monitored endpoint for vinted.fi — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vinted.fi 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.fi 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 price trends for specific brands by querying
search_listingswith brand keywords andprice_from/price_tofilters over time - Build a wardrobe monitoring tool that polls
get_user_profilefor new listings in a seller's active inventory - Aggregate full item descriptions and multi-image arrays from
get_listing_detailsto train secondhand clothing classifiers - Compare seller reputation across profiles using
followers,reviews, andlast_activefields - Filter Finnish-language listings by category via
catalog_idsto build niche category feeds (e.g. jackets, shoes) - Cross-reference listing prices from search results with full item details to flag underpriced items by condition and brand
- Compile seller contact points and profile URLs for reseller research using the
sellerobject returned in item detail responses
| 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_details` return beyond what search results include?+
id, title, price, size, condition, and thumbnail. The get_listing_details endpoint adds brand, description (the seller's full written text), an images array of full-resolution URLs, currency, and a structured seller object containing username, id, and profile url. You can pass either a numeric ID or a full Vinted item URL to the item_id_or_url parameter.Does the API cover Vinted marketplaces outside Finland, such as vinted.de or vinted.fr?+
Does the profile endpoint return transaction history or sold item data?+
get_user_profile endpoint returns active wardrobe listings, along with followers, following, reviews, location, and last_active. Sold or completed transaction history is not currently exposed. You can fork the API on Parse and revise it to add an endpoint targeting sold items if that data is accessible on the profile page.Is there a limit to how many pages of search results the API can return?+
search_listings endpoint supports a page integer parameter for pagination, but the maximum accessible page depth depends on what Vinted.fi surfaces for a given query. Deep pagination (very high page numbers) may return empty items arrays once results are exhausted. Test with your specific query and filter combination to determine the practical depth.