Vinted Real-Time Data | Live Resale Intelligence
Pricing
from $4.50 / 1,000 results
Vinted Real-Time Data | Live Resale Intelligence
Live Vinted resale market intelligence: keyword search, full listing details, wardrobe inventory, seller profiles, sold comps, and URL collection. Stream structured JSON in real time to your dataset, with Slack/Discord deal alerts. Built for thrift resellers, arbitrage, and pricing teams.
Pricing
from $4.50 / 1,000 results
Rating
0.0
(0)
Developer
Emmanuel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Vinted Real-Time Data
Live resale market intelligence, thrift price comps, wardrobe inventory, and a vintage deal finder for Vinted.
Search the live Vinted marketplace by keyword, pull full listing records, track reseller wardrobes, profile sellers, check completed-listing comps, and process any Vinted URL β all streamed to your dataset as structured JSON the moment each row is ready.
β οΈ Free Apify plans are capped at 2 results per run. Upgrade to a paid Apify plan for unlimited vintage and thrift data exports. Paid runs are never capped.
Who this is for
- Vintage & thrift resellers cross-listing on Vinted, Poshmark, eBay, Depop, Mercari, and Grailed.
- Consignment owners and sourcing teams who need fresh inventory before it sells.
- Resale arbitrageurs hunting underpriced Carhartt, gorpcore, Y2K, and designer denim.
- Pricing teams and fashion researchers modelling sell-through and category demand.
- AI agents and pricing bots that need a clean, portable resale schema.
What you can do with it
- Find undervalued inventory fast β vintage single-stitch tees, designer denim, gorpcore shells, Y2K drops, deadstock workwear.
- Check comps before you price β confirm what similar pieces actually sell for.
- Monitor competitor wardrobes β watch a reseller's stock and repricing moves over time.
- Get deal alerts in Slack or Discord β every new row can be pushed to your channel in real time.
- Keep multi-platform pricing in sync β the output schema is portable across the whole thrift suite.
- Feed an AI agent β ask pricing and sourcing questions through the Apify MCP server.
Feature matrix
| Feature | Checkbox | Default | What it returns |
|---|---|---|---|
| Listing Search | enableListingSearch | β On | Live keyword search with brand, condition, price, and sort filters. |
| Listing Details | enableListingDetails | Off | Full records for specific listing URLs or IDs. |
| Wardrobe Listings | enableClosetListings | Off | A seller's full active wardrobe inventory. |
| Seller Profile | enableSellerProfile | Off | Reseller stats: followers, rating, reviews, wardrobe size, location. |
| Sold Item Comps / History | enableSoldHistory | Off | Completed-listing comps for pricing and sell-through. |
| Scrape By URL | enableScrapeByUrl | Off | Any Vinted URL β search, wardrobe, category, brand, or single listing. |
Enable only what you need. Everything streams to the dataset as it is collected, so RAM stays light even on 10,000+ item runs.
One row per listing β never duplicated
When Listing Search is on, each discovered listing is exactly one row. If you also turn on Enrich with full listing details (searchFetchFullDetails), that same row is enriched in place with description, fabric/material, colour, the full image gallery, and seller context β the row is marked detailsFetched: true. Nothing is filtered out, and no second copy of the row is created.
Input reference
π Region
| Field | Type | Default | Notes |
|---|---|---|---|
country | string (select) | US | Vinted market. Affects currency and the recommended proxy country. Options include US, UK, IE, FR, DE, ES, IT, NL, BE, AT, PT, PL, LT, SE, CZ, HU, SK, RO, DK, FI, GR. |
π Listing Search
| Field | Type | Default | Notes |
|---|---|---|---|
enableListingSearch | boolean | true | On by default. |
searchKeywords | string[] | ["carhartt detroit jacket", "vintage 90s levis 501", "patagonia fleece"] | One search per keyword. |
searchMaxResults | integer | 10 | Per keyword, 1β200. |
searchSort | select | relevance | relevance, newest, price_low_to_high, price_high_to_low. |
searchBrand | string | β | True brand filter, e.g. Carhartt, Levi's, Patagonia. |
searchCondition | select | Any | new_with_tags, new_without_tags, very_good, good, satisfactory. |
searchMinPrice | integer | β | Market currency. |
searchMaxPrice | integer | β | Market currency. |
searchFetchFullDetails | boolean | false | Enrich each search row in place. |
Example searches: carhartt detroit jacket, vintage 90s levis 501, patagonia fleece, single stitch band tee, stussy hoodie, ralph lauren cable knit, nike acg jacket, y2k baby tee.
π¦ Listing Details
| Field | Type | Default | Notes |
|---|---|---|---|
enableListingDetails | boolean | false | |
listingUrls | string[] | [] | Full listing URLs. |
listingIds | string[] | [] | Numeric listing IDs. |
π Wardrobe Listings
| Field | Type | Default | Notes |
|---|---|---|---|
enableClosetListings | boolean | false | |
sellerUsernames | string[] | [] | Vinted member URLs or numeric member IDs. Shared with Seller Profile. |
sellerMaxListings | integer | 30 | Per seller, 1β1000. |
π€ Seller Profile
| Field | Type | Default | Notes |
|---|---|---|---|
enableSellerProfile | boolean | false | Uses the same seller list. |
π§Ύ Sold Item Comps / History
Vinted removes sold items from public wardrobes, so there is no browse-all sold feed. This feature works from the sold listing URLs or IDs you provide and reports each listing's final status and last price β the comp data behind pricing decisions.
| Field | Type | Default | Notes |
|---|---|---|---|
enableSoldHistory | boolean | false | |
soldItemUrls | string[] | [] | Sold or completed listing URLs. |
soldItemIds | string[] | [] | Sold or completed listing IDs. |
soldMaxItems | integer | 30 | Per run, 1β1000. |
π Scrape By URL
| Field | Type | Default | Notes |
|---|---|---|---|
enableScrapeByUrl | boolean | false | |
scrapeUrls | string[] | [] | Any Vinted search, member, category, brand, or listing URL. Page type is detected automatically. |
π Delivery & π Connection
| Field | Type | Default | Notes |
|---|---|---|---|
webhookUrl | string | β | Optional real-time push in addition to the dataset. |
webhookFormat | select | json | json or slack. |
proxyConfiguration | object | Apify Residential (US) | Residential proxy recommended. Match the country to the market. |
Output schema
Every row shares a portable core so you can union datasets across platforms:
featureType, scrapedAt, url, item_id, item_url, title, description, main_image_url, additional_image_urls, status, current_price, original_price, currency, discount_percentage, brand, size, condition, category, department, color, style_tags, material, likes_count, is_sold, seller_username, seller_id, detailsFetched
featureType is one of: listing_search, listing_details, closet_listings, seller_profile, sold_history, scrape_by_url.
Pricing & engagement
| Field | Meaning |
|---|---|
current_price | Listed price in the market currency. |
total_price | All-in price incl. Buyer Protection, when shown. |
service_fee | Buyer Protection fee, when available. |
original_price / discount_percentage | Markdown baseline and % off, when the seller has reduced the price. |
currency | ISO currency for the selected market (USD, GBP, EUR, β¦). |
likes_count | Favourites/saves β a strong demand signal. |
views_count | Views, when available (wardrobe inventory). |
is_promoted | Seller bumped the listing for extra exposure. |
Product attributes
| Field | Meaning |
|---|---|
brand / brand_id | Brand name and catalog id. |
size | Seller-declared size. |
condition | New with tags β Satisfactory. |
category / department | Marketplace taxonomy. |
color / material | Colour and fabric. |
style_tags / hashtags | Style descriptors and hashtags. |
Seller metrics
| Field | Meaning |
|---|---|
seller_username / seller_id | Seller identity. |
seller_rating / seller_review_count | Rating and number of reviews (Seller Profile). |
followers / following | Social proof (Seller Profile). |
total_listings | Active wardrobe size (Seller Profile). |
seller_items_listed | Wardrobe size observed alongside a listing. |
location / city / country | Seller location. |
Status & metadata
| Field | Meaning |
|---|---|
status | available, sold, reserved, hidden, not_for_sale, or deleted. |
is_sold / is_reserved | Clear boolean flags for filtering. |
detailsFetched | true when a search row was enriched in place. |
position | Rank within the page the item was found on. |
pageType | Detected page type on scrape_by_url rows. |
Dataset views are available per feature (All results, Overview, Listing Search, Listing Details, Wardrobe Listings, Seller Profiles, Sold Item Comps, Scrape By URL).
Webhook guide
Every record is always saved to the run dataset. If you set webhookUrl, each new row is also POSTed to your URL in real time (Slack, Discord, Zapier, Make, n8n, or your own pricing bot). Delivery is best-effort and never blocks the run.
Slack (webhookFormat: "slack") sends a ready-to-post message:
{"text": ":shopping_bags: *Carhartt Detroit Jacket*\n*Type:* listing_search β’ *Price:* USD 65 (was USD 90) β’ *Brand:* Carhartt β’ *Size:* M β’ *Condition:* Very good β’ *Seller:* thrifty_mia β’ 42 favourites\n<https://www.vinted.com/items/123456789-carhartt-detroit-jacket|Open on Vinted>"}
JSON (webhookFormat: "json") sends the full dataset record object, so your bot can read any field directly.
Use with AI agents (Apify MCP)
Connect the Apify MCP server and point your agent at this Actor. Example questions:
- "What is the average asking price for a 90s Carhartt J97 jacket on Vinted?"
- "Find underpriced Patagonia fleece listings under β¬40 and alert my Slack channel."
- "List every item in this seller's wardrobe and flag anything more than 30 days old."
- "Compare sold comps for Levi's 501 to live asking prices."
FAQ
How fresh is the data? Every row is collected live during your run and streamed immediately β there is no cached or stale inventory.
Do I need a proxy? A residential proxy is recommended and is the Apify default. Match its country to the market for the most reliable results, especially at scale.
Why am I only getting 2 results? Free Apify plans are capped at a 2-result sample per run. Upgrade to a paid plan for unlimited exports. This is a policy limit, not a bug.
Can I get more than 200 results per keyword? Run multiple keywords, or use Wardrobe Listings and Scrape By URL to walk a seller or category in full.
How do I avoid seeing the same listing twice? Rows are de-duplicated by listing identity within a run, so a listing is written once.
Why is is_sold false almost everywhere on search? Live search returns active stock. Use Sold Item Comps with completed listing URLs to check final prices.
Will it work for other markets? Yes β pick the market in the Region section; currency and matching proxy country follow automatically.
Local development
npm installcp .env.example .env # add your residential proxy valuescp local.input.example.json local.input.jsonnpm run start:local # streams rows to output/local_results.jsonl
npm run typechecknpm run build
Never commit .env or local.input.json with real values.
Output contract portability
Field names intentionally line up with the wider thrift & resale suite so a single pricing bot or warehouse can union Vinted, Poshmark, Depop, Grailed, Mercari, ShopGoodwill, and eBay datasets without per-site remapping.