Depop Scraper
Pricing
from $5.00 / 1,000 listing scrapeds
Depop Scraper
Scrape public Depop listings by keyword or product URL with prices, brands, sizes, images, seller stats, and detail enrichment. MCP-ready.
Pricing
from $5.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
3
Monthly active users
20 days ago
Last modified
Categories
Share
Depop Scraper is an Apify Actor for public Depop listings. It accepts keyword searches or direct public product URLs, then returns one dataset record per listing. Each record can include product URL, title, price, brand, size, condition, images, seller stats, and detail enrichment fields. The Actor is usable through Apify MCP and is built for workflows that need structured public marketplace records instead of screenshots or copied page text.
Best fit and connected workflows
Use this Actor when your workflow starts from public Depop discovery and needs normalized listing data.
It fits well when you want to:
- Search public Depop results by keyword such as
vintage levisorcarhartt jacket. - Enrich a known Depop product URL with listing metadata and seller signals.
- Read a compact dataset row per listing for analysis, filtering, or downstream automation.
- Feed an AI agent a predictable public marketplace record through Apify MCP.
- Compare public product details across multiple keywords or URLs in a single run.
This Actor is designed as a focused workflow.
Opening contract
This Actor accepts public Depop search terms or public Depop product URLs. One output record represents one listing. The most valuable fields are productUrl, title, price, brandName, size, condition, likeCount, sellerUsername, sellerItemsSold, imageUrl, and, when detail enrichment is enabled, description, sizes, colors, sellerReviewCount, and sellerRating. The outcome is a flat dataset of public listing records plus machine-readable run summary data in the default key-value store.
Practical scenario
Maya works on resale pricing for a vintage store. She starts with the search term carhartt jacket and sets a small maxItems cap to review a short sample of public listings. The returned records show title, price, size, condition, sellerUsername, and sellerItemsSold. Maya uses those fields to compare listing style, then opens the productUrl for the items that look closest to her inventory.
Input fields
| Field | Type | Purpose |
|---|---|---|
mode | string | Choose search for keywords or productUrls for specific listings. |
searchQueries | array of strings | Depop search terms to scrape in search mode. |
productUrls | array of strings | Direct public Depop product URLs to enrich in product URL mode. |
country | string | Marketplace context for search results and pricing, such as us or gb. |
maxItems | integer | Hard cap on listings returned and billed across the run. |
maxPages | integer | Maximum search API pages to request per keyword when available. |
fetchDetails | boolean | Enrich listings with product page fields such as description, sizes, colors, and seller stats. |
proxyConfiguration | object | Optional Apify or custom proxy settings. |
Focused input example
{"mode": "search","searchQueries": ["vintage levis", "carhartt jacket"],"country": "us","maxItems": 10,"maxPages": 1,"fetchDetails": true,"proxyConfiguration": {"useApifyProxy": false}}
Output fields
| Field | Type | Meaning |
|---|---|---|
productId | string | Depop numeric product identifier when available. |
slug | string | Product slug parsed from the URL. |
productUrl | string | Canonical public Depop product URL. |
title | string | Product title from search or detail data. |
description | string | Public product description when enrichment is enabled. |
brandName | string | Brand shown on the listing or product detail. |
price | number | Current item price. |
originalPrice | number | Original price before discount when exposed. |
shippingPrice | number | Shipping price when exposed. |
currency | string | Currency code attached to the price. |
size | string | Primary visible size label. |
sizes | array of strings | All size labels returned by product detail. |
condition | string | Depop condition label when available. |
colors | array of strings | Color labels attached to the listing. |
category | string | Most specific category shown for the listing. |
categoryPath | array of strings | Category path from broadest to most specific. |
gender | string | Department or gender value returned by Depop. |
likeCount | integer | Public like count when available. |
isSold | boolean | Whether Depop marks the listing as sold or unavailable. |
isReduced | boolean | Whether Depop marks the current price as reduced. |
availability | string | Schema.org availability or Depop status value. |
sellerUsername | string | Seller handle inferred from the product slug or detail page. |
sellerRating | number | Seller average review rating from product detail. |
sellerReviewCount | integer | Number of seller reviews shown on product detail. |
sellerItemsSold | integer | Seller items-sold count shown on product detail. |
sellerLastSeen | string | Seller activity string returned by Depop. |
sellerAverageShippingDays | integer | Seller average shipping days when exposed. |
imageUrl | string | Primary product image URL. |
imageUrls | array of strings | Product image gallery URLs when detail enrichment is enabled. |
searchQuery | string | Search term that produced the record in search mode. |
sourceType | string | Discovery source such as search-api, browser-search, product-url, or search-index. |
scrapedAt | string | Timestamp when the listing was captured. |
Output example
{"productId": "812243847","slug": "redheadthreadf-vintage-y2k-levis-501-jeans-1a85","productUrl": "https://www.depop.com/products/redheadthreadf-vintage-y2k-levis-501-jeans-1a85/","title": "Levi's Men's Blue Jeans","description": "Vintage Y2K Levi's 501 jeans. Tagged 32. Great condition.","brandName": "Levi's","price": 15,"originalPrice": 34.99,"shippingPrice": 1.99,"currency": "USD","size": "32\"","sizes": ["32\""],"condition": "Excellent condition","colors": ["Blue"],"category": "Jeans","categoryPath": ["Menswear", "Bottoms", "Jeans"],"gender": "male","likeCount": 12,"isSold": false,"isReduced": true,"availability": "https://schema.org/InStock","sellerUsername": "redheadthreadf","sellerRating": 5,"sellerReviewCount": 323,"sellerItemsSold": 2120,"sellerLastSeen": "active_today","sellerAverageShippingDays": 3,"imageUrl": "https://media-photos.depop.com/b1/example/P0.jpg","imageUrls": ["https://media-photos.depop.com/b1/example/P0.jpg"],"searchQuery": "vintage levis","sourceType": "search-api","scrapedAt": "2026-07-08T14:55:00.000Z"}
How it works
The Actor first tries Depop's public search API route for keyword runs. When that route is challenged, it uses a browser-loaded search page and records the listings it can verify. In product URL mode, it opens each public product URL and enriches the record from the page data and visible product metadata. The output dataset uses a stable flat shape, and the run summary is written to the default key-value store in OUTPUT and RUN_SUMMARY.
The implementation also includes HTTP search with browser fallback, product URL mode, optional detail enrichment, and all five Apify schemas described in the live contract.
Pricing
This Actor uses Pay per event pricing plus Apify platform usage.
- Actor start: charged once per run, scaled by allocated RAM.
- Listing scraped: charged once per Depop listing returned with product URL, price or product details, and marketplace metadata.
The live price is shown in the Pricing tab of the Actor page. For example, a run capped at ten listings charges for up to ten Listing scraped events, plus the run start event, and any Apify platform usage such as proxy or storage is billed separately according to your Apify account settings.
Use with AI agents (MCP)
This Actor is usable through Apify MCP as a tool for fetching public Depop listing records.
Tool description: Scrape public Depop listings by keyword or product URL, then return one dataset row per listing with public marketplace fields such as price, brand, size, images, seller stats, and a machine-readable run summary.
Actor identity: khadinakbar/depop-scraper
Find public Depop listings for the keyword "vintage levis" in the US marketplace. Return up to 10 items, include detail enrichment, and give me the dataset records plus the run summary.
The dataset records are flat and easy to interpret in agents or downstream automations. Use title, price, brandName, size, condition, sellerUsername, and imageUrl for quick ranking or summarization. sourceType shows whether a record came from the search API, browser search, or a direct product URL. productUrl provides provenance back to the public listing. maxPages controls how many keyword search pages are requested when the lightweight route is available, while maxItems caps the number of listings returned and billed across the whole run. When Depop challenges the API route, the Actor falls back to verified browser-loaded results and records the route in the output summary.
JavaScript example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/depop-scraper').call({mode: 'search',searchQueries: ['vintage levis'],country: 'us',maxItems: 5,maxPages: 1,fetchDetails: true,proxyConfiguration: {useApifyProxy: false,},});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);const output = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('OUTPUT');console.log(output);
Best results and outcome guidance
Use one clear discovery path per run: keyword search for market sampling, or product URLs for known items. Set maxItems to the number of listings you want to review, and raise maxPages only when you want more keyword coverage. Turn fetchDetails on when you need seller stats, images, and product-page enrichment. Turn it off when you only need a quick public listing inventory sample.
Continue the workflow
- Then use eBay Scraper - Sold Prices, Listings & Sellers (8 Markets) to extend Depop Scraper with a neighboring commerce research source when the brief calls for Ebay data.
- Then use Craigslist Scraper - Jobs, Housing, Cars, Services API to extend Depop Scraper with a neighboring commerce research source when the brief calls for Craigslist data.
Design note
I found that every dataset record is required to include productUrl, sourceType, and scrapedAt, which makes those fields the safest anchor for downstream automation.
FAQ
Is this Actor for public Depop search results or private account data?
It is for public Depop listings and public product pages.
Can I start from a list of product URLs?
Yes. Use mode: "productUrls" and pass direct public Depop product URLs.
Does one output row represent one listing?
Yes. Each dataset row represents one Depop listing.
What should I use when I want seller stats and images?
Set fetchDetails: true so the Actor opens each product page and enriches the record.
Can I use this Actor through Apify MCP?
Yes. It is MCP-ready and can be called as the Apify Actor khadinakbar/depop-scraper.
How do I control run size and cost?
Use maxItems to cap the number of listings and review the live Pricing tab for the current event charges.
Responsible use
Use this Actor only for public marketplace data and lawful workflows. Respect Depop's terms, platform access rules, and privacy expectations. Keep usage focused on public listings, product pages, and the fields exposed by the Actor's input and output schemas.