# Depop scraper for listings, prices and shops

> Depop scraper for listings by search or by shop. Get price, brand, size, condition, likes, sold status and photos. Filter by brand and size. No login.

URL: https://cliqtomedia.com/actors/depop-scraper/

Category: Classifieds & second-hand · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/depop-scraper?fpr=cliqto

Search Depop by keyword, or add shop names. You get one row per listing with price, brand, size, condition and sold status. Filter by brand, size and price.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `vintage nike` in Search queries. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Depop Scraper collects listings from Depop, the second-hand fashion marketplace. Add a search query or a shop username, and you get one row per listing with price, brand, size, condition, likes, sold status, photos and seller. No Depop account or login is needed.

- Search mode — the listings Depop shows for your keywords, like the search box on depop.com.
- Shop mode — the listings of one or more Depop shops, by username or shop link.

### Good for

- Track prices of a brand or item type, for example vintage Nike jackets in size M under $50.
- Check what a shop sells, how items are priced and which items are already sold.
- Collect listing photos, brands and sizes for resale research or price comparison.

### Not a good fit

- No login: the Actor does not read messages, orders, offers, private data or seller contact details.
- Listing dates are not available without login: `createdAt` is always `null`.
- Search returns the listings Depop shows for a query. It is not a full export of all Depop listings.
- Seller usernames in Search mode are optional and cost extra (see `includeSellerDetails`).

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.004 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Listing | $0.0015 (from $0.0012 on paid Apify plans) | One Depop listing saved to the dataset. |
| Seller username | $0.0015 | Seller username, shop link and verified badge read from the listing page (Search mode, only when turned on). |

- One result: about $0.0055.
- 1,000 results: about $1.50.
- Every day 100 results, for 30 days: about $4.62 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/depop-scraper?fpr=cliqto

## Questions

### Is this the Depop API?

No. Depop's Partner API needs a key. This tool reads public listings.

### Why is the listing date empty?

Depop hides dates from logged-out visitors. The tool does not guess.

### Do I pay for filtered listings?

No. Only saved listings are charged.

### Which countries can I search?

US, UK, Australia, Canada, Germany, France, Italy and Ireland.

### Do I need a Depop account?

No. The Actor reads only public listings and does not log in.

### Why is `createdAt` always null?

Depop does not show the listing date to logged-out visitors. The Actor keeps the field `null` instead of guessing.

### Why is `sellerUsername` empty in Search mode?

Depop search results carry only the seller's numeric id (`sellerId`). Turn on `includeSellerDetails` to add the username, or use Shop mode.

### Do I pay for listings that do not match my filters?

No. Only saved listings are charged. Filtered and duplicate rows are free.

### Are prices and sold status live?

They are what Depop showed at `fetchedAt`. Prices and status can change at any time.

## Data fields

- `id` (integer): Depop product id.
- `slug` (string): Product slug, the last part of the listing link.
- `url` (string): Listing page on depop.com.
- `title` (string): Depop has no title field: the first line of the description, up to about 100 characters.
- `description` (string): Full listing description as the seller wrote it.
- `price` (number): Current item price in `currency`, without shipping.
- `originalPrice` (number): Price before the reduction when `isReduced` is true.
- `isReduced` (boolean): The seller has cut the price.
- `currency` (string): ISO currency code of the chosen marketplace, e.g. USD, GBP.
- `shippingPrice` (number): Shipping price Depop shows with the search result; null when not shown.
- `brand` (string): Brand name, e.g. Nike.
- `brandId` (integer): Depop's numeric brand id.
- `size` (string): Size label(s), comma-separated when the listing has several.
- `sizes` (array): All size labels of the listing.
- `condition` (string): brand_new, used_like_new, used_excellent, used_good or used_fair.
- `category` (string): Depop category name.
- `productType` (string): Product type, e.g. tshirts, jeans.
- `gender` (string): Department: male, female or null.
- `colours` (array): Colours the seller chose.
- `styles` (array): Style tags the seller chose.
- `sellerId` (integer): Seller's numeric Depop id.
- `sellerUsername` (string): Seller username. Always set in Shop mode; in Search mode only with "Add seller username".
- `sellerUrl` (string): Seller shop link.
- `sellerVerified` (boolean): Seller has the Depop verified badge; null when not fetched.
- `likes` (integer): Number of likes.
- `sold` (boolean): The listing is no longer on sale (sold or reserved).
- `status` (string): Depop's raw status, e.g. STATUS_ONSALE.
- `quantity` (integer): Quantity listed.
- `photo` (string): Main photo link.
- `photos` (array): All photo links, largest size Depop serves.
- `isBoosted` (boolean): Promoted (boosted) listing.
- `country` (string): Country the listing ships from.
- `createdAt` (null): Always null: Depop does not give the listing date to logged-out visitors.
- `sellerDetailsFetched` (boolean): Seller username and badge are filled in.
- `mode` (string): search or shop.
- `searchQuery` (string): Query that found the listing (Search mode).
- `shopUsername` (string): Shop the listing was taken from (Shop mode).
- `position` (integer): Position within its query or shop, from 1.
- `fetchedAt` (string): When the Actor read the listing (ISO 8601, UTC).

