
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Depop listings by keyword or URL, whole shops and seller reviews: prices, fees, shipping, brand, condition, sizes, colours, photos and seller stats in 12 markets. No login needed.
Turn Depop into clean, structured data: search listings by keyword with brand, price, condition, colour and category filters, paste any Depop URL (product, search, shop, category or brand page), or pull every review a seller has received. You get prices with fees and shipping, brand, condition, sizes, colours, photos and seller stats in 12 Depop markets, with no login and no browser. A 1,000-listing search finishes in about 20 seconds.
nike vintage), or paste Depop URLs, or add sellers for reviews.| Field | What it does |
|---|---|
searchQueries | Keywords; each runs its own Depop search with the filters. |
startUrls | Product, search, shop, category or brand URLs from depop.com. |
maxItems | Results per keyword, URL or seller (default 20, 0 = all). |
country | Depop market: us, gb, au, ca, nz, ie, fr, de, it, es, nl, be. |
sortBy | relevance, priceLowToHigh or priceHighToLow. |
minPrice / maxPrice | Price range in the market's currency. |
gender, categories, productTypes, brandIds, conditions, colours, sizes | Depop's own search filters. |
onSaleOnly, kidsOnly | Discounted items only, kidswear only. |
includeDetails | Adds seller stats, Depop title, readable names and national shipping (extra event). |
reviewSellers, reviewRole | Sellers whose reviews to save, as a seller or as a buyer. |
proxyConfiguration | Residential proxy in the market's country by default. |
{
"searchQueries": ["carhartt jacket", "nike vintage"],
"country": "gb",
"minPrice": 20,
"maxPrice": 80,
"conditions": ["used_like_new", "used_excellent"],
"maxItems": 100,
"includeDetails": true
}
Each listing is one row. Seller fields marked * are filled when details are on, or for shop URLs.
| Field | Description |
|---|---|
title | Depop title with details on, otherwise the first line of the description |
price, currency | Item price in the market's currency |
totalPrice, buyerFee, tax | What Depop shows the buyer, with fee and tax |
shippingCost, shippingProvider, nationalShippingCost | Shipping price and carrier |
isReduced, originalPrice, discountPercentage | Price drops |
brandName, categoryName, group, productType, gender | What the item is |
conditionId, conditionName, colours, style, age, sourceTags | Item attributes |
sizes, sizeNames, quantity | Sizes with stock |
pictures, mainPicture, likeCount, location | Photos, likes and where it ships from |
sellerId, sellerUsername, sellerReviewsRating, sellerReviewsTotal, sellerItemsSold, sellerLastSeen* | Seller |
url, source, scrapedAt | Listing link, the input that found it, and when |
Review rows (type: "review") carry rating, text, date, authorUsername, productId, productPicture and the seller's profile stats.
Example listing with details on (seller data is fictional):
{
"type": "listing",
"id": "963134634",
"url": "https://www.depop.com/products/vintagefinds_uk-vintage-rework-carhartt-jacket-05fc/",
"title": "Carhartt Men's Multi Jacket",
"description": "Vintage rework Carhartt Jacket - patchwork\n\n#carhartt #jacket #vintage",
"price": 25,
"currency": "GBP",
"totalPrice": 29.94,
"buyerFee": 1.95,
"shippingCost": 2.99,
"shippingProvider": "MY_HERMES",
"isReduced": false,
"brandName": "Carhartt",
"categoryName": "Outerwear",
"group": "coats-jackets",
"productType": "jackets",
"gender": "male",
"conditionName": "Excellent condition",
"colours": ["Multi", "Black"],
"sizeNames": ["XXL"],
"likeCount": 0,
"pictureCount": 3,
"mainPicture": "https://media-photos.depop.com/b1/100000001/4999478659_e38dfa42005049d1b8017e0aed407845/P0.jpg",
"location": "Leeds, United Kingdom",
"sellerId": "100000001",
"sellerUsername": "vintagefinds_uk",
"sellerReviewsRating": 4.9,
"sellerReviewsTotal": 37,
"sellerItemsSold": 52,
"sellerLastSeen": "active_this_week",
"market": "gb",
"source": "carhartt jacket",
"detailsFetched": true
}
Set a maximum cost per run in the run options and the run stops cleanly when it is reached.
Is it legal to scrape Depop? The actor reads only public listing, shop and review pages that anyone can open without an account. Check Depop's terms and the data-protection rules that apply to you before using personal data such as seller names.
Do I need a Depop account or my own proxy? No. Depop refuses datacenter connections, so the actor uses residential proxies in the market's country by default.
How many results can I get? Up to 100,000 per keyword, URL or seller. Depop's search stops paging at about 3,000 results, so deeper keyword runs continue by price range automatically (10,000 unique listings measured in about 95 s). Shops are walked to the last item.
Why is a field empty? Sellers leave some attributes empty (style, age, material). Seller username and stats need Seller and full item details on, except for shop URLs, where they are always filled.
Can I schedule it or use the API? Yes. Schedule runs from the console, or start them through the API and read the dataset as JSON, CSV or Excel.
Can I sort by newest? Depop no longer offers a newest-first sort, so the actor offers relevance and price order.
sellerLastSeen is Depop's activity label (for example active_today), not a timestamp.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
Each keyword runs its own Depop search in the selected country, with the filters below. Leave empty when you only paste URLs or seller names.
startUrlsarrayOptionalDepop URLs
Product pages (/products/...), search URLs with their filters (/search/?q=...), shops (/username/, every item the seller has listed), and category or brand pages (/category/mens/tops/, /brands/nike/).
maxItemsintegerOptionaldefault 20Max results per search or URL
How many results to save for each keyword, URL, or seller. 0 means everything Depop returns (up to 100,000 each).
Apply to keyword searches. Search, category and brand URLs keep the filters in the URL.
countryenumOptionaldefault "us"Country
Depop market for keyword searches and URLs. Prices come back in its currency, and the proxy exits in this country.
sortByenumOptionaldefault "relevance"Sort by
Order of the search results. Depop no longer offers a newest-first sort.
minPricenumberOptionalMinimum price
Lowest item price, in the market's currency.
maxPricenumberOptionalMaximum price
Highest item price, in the market's currency.
genderenumOptionaldefault "any"Department
Womenswear or menswear only.
categoriesarrayOptionalCategories
Depop category slugs, for example tops, bottoms, coats-jackets, footwear, dresses, accessories, bags-and-purses, jewellery. Leave empty for all.
productTypesarrayOptionalProduct types
Narrower Depop product types, for example tshirts, hoodies, jeans, sneakers, boots. Leave empty for all.
brandIdsarrayOptionalBrand IDs
Numeric Depop brand IDs, for example 270 for Nike or 1673 for Carhartt (the number in brands=... of a Depop search URL).
conditionsarrayOptionalCondition
Only items in these conditions. Leave empty for all.
coloursarrayOptionalColours
Only items in these colours. Leave empty for all.
sizesarrayOptionalSize IDs
Advanced: Depop size IDs such as 54.6 (the sizes=... value of a Depop search URL). Size IDs depend on the category.
onSaleOnlybooleanOptionaldefault falseDiscounted items only
Only items with a price reduction.
kidsOnlybooleanOptionaldefault falseKidswear only
Only kids' items.
includeDetailsbooleanOptionaldefault falseSeller and full item details
Open each item to add the seller (username, rating, reviews, items sold, last seen), the Depop title, readable condition, colour and category names, and the national shipping price. Slower, and billed as an extra item-details event. Product URLs always include these at no extra charge.
reviewSellersarrayOptionalSellers for reviews
Depop usernames or shop URLs. Each seller's reviews are saved as one row per review, with rating, text, date, reviewer and the product reviewed.
reviewRoleenumOptionaldefault "seller"Review type
Reviews the user received as a seller or as a buyer.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Depop refuses datacenter connections, so residential proxies in the market's country are the default. If you pick datacenter, the run moves to residential by itself after the first refusals.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| type | string | null | listing or review |
| id | string | null | Depop listing ID (reviews: seller:transaction:role) |
| slug | string | null | |
| url | string | null | Listing page |
| title | string | null | Depop title with details on, else the first line of the description |
| description | string | null | |
| price | number | null | Item price |
| currency | string | null | |
| totalPrice | number | null | Total Depop shows the buyer: item price plus buyer fee and tax, and shipping where Depop includes it |
| originalPrice | number | null | Price before the reduction |
| isReduced | boolean | null | |
| discountPercentage | number | null | |
| buyerFee | number | null | |
| tax | number | null | |
| shippingCost | number | null | |
| shippingProvider | string | null | |
| nationalShippingCost | number | null | |
| hasFreeShipping | boolean | null | |
| status | string | null | |
| isSold | boolean | null | |
| brandId | string | null | |
| brandName | string | null | |
| categoryName | string | null | |
| group | string | null | |
| productType | string | null | |
| gender | string | null | |
| isKids | boolean | null | |
| conditionId | string | null | |
| conditionName | string | null | |
| colours | array | null | |
| sizes | array | null | |
| sizeNames | array | null | |
| likeCount | number | null | |
| pictures | array | null | |
| mainPicture | string | null | |
| pictureCount | number | null | |
| location | string | null | |
| countryCode | string | null | |
| isBoosted | boolean | null | |
| sellerId | string | null | |
| sellerUsername | string | null | |
| sellerUrl | string | null | |
| sellerVerified | boolean | null | |
| sellerReviewsRating | number | null | |
| sellerReviewsTotal | number | null | |
| sellerItemsSold | number | null | |
| sellerLastSeen | string | null | |
| market | string | null | |
| source | string | null | Keyword, URL or seller that found the row |
| detailsFetched | boolean | null | |
| scrapedAt | string | null | |
| role | string | null | |
| rating | number | null | |
| text | string | null | |
| date | string | null | |
| authorUsername | string | null | |
| productId | string | null | |
| productPicture | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Item details | Seller and full item details for one listing (only when details are on). | $0.0007 |
| Result | One saved listing or review. | $0.0016 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/depop-scraper').call({
"searchQueries": [
"nike vintage"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/depop-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/depop-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
UK listings with the seller's rating, items sold and the Depop title.
Brand, department, category and condition filters on a keyword search.
Paste any Depop URL: whole shops, category pages and searches with their filters.
Rating, text, date and reviewer for each review the seller received.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.