How to Compare Depop Listings by Brand, Size, and Price
The Depop Listings Scraper collects prices, sizes, brands, images, and product links from Depop search terms or category URLs. I maintain it. This walkthrough researches vintage Patagonia fleece listings and turns the export into a price comparison.
The first job is separating comparable garments. Different sizes, models, and condition can explain a price gap more convincingly than a seller being cheap or expensive.

Choose one search before comparing prices
Provide at least one searchQueries term or a categoryUrls entry. A search is useful for a specific brand or garment; a category URL is better when you want a broader assortment. The example starts with one phrase and no category sources.
maxItems is global across all sources. In the current deployed schema, zero means 500, not unlimited. Depop initially server-renders 24 items per URL. Getting more depends on scrolling, because changing a page query parameter does not provide normal pagination.
A limit of 48 therefore tests collection beyond that initial set without asking for a large catalog. Listing cards do not establish condition, authenticity, or a final sale price.
Budget for the sample
Pricing as of September 6, 2026. Each result costs $0.004. The Actor-start event is $0.00005 per GB of allocated memory, with a minimum of one event. Forty-eight returned listings at 1 GB would cost about $0.19205. Check current Actor pricing and the run charge breakdown; these calculations describe Actor events, and separately billed platform or proxy resources may also apply.
Collect a 48-listing sample
Open the Actor on Apify. In Input, switch to the JSON editor and paste:
{
"searchQueries": [
"vintage Patagonia fleece"
],
"categoryUrls": [],
"maxItems": 48
}
Click Start, then open the completed run’s output dataset.
Inspect the number of records and the run log after completion. If only an initial set appears, do not try adding ?page=2 to force another page; check the scrolling behavior reported by the run and whether the source has further results.
Review product images and links before expanding the search. The documented output does not include a dependable title or condition field, so those parts of your comparison may require manual review.
Read the returned fields
| Field | How to use it |
|---|---|
url | Listing URL |
price | Current asking price |
originalPrice | Previous price when shown |
currency | Price currency |
size | Displayed size |
brand | Displayed brand |
originalPrice: null means no previous price was returned. It is not zero and cannot be used as a discount denominator. Keep currency with every price, even when most of the initial rows use the same currency.
The output includes slug and url, plus an images array. A slug can help identify a product, but it is not a reliable substitute for a structured model or condition field.

Build a comparable garment sample
Export CSV for price analysis and retain JSON if you need all image URLs. Deduplicate by product URL. Add columns for reviewed garment type, model, condition, and any shipping amount you verify on the source listing.
First separate fleeces from accessories and unrelated brand matches. Then group by brand and size, retaining the raw size label. A size M in one product line should not automatically be treated as an identical fit across every garment.
Open uncertain listings and inspect photos and description for wear, damage, alterations, and missing details. Keep damaged garments in their own comparison group. Exclude unclear items from a pricing calculation until you can classify them.
Calculate a median asking price for one currency and one comparable group, and report how many items remain. Keep individual URLs beside the summary so you can explain outliers. Do not describe this as a sold-price estimate: the card prices record sellers' requests, not completed transactions.
For another snapshot, rerun the same source and match URLs. A product absent from the next limited search might have sold, moved in ranking, or become unavailable. Record disappearance as an observation rather than a sale.
Handle thin searches and missing attributes
If the search is too narrow, remove one descriptor, such as vintage, while keeping the brand and garment. If it becomes too broad, review a category source instead. There is no condition-filter input in this schema to solve mixed-condition results automatically.
Keep unknown brand, size, and old-price values blank. Replacing missing sizes with a guessed value makes the comparison less trustworthy. When collection stalls after the initial batch, inspect the source and log before increasing the global cap.
The Poshmark comparison guide and Mercari Japan guide cover separate resale markets. Keep currencies and product condition comparable before joining their exports.
For saving repeated Depop price samples, see the Node.js example. Use the current input fields above if the example differs.
Frequently asked questions
Does maxItems set a limit for each search?
No. It is a global limit across the run’s sources.
Does zero mean unlimited?
No. In the current deployed schema, maxItems set to zero means 500.
Can I compare completed sale prices?
The documented output provides listing prices. It does not establish final transaction prices or confirm that a missing listing sold.