## Input settings

- `mode` (string): Search = listings Depop finds for your keywords. Shop = listings of the given Depop shops.
- `queries` (array): Keywords as you would type them on Depop, one search per line, up to 50. Used in Search mode.
- `shopUsernames` (array): Depop usernames or shop links (https://www.depop.com/username/), up to 50. Used in Shop mode.
- `maxItems` (integer): Stop each query or shop after this many saved listings. Each saved listing is one paid result.
- `brand` (string): Keep only this brand, e.g. Nike. The Actor looks up Depop's brand filter for this name; if Depop does not know the brand, rows are matched by brand name. In Search mode without queries, the brand itself is searched.
- `size` (string): Keep only listings with this size label as Depop shows it, e.g. M, US 9, 32 (jeans waist). Case, spaces and inch marks are ignored; W32 equals 32, and a bare number like 9 also matches US 9, UK 9 or EU 9.
- `priceMin` (number): Lowest item price in the marketplace currency, without shipping.
- `priceMax` (number): Highest item price in the marketplace currency, without shipping.
- `conditions` (array): Keep only these conditions. Empty = any condition.
- `sort` (string): Order of search results.
- `country` (string): Depop marketplace to search; prices come in its currency.
- `includeSellerDetails` (boolean): Search results carry only the seller's numeric id. On = open each listing page to add the seller's username, shop link and verified badge. Slower, and each enriched listing is one extra paid event. Shop mode always has the seller.

## Step by step on Apify

1. Open the Input tab.
2. Keep What to scrape (`mode`) as Search results.
3. Add a keyword to Search queries (`queries`), for example `vintage nike`. The form already has it.
4. Keep Max listings per query or shop (`maxItems`) at 20 for a first test.
5. Click Start.
6. Open the Output tab. The Overview table shows photo, title, price, brand, size, condition, likes, sold and link.

## Use cases

| Goal | Input | Key fields | Next step |
|---|---|---|---|
| Price research for resale | `queries`, `size`, `priceMin`/`priceMax`, `sort` | `price`, `originalPrice`, `condition`, `likes`, `sold` | Export CSV or Excel and compare prices |
| Watch a brand | `brand`, `conditions` | `brand`, `price`, `size`, `url`, `fetchedAt` | Run on a schedule and compare runs |
| Check a shop | `mode: shop`, `shopUsernames` | `price`, `sold`, `likes`, `category` + shop numbers in `RUN_SUMMARY` | Track stock and prices over time |
| Find sellers for an item | `queries`, `includeSellerDetails: true` | `sellerUsername`, `sellerUrl`, `sellerVerified` | Open the shop link |

## Tips

- Pick the right marketplace country before you start.
- Use shop mode to get seller names for free.
- Avoid rare filter mixes. The run stops a query with very few matches.

## Limits



- Run time: about 1,300 search listings take around 2–3 minutes. With `includeSellerDetails`, about 2 listings per second: 100 listings took under a minute in our test. The default timeout is 30 minutes; if time runs out, the run ends with `PARTIAL` and reason `TIME_LIMIT` and keeps what it saved.
- Page limit: at most 250 result pages (about 6,000 listings) per query or shop (`PAGE_LIMIT`). The largest run we tested saved 1,300 listings; bigger runs were not tested.
- Slow product pages: each Depop request waits at most 20 seconds. If product pages answer too slowly, seller details stop: the remaining listings are saved without a seller username, are not charged for `seller-details`, and are counted in `counts.sellerDetailsSkipped` with a warning in `RUN_SUMMARY`.
- Few results (`LOW_YIELD`): a run reads up to 5 search pages (or 2 shop pages) for free, plus 2 search pages for each saved listing. If pages keep giving almost nothing — typos, a size nobody sells, many overlapping queries — the run stops and the remaining queries or shops are `skipped`. For example, when the first two shops are not found, later shops are skipped.
- Rare filter (`SPARSE_FILTER`): after 10 pages, a query whose filters keep fewer than 1 in 100 listings is stopped, and the run moves to the next query.
- Shop mode: the Actor finds a shop's listings through Depop search for the username and keeps only that shop's items. It stops after 3 pages in a row without the shop's items. In our tests it returned all listings shown on the shop page, but very large shops may be incomplete.
- Duplicates: a listing found again in the same run is not saved again and not charged.

## Sample result

```json
{
  "id": 952642444,
  "slug": "example_seller-mens-medium-vintage-nike-track-156f",
  "url": "https://www.depop.com/products/example_seller-mens-medium-vintage-nike-track-156f/",
  "title": "Men’s medium vintage Nike track pants",
  "description": "Men’s medium vintage Nike track pants\nRip on waist but has been sewed",
  "price": 25,
  "originalPrice": 25,
  "isReduced": false,
  "currency": "USD",
  "shippingPrice": 3.99,
  "brand": "Nike",
  "brandId": 270,
  "size": "M",
  "sizes": ["M"],
  "condition": "used_fair",
  "category": "Joggers",
  "productType": "joggers-tracksuits",
  "gender": "male",
  "colours": ["navy", "black"],
  "styles": [],
  "sellerId": 12345678,
  "sellerUsername": null,
  "sellerUrl": null,
  "sellerVerified": null,
  "likes": 34,
  "sold": false,
  "status": "STATUS_ONSALE",
  "quantity": 1,
  "photo": "https://media-photos.depop.com/r1/12345678/1234567890_0123456789abcdef0123456789abcdef/P0.jpg",
  "photos": ["https://media-photos.depop.com/r1/12345678/1234567890_0123456789abcdef0123456789abcdef/P0.jpg"],
  "isBoosted": false,
  "country": "US",
  "createdAt": null,
  "sellerDetailsFetched": false,
  "mode": "search",
  "searchQuery": "vintage nike",
  "shopUsername": null,
  "position": 2,
  "fetchedAt": "2026-10-15T02:32:21.242Z"
}
```

## Use it from code

Actor ID: `cliqtomedia/depop-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/depop-scraper").call(run_input={
    "mode": "search",
    "queries": [
        "vintage nike"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~depop-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "queries": ["vintage nike"]}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/depop-scraper")
result = tool.invoke({"run_input": {"mode": "search", "queries": ["vintage nike"]}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Similar tools

- [AutoScout24 Scraper - EU Car Listings & Prices, No login](https://cliqtomedia.com/actors/car-listings-scraper/)
- [Kleinanzeigen Scraper: Listings, Prices & Photos (No Login)](https://cliqtomedia.com/actors/kleinanzeigen-scraper/)
- [OLX Listings Scraper: Poland, Ukraine, Romania & More](https://cliqtomedia.com/actors/olx-listings-scraper/)
- [Subito.it Scraper - Italy Classifieds & Prices, No Login](https://cliqtomedia.com/actors/subito-listings-scraper/)
- [Craigslist Scraper - Listings, Prices & Photos, No Login](https://cliqtomedia.com/actors/craigslist-scraper/)
- [Vinted Scraper - Listings, Prices & Brands in 25 Countries](https://cliqtomedia.com/actors/vinted-scraper/)
