Depop Scraper — Search, Shops, Reviews & Sold-Item Tracking
Pricing
from $1.50 / 1,000 results
Depop Scraper — Search, Shops, Reviews & Sold-Item Tracking
Depop Scraper for 12 Depop countries: run keyword searches with size, brand, condition and price filters, or paste any Depop product, search, shop or category link. Also pulls the reviews a shop has received. Scheduled runs can return only new or changed listings and flag the ones that sold.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Scrape Depop listings, shop inventories and seller reviews behind Cloudflare with Apify Unblocker.
Search by keyword and filters, paste a product/shop/search URL, or pull a seller's reviews. Every row carries the listing essentials (title, price, brand, condition, sizes, colours, pictures) plus the seller profile (followers, items sold, rating, verified status).
Why Use This Scraper?
- Three modes in one actor. Search by keyword + filters, scrape a shop's full inventory, pull a seller's reviews, or paste any Depop product/search/shop URL.
- Sold items & comps. Turn on
includeSoldand schedule recurring runs — the actor tracks every listing it sees and emits astatus=soldrow (with last asking price) the moment an item disappears, so you get real resale comps, not just live listings. - Incremental mode. Turn on
incrementalModeand scheduled runs return only new or changed items, so you pay for fresh data, not re-scraped duplicates. - Full listing data per row. Title, price, original price, discount %, shipping, brand, condition, sizes, colours, category, gender, pictures, description, and seller stats (followers, items sold, reviews rating, verified).
- 12 marketplaces. US, UK, AU, IE, IT, FR, DE, ES, NL, BE, NZ, CA — each with its local currency.
- Filters that match the site. Brand, category, colour, condition, gender, price range, sort order (including most-popular for trending items).
- Paste URLs straight from the site. Product, search, shop and category links are recognised and parsed.
- Cloudflare + PerimeterX bypassed. Apify Unblocker handles both bot-management layers; no browser, no headless Chrome.
Overview
Depop is a fashion resale marketplace with tens of millions of listings across 12 countries. The site and its API sit behind Cloudflare Bot Management and PerimeterX, which block datacenter and residential proxies. This actor uses Apify Unblocker to pass both layers and reads the same JSON API the Depop website uses, so it returns structured data without rendering a browser.
It is built for resale analysts tracking competitor inventory, price researchers, and lead-generation teams that need seller profiles next to each listing. Each row is a flat product record with nested sizes and pictures arrays.
Supported Inputs
URL types
| URL type | Example |
|---|---|
| Product | https://www.depop.com/products/<slug>/ |
| Shop | https://www.depop.com/<username>/ |
| Search | https://www.depop.com/search/?q=nike |
| Category | https://www.depop.com/products/?category=sweatshirts |
Search mode
Provide one or more queries and optional filters. The actor scrapes the search page, extracts product cards, then enriches each via the by-slug API for full details.
Shop mode
Provide a shop URL or username. The actor resolves the seller ID, then walks the shop products API page by page.
Reviews mode
Provide a seller username or ID. The actor pulls feedback via the users feedback API, with the role (seller or buyer) selectable.
Sold items & comps
Depop does not publish a sold-search endpoint. To get sold comps, turn on includeSold and run the actor on a schedule (e.g. every 6–12 hours). The first run seeds the watched universe (every active item it sees). On each subsequent run, any item that has disappeared is emitted with status=sold, priceKind=last_ask, and its last known asking price. Pair it with incrementalMode so you only pay for new, changed, and sold rows — not re-scraped duplicates.
Use a distinct stateKey per query or shop if you run multiple schedules, so each tracks its own universe.
Input
| Field | Type | Description |
|---|---|---|
mode | string | search, url, or reviews (default search) |
queries | array | Search keywords (search mode) |
urls | array | Depop product/shop/search/category URLs (url mode) |
sellers | array | Seller usernames or IDs (reviews mode) |
reviewRole | string | seller or buyer (reviews mode, default seller) |
country | string | Marketplace: us, uk, au, ie, it, fr, de, es, nl, be, nz, ca |
sortBy | string | relevance, newest, price_low, price_high, popular |
minPrice / maxPrice | number | Price range filter |
gender | string | male, female, unisex |
brands | array | Brand slugs (e.g. nike, adidas) |
categories | array | Category slugs |
colours | array | Colour names |
conditions | array | Condition slugs |
groups | array | Department groups |
sizes | array | Size names |
maxPages | number | Max pages per query/shop (0 = all) |
maxItems | number | Max total items (0 = unlimited) |
incrementalMode | boolean | Only emit new/changed items on recurring runs (default false) |
includeSold | boolean | Emit status=sold rows for items that disappeared since the last run (default false) |
stateKey | string | Key-value store key for incremental/sold state (default depop-state) |
ignoreFieldsForChanges | array | Fields to ignore when detecting changes in incremental mode |
webhookUrl | string | Optional. Each item is POSTed to this URL as JSON as it is scraped |
proxy | object | Apify proxy config; defaults to Unblocker |
Output
Each row is a product (search/url modes) or a review (reviews mode).
Product fields
| Field | Type | Description |
|---|---|---|
id | number | Depop product ID |
slug | string | URL slug |
url | string | Product URL |
title | string | Listing title |
description | string | Full description |
price | number | Current price |
originalPrice | number | Original (pre-discount) price, when discounted |
currency | string | Currency code (USD, GBP, EUR, …) |
shippingCost | number | Shipping cost (when available) |
isReduced | boolean | Price reduced flag |
discountPercentage | number | Discount % (when available) |
status | string | Listing status (active or sold for disappeared items) |
firstSeenAt | string | When the actor first saw this item (incremental/sold mode) |
lastSeenAt | string | When the actor last saw this item active (incremental/sold mode) |
priceKind | string | last_ask for sold items (last asking price, not a hammer price) |
brandName | string | Brand |
conditionName | string | Condition |
colours | array | Colour names |
sizes | array | Size objects {id, name, quantity} |
categoryName | string | Category |
gender | string | Gender |
likeCount | number | Likes |
pictures | array | Image URLs |
mainPicture | string | Main image URL |
sellerUsername | string | Seller username |
sellerId | number | Seller ID |
sellerVerified | boolean | Seller verified flag |
sellerItemsSold | number | Seller total items sold |
sellerReviewsRating | number | Seller rating |
sellerReviewsTotal | number | Seller review count |
sellerFollowers | number | Seller followers |
sellerFollowing | number | Seller following |
sellerLocation | string | Seller location |
sellerBio | string | Seller bio |
sellerWebsite | string | Seller's external website (when provided) |
sellerEmail | string | Email extracted from the seller bio (when present) |
sellerFirstName | string | Seller first name |
sellerLastName | string | Seller last name |
sellerPictureUrl | string | Seller avatar URL |
sellerOnVacation | boolean | Seller on vacation flag |
isBoosted | boolean | Boosted/promoted listing |
isSold | boolean | Sold flag |
hasFreeShipping | boolean | Free shipping flag |
pictureCount | number | Number of pictures |
scrapedAt | string | ISO timestamp |
Review fields
| Field | Type | Description |
|---|---|---|
id | number | Feedback/transaction ID |
rating | number | Star rating (1-5) |
text | string | Review text |
date | string | ISO timestamp |
transactionId | number | Transaction ID |
authorId | number | Reviewer ID |
authorUsername | string | Reviewer username |
authorVerified | boolean | Reviewer verified flag |
productId | number | Product ID |
productPicture | string | Product image URL |
sellerUsername | string | Seller username |
sellerUrl | string | Seller URL |
sellerVerified | boolean | Seller verified flag |
Proxy
Depop blocks datacenter and residential proxies with Cloudflare Bot Management + PerimeterX. This actor defaults to Apify Unblocker, which solves the Cloudflare challenge at the proxy layer. Residential and plain datacenter proxies return 403.
Notes
- Search mode scrapes the search page HTML for product cards (the search API returns 502), then enriches each card via the working by-slug product API.
- Shop mode uses the shop products API (
/presentation/api/v1/shops/:id/products/), paginated by offset. - Reviews mode uses the users feedback API (
/presentation/api/v1/users/:id/feedback/). - Product URLs fetch the by-slug API for details and the product page HTML for the title/price (the by-slug API omits them).