Vinted Real-Time Data | Live Resale Intelligence avatar

Vinted Real-Time Data | Live Resale Intelligence

Pricing

from $4.50 / 1,000 results

Go to Apify Store
Vinted Real-Time Data | Live Resale Intelligence

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

Emmanuel

Maintained by Community

Actor 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

FeatureCheckboxDefaultWhat it returns
Listing SearchenableListingSearchβœ… OnLive keyword search with brand, condition, price, and sort filters.
Listing DetailsenableListingDetailsOffFull records for specific listing URLs or IDs.
Wardrobe ListingsenableClosetListingsOffA seller's full active wardrobe inventory.
Seller ProfileenableSellerProfileOffReseller stats: followers, rating, reviews, wardrobe size, location.
Sold Item Comps / HistoryenableSoldHistoryOffCompleted-listing comps for pricing and sell-through.
Scrape By URLenableScrapeByUrlOffAny 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

FieldTypeDefaultNotes
countrystring (select)USVinted 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.
FieldTypeDefaultNotes
enableListingSearchbooleantrueOn by default.
searchKeywordsstring[]["carhartt detroit jacket", "vintage 90s levis 501", "patagonia fleece"]One search per keyword.
searchMaxResultsinteger10Per keyword, 1–200.
searchSortselectrelevancerelevance, newest, price_low_to_high, price_high_to_low.
searchBrandstringβ€”True brand filter, e.g. Carhartt, Levi's, Patagonia.
searchConditionselectAnynew_with_tags, new_without_tags, very_good, good, satisfactory.
searchMinPriceintegerβ€”Market currency.
searchMaxPriceintegerβ€”Market currency.
searchFetchFullDetailsbooleanfalseEnrich 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

FieldTypeDefaultNotes
enableListingDetailsbooleanfalse
listingUrlsstring[][]Full listing URLs.
listingIdsstring[][]Numeric listing IDs.

πŸ‘š Wardrobe Listings

FieldTypeDefaultNotes
enableClosetListingsbooleanfalse
sellerUsernamesstring[][]Vinted member URLs or numeric member IDs. Shared with Seller Profile.
sellerMaxListingsinteger30Per seller, 1–1000.

πŸ‘€ Seller Profile

FieldTypeDefaultNotes
enableSellerProfilebooleanfalseUses 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.

FieldTypeDefaultNotes
enableSoldHistorybooleanfalse
soldItemUrlsstring[][]Sold or completed listing URLs.
soldItemIdsstring[][]Sold or completed listing IDs.
soldMaxItemsinteger30Per run, 1–1000.

πŸ”— Scrape By URL

FieldTypeDefaultNotes
enableScrapeByUrlbooleanfalse
scrapeUrlsstring[][]Any Vinted search, member, category, brand, or listing URL. Page type is detected automatically.

πŸ”” Delivery & 🌐 Connection

FieldTypeDefaultNotes
webhookUrlstringβ€”Optional real-time push in addition to the dataset.
webhookFormatselectjsonjson or slack.
proxyConfigurationobjectApify 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

FieldMeaning
current_priceListed price in the market currency.
total_priceAll-in price incl. Buyer Protection, when shown.
service_feeBuyer Protection fee, when available.
original_price / discount_percentageMarkdown baseline and % off, when the seller has reduced the price.
currencyISO currency for the selected market (USD, GBP, EUR, …).
likes_countFavourites/saves β€” a strong demand signal.
views_countViews, when available (wardrobe inventory).
is_promotedSeller bumped the listing for extra exposure.

Product attributes

FieldMeaning
brand / brand_idBrand name and catalog id.
sizeSeller-declared size.
conditionNew with tags β†’ Satisfactory.
category / departmentMarketplace taxonomy.
color / materialColour and fabric.
style_tags / hashtagsStyle descriptors and hashtags.

Seller metrics

FieldMeaning
seller_username / seller_idSeller identity.
seller_rating / seller_review_countRating and number of reviews (Seller Profile).
followers / followingSocial proof (Seller Profile).
total_listingsActive wardrobe size (Seller Profile).
seller_items_listedWardrobe size observed alongside a listing.
location / city / countrySeller location.

Status & metadata

FieldMeaning
statusavailable, sold, reserved, hidden, not_for_sale, or deleted.
is_sold / is_reservedClear boolean flags for filtering.
detailsFetchedtrue when a search row was enriched in place.
positionRank within the page the item was found on.
pageTypeDetected 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 install
cp .env.example .env # add your residential proxy values
cp local.input.example.json local.input.json
npm run start:local # streams rows to output/local_results.jsonl
npm run typecheck
npm 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.