ThredUp Scraper avatar

ThredUp Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
ThredUp Scraper

ThredUp Scraper

Scrape ThredUp - the largest online resale marketplace for women's and kids' secondhand fashion. Search by keyword or filter by brand, department, category, condition, color and price; look up items directly by item number. Real-time listings with pricing, sizing, brand and condition data.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrape ThredUp — one of the largest online resale marketplaces for women's, kids', and maternity secondhand fashion. Search live listings by keyword, or narrow down with department, category, brand, condition, color and price filters. Look items up directly by item number. No login, no API key, no paid proxy required.

What this actor does

  • Two modes: search (keyword + rich filters) and byItemNumber (direct lookup)
  • Full filter surface: department, category, brand, condition, color, price range, clearance-only, sort order
  • Real-time inventory — every run reflects ThredUp's current live catalog
  • Empty fields are omitted — every record only contains fields ThredUp actually returned

Output per item

  • itemId, itemNumber, sku
  • title, brand
  • price, originalPrice, discountPercent
  • category, categoryTags[]
  • condition, conditionLabel (human-readable)
  • sizeLabel, sizeValue
  • departmentTags[], colorNames[], styleTags[]
  • state, thredupGender, clearance
  • listedAt — ISO 8601 timestamp
  • photoCount — number of photos on the listing
  • itemUrl — ThredUp collection page for this item's brand/department/category
  • searchUrl — ThredUp search results for this item's title
  • recordType: "item", scrapedAt

Input

FieldTypeDefaultDescription
modestringsearchsearch / byItemNumber
searchQuerystringFree-text keyword search
itemNumbersarrayItem numbers (mode=byItemNumber)
departmentarraywomen, plus, petite, tall, maternity, juniors, boys, girls, designer, premium, accessories, handbags, jewelry
categoryarrayProduct category (dresses, tops, shoes, handbags, jewelry, etc. — 29 options)
brandsarrayBrand names, e.g. Zara, Nike
conditionarrayListing condition tier
colorsarrayColor
priceMin / priceMaxintPrice range (USD)
clearanceOnlyboolfalseOnly clearance-priced items
sortBystringrecommendedrecommended / relevance / best_sellers
maxItemsint50Hard cap (1–1000)
proxyConfigurationobjectAUTOOptional Apify datacenter proxy fallback

Note: search mode needs at least one of searchQuery or a filter (department, category, brand, condition, color, price range, clearance-only) set — ThredUp's own search API doesn't return a completely unfiltered "browse everything" catalog. Set searchQuery (e.g. dresses) or add another filter to browse broadly.

Example: women's designer dresses under $50

{
"mode": "search",
"searchQuery": "dress",
"department": ["designer", "women"],
"priceMax": 50,
"condition": ["Q1_NWT", "Q1_only"]
}

Example: direct item lookup

{
"mode": "byItemNumber",
"itemNumbers": ["231320532"]
}

Data source

ThredUp's public shop GraphQL API (thredup.com/api/v1/shop/graphql), the same endpoint that powers thredup.com's own search page. The actor establishes an anonymous browsing session (a cookie ThredUp issues automatically on any page load — no account, login, or signup involved) before querying, exactly as a browser does.

FAQ

Do I need a ThredUp account or API key? No. The actor uses ThredUp's public search API with an anonymous session, the same one any visitor gets browsing the site.

How current is the data? Live — every run queries ThredUp's catalog in real time.

Why is itemUrl a collection page instead of a single product page? ThredUp only exposes individual listings inside search-result panels (no public per-item permalink), so itemUrl links to the closest stable, always-navigable page: that item's brand + department + category collection on thredup.com — built from the same URL structure ThredUp's own sitemap uses.

Why is price sometimes higher than originalPrice? Both values are passed through unmodified from ThredUp's own itemsV2 API — this isn't a scraping artifact. On a majority of sampled listings, ThredUp's originalPrice field is lower than the live price, so it does not reliably represent a pre-discount "was" price; treat price as the authoritative current listing price and originalPrice as a supplementary reference value from ThredUp rather than a guaranteed higher "compare-at" price. discountPercent is only emitted for the subset of listings where originalPrice actually exceeds price.