Depop Scraper — search & extract listings
Pricing
Pay per usage
Depop Scraper — search & extract listings
Scrape Depop marketplace listings across 9 countries. Extract prices, brands, sizes, condition, seller data, images, and more from the peer-to-peer fashion marketplace.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Steven Bennett
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Depop Scraper
Extract listings from Depop — the global peer-to-peer marketplace for vintage, streetwear, and second-hand fashion with 30M+ registered users across 9 countries.
First Depop scraper on Apify Store. No competition in this niche.

Features
- 🔍 Search anything — keyword, category, price range filters
- 🌍 9 country domains — US, UK, France, Italy, Spain, Germany, Australia, New Zealand, Canada
- 📊 Rich data — price, brand, size, condition, category, photos, seller info, likes count, views
- 🔄 Smart sorting — newest, oldest, price low→high, price high→low
- 🛡️ Anti-bot resistant — headless browser with stealth plugins handles Depop blocking
- 📦 Multi-strategy extraction — API interception,
__NEXT_DATA__parsing, DOM fallback - 💰 Pay-per-event — you only pay for what you use
Pricing
| Event | Price |
|---|---|
| Start | $0.50 per run |
| Per item | $0.0020 per listing ($2.00 / 1,000 items) |
A typical search for "vintage dress" (960 results) would cost **$2.42**. A small search (50 results) costs ~$0.60.
Quick Start
Via Apify Console
- Go to Depop Scraper in Apify Console
- Click Run and fill in the fields:
search— what to look for (e.g. "Levi's 501")country— Depop domain (e.g.com,co.uk,fr)maxItems— how many listings to scrape
- Wait for the run to complete
- Download results as JSON, CSV, or Excel
Via API
curl -X POST "https://api.apify.com/v2/acts/serene_trombone~depop-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"search": "vintage dress","country": "com","maxItems": 100,"order": "price_low_to_high"}'
Via Apify SDK (Node.js)
import { Actor } from 'apify';const run = await Actor.call('serene_trombone/depop-scraper', {search: 'Nike Air Max',country: 'co.uk',maxItems: 50,});const { items } = await Actor.openDataset(run.defaultDatasetId);console.log(items);
Via Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("serene_trombone/depop-scraper").call(run_input={"search": "Levi's jeans","country": "com","maxItems": 100,})dataset = client.dataset(run["defaultDatasetId"])items = dataset.list_items().itemsprint(items)
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
search | string | required | Search keyword or phrase |
country | string | com | Depop domain: com, co.uk, fr, it, es, de, au, nz, ca |
maxItems | number | 100 | Max listings to scrape (1–100,000) |
category | string | — | Category filter (e.g. tops, dresses, shoes) |
minPrice | number | — | Minimum price in local currency |
maxPrice | number | — | Maximum price in local currency |
order | string | newest | Sort: newest, oldest, price_low_to_high, price_high_to_low |
proxyConfiguration | object | Apify proxy | Proxy configuration (recommended) |
Output Schema
Each scraped listing returns the following fields:
| # | Field | Type | Description |
|---|---|---|---|
| 1 | id | string | number | Unique Depop item ID |
| 2 | title | string | null | Listing title |
| 3 | brand | string | null | Brand name (e.g. Levi's, Nike, Zara) |
| 4 | price | number | null | Item price |
| 5 | currency | string | null | Currency code (USD, GBP, EUR, etc.) |
| 6 | size | string | null | Size label (e.g. "M", "UK 8", "One Size") |
| 7 | condition | string | null | Item condition (e.g. "New", "Used - Good") |
| 8 | category | string | null | Product category |
| 9 | description | string | null | Full item description (detail mode) |
| 10 | material | string | null | Material composition (when available) |
| 11 | colour | string | null | Item colour (when available) |
| 12 | image | string | null | Main photo URL |
| 13 | images | string[] | All photo URLs |
| 14 | url | string | null | Direct link to the listing on Depop |
| 15 | likesCount | number | Number of likes |
| 16 | viewCount | number | Number of views (detail mode) |
| 17 | sellerId | number | null | Depop user ID of the seller |
| 18 | sellerUsername | string | null | Seller's username |
| 19 | sellerAvatar | string | null | Seller's profile picture URL |
| 20 | sellerBio | string | null | Seller's bio text (detail mode) |
| 21 | country | string | Country code (e.g. com, co.uk) |
| 22 | domain | string | Domain scraped (e.g. www.depop.com) |
| 23 | scrapedAt | string | ISO 8601 timestamp of when the item was scraped |
Sample Output
{"id": 123456789,"title": "Vintage 90s Levi's 501 Jeans","brand": "Levi's","price": 45.00,"currency": "USD","size": "W30 L32","condition": "Used - Good","category": "Jeans","image": "https://media.depop.com/products/.../image.jpg","images": ["https://media.depop.com/products/.../image1.jpg","https://media.depop.com/products/.../image2.jpg"],"url": "https://www.depop.com/products/seller123-vintage-501/","likesCount": 12,"viewCount": 234,"sellerId": 987654,"sellerUsername": "vintage_seller","sellerAvatar": "https://media.depop.com/users/.../avatar.jpg","sellerBio": "curating vintage since 2020","country": "com","domain": "www.depop.com","scrapedAt": "2026-07-04T12:00:00.000Z"}
Use Cases
- Reseller research — find underpriced items, track trending styles
- Brand monitoring — track second-hand value of brands over time
- Market analysis — fashion economics, pricing trends, vintage market research
- Competitive intelligence — monitor competitor listings and pricing
- Data collection — AI/ML training datasets for fashion models, size recommender systems
- Price tracking — monitor price drops and newly listed items
Rate Limits & Anti-Bot
Depop uses bot detection and may block aggressive scraping. This Actor handles it with:
- ✅ Headless Playwright browser (full JS rendering)
- ✅ Session rotation with Apify proxy
- ✅ Retry logic with backoff
- ✅ Stealth plugin to avoid detection
- ✅ API interception for efficient data extraction
- ✅ Multi-strategy fallback (API →
__NEXT_DATA__→ DOM)
Using the Actor without Apify proxy may result in blocking.
Technical Details
The scraper uses a three-layer extraction strategy:
- API Interception — Captures JSON responses from Depop's internal API as the page loads
__NEXT_DATA__parsing — Extracts Next.js server-rendered data payload- DOM fallback — Parses product cards from the rendered HTML as last resort
Stack: Crawlee (PlaywrightCrawler) · Node.js 20 · Apify SDK
Changelog
v1.0 — 2026-07-04
- Initial release
- 9 country domain support
- Full search/filter pipeline
- Multi-strategy data extraction
- API response interception
- Deduplication by item ID
Built with 🛠️ by Meester Bot · Not affiliated with Depop