Depop logo

Marketplaces · Live on Apify

Depop scraper for listings, prices and shops

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.

About $1.50 for 1,000 results$0.0015 per result + $0.004 per run. Apify bills you, not us.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

slugexample_seller-mens-medium-vintage-nike-track-156f
urlhttps://www.depop.com/products/example_seller-mens-medium-vintage-nike…
titleMen’s medium vintage Nike track pants

How to use it: 3 steps

  1. Make a free Apify accountApify 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 StartNo 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 resultsWhen 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.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

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).

Who uses it

Resellers

Check prices of a brand or item before you buy or sell.

Shop owners

See how a rival shop prices items and what has sold.

Fashion researchers

Collect brands, sizes and photos for trend study.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.004Charged 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.0015Seller username, shop link and verified badge read from the listing page (Search mode, only when turned on).

Examples

  • 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. That is enough for about 3,300 results.

Prices checked on 24 October 2026. See the current price on Apify.

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.

Details

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
GoalInputKey fieldsNext step
Price research for resalequeries, size, priceMin/priceMax, sortprice, originalPrice, condition, likes, soldExport CSV or Excel and compare prices
Watch a brandbrand, conditionsbrand, price, size, url, fetchedAtRun on a schedule and compare runs
Check a shopmode: shop, shopUsernamesprice, sold, likes, category + shop numbers in RUN_SUMMARYTrack stock and prices over time
Find sellers for an itemqueries, includeSellerDetails: truesellerUsername, sellerUrl, sellerVerifiedOpen the shop link
Tips for better results
  • 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 and good to know
  • 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

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one 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. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
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)
cURL
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"]}'
LangChain · langchain-apify
# 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)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (39)
FieldTypeMeaning
idintegerDepop product id.
slugstringProduct slug, the last part of the listing link.
urlstringListing page on depop.com.
titlestringDepop has no title field: the first line of the description, up to about 100 characters.
descriptionstringFull listing description as the seller wrote it.
pricenumberCurrent item price in currency, without shipping.
originalPricenumberPrice before the reduction when isReduced is true.
isReducedbooleanThe seller has cut the price.
currencystringISO currency code of the chosen marketplace, e.g. USD, GBP.
shippingPricenumberShipping price Depop shows with the search result; null when not shown.
brandstringBrand name, e.g. Nike.
brandIdintegerDepop's numeric brand id.
sizestringSize label(s), comma-separated when the listing has several.
sizesarrayAll size labels of the listing.
conditionstringbrand_new, used_like_new, used_excellent, used_good or used_fair.
categorystringDepop category name.
productTypestringProduct type, e.g. tshirts, jeans.
genderstringDepartment: male, female or null.
coloursarrayColours the seller chose.
stylesarrayStyle tags the seller chose.
sellerIdintegerSeller's numeric Depop id.
sellerUsernamestringSeller username. Always set in Shop mode; in Search mode only with "Add seller username".
sellerUrlstringSeller shop link.
sellerVerifiedbooleanSeller has the Depop verified badge; null when not fetched.
likesintegerNumber of likes.
soldbooleanThe listing is no longer on sale (sold or reserved).
statusstringDepop's raw status, e.g. STATUS_ONSALE.
quantityintegerQuantity listed.
photostringMain photo link.
photosarrayAll photo links, largest size Depop serves.
isBoostedbooleanPromoted (boosted) listing.
countrystringCountry the listing ships from.
createdAtnullAlways null: Depop does not give the listing date to logged-out visitors.
sellerDetailsFetchedbooleanSeller username and badge are filled in.
modestringsearch or shop.
searchQuerystringQuery that found the listing (Search mode).
shopUsernamestringShop the listing was taken from (Shop mode).
positionintegerPosition within its query or shop, from 1.
fetchedAtstringWhen the Actor read the listing (ISO 8601, UTC).
Input settings (12)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
What to scrapemodestring"search"
Search queriesqueriesarray["vintage nike"]
Shop usernamesshopUsernamesarray
Max listings per query or shopmaxItemsinteger20
Brandbrandstring
Sizesizestring
Min pricepriceMinnumber
Max pricepriceMaxnumber
Conditionconditionsarray
Sortsortstring"relevance"
Marketplacecountrystring"us"
Add seller username (Search mode)includeSellerDetailsbooleanfalse

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure