ThredUp Scraper
Pricing
from $3.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
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) andbyItemNumber(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,skutitle,brandprice,originalPrice,discountPercentcategory,categoryTags[]condition,conditionLabel(human-readable)sizeLabel,sizeValuedepartmentTags[],colorNames[],styleTags[]state,thredupGender,clearancelistedAt— ISO 8601 timestampphotoCount— number of photos on the listingitemUrl— ThredUp collection page for this item's brand/department/categorysearchUrl— ThredUp search results for this item's titlerecordType: "item",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byItemNumber |
searchQuery | string | – | Free-text keyword search |
itemNumbers | array | – | Item numbers (mode=byItemNumber) |
department | array | – | women, plus, petite, tall, maternity, juniors, boys, girls, designer, premium, accessories, handbags, jewelry |
category | array | – | Product category (dresses, tops, shoes, handbags, jewelry, etc. — 29 options) |
brands | array | – | Brand names, e.g. Zara, Nike |
condition | array | – | Listing condition tier |
colors | array | – | Color |
priceMin / priceMax | int | – | Price range (USD) |
clearanceOnly | bool | false | Only clearance-priced items |
sortBy | string | recommended | recommended / relevance / best_sellers |
maxItems | int | 50 | Hard cap (1–1000) |
proxyConfiguration | object | AUTO | Optional Apify datacenter proxy fallback |
Note:
searchmode needs at least one ofsearchQueryor 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. SetsearchQuery(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.