Depop Scraper avatar

Depop Scraper

Pricing

from $5.00 / 1,000 listing scrapeds

Go to Apify Store
Depop Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

3

Monthly active users

20 days ago

Last modified

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 levis or carhartt 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

FieldTypePurpose
modestringChoose search for keywords or productUrls for specific listings.
searchQueriesarray of stringsDepop search terms to scrape in search mode.
productUrlsarray of stringsDirect public Depop product URLs to enrich in product URL mode.
countrystringMarketplace context for search results and pricing, such as us or gb.
maxItemsintegerHard cap on listings returned and billed across the run.
maxPagesintegerMaximum search API pages to request per keyword when available.
fetchDetailsbooleanEnrich listings with product page fields such as description, sizes, colors, and seller stats.
proxyConfigurationobjectOptional 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

FieldTypeMeaning
productIdstringDepop numeric product identifier when available.
slugstringProduct slug parsed from the URL.
productUrlstringCanonical public Depop product URL.
titlestringProduct title from search or detail data.
descriptionstringPublic product description when enrichment is enabled.
brandNamestringBrand shown on the listing or product detail.
pricenumberCurrent item price.
originalPricenumberOriginal price before discount when exposed.
shippingPricenumberShipping price when exposed.
currencystringCurrency code attached to the price.
sizestringPrimary visible size label.
sizesarray of stringsAll size labels returned by product detail.
conditionstringDepop condition label when available.
colorsarray of stringsColor labels attached to the listing.
categorystringMost specific category shown for the listing.
categoryPatharray of stringsCategory path from broadest to most specific.
genderstringDepartment or gender value returned by Depop.
likeCountintegerPublic like count when available.
isSoldbooleanWhether Depop marks the listing as sold or unavailable.
isReducedbooleanWhether Depop marks the current price as reduced.
availabilitystringSchema.org availability or Depop status value.
sellerUsernamestringSeller handle inferred from the product slug or detail page.
sellerRatingnumberSeller average review rating from product detail.
sellerReviewCountintegerNumber of seller reviews shown on product detail.
sellerItemsSoldintegerSeller items-sold count shown on product detail.
sellerLastSeenstringSeller activity string returned by Depop.
sellerAverageShippingDaysintegerSeller average shipping days when exposed.
imageUrlstringPrimary product image URL.
imageUrlsarray of stringsProduct image gallery URLs when detail enrichment is enabled.
searchQuerystringSearch term that produced the record in search mode.
sourceTypestringDiscovery source such as search-api, browser-search, product-url, or search-index.
scrapedAtstringTimestamp 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

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.