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

Scrape live Dewu (Poizon) resale prices by style code, SPU id or product link: lowest ask, price floor and ceiling, official retail, size run, SKUs, specs, colorways and images. No login needed.
Get live China resale prices from Dewu (得物, also known as Poizon), China's largest authenticated sneaker, streetwear and luxury marketplace. Paste the style codes you already track on other resale sites, Dewu SPU ids or Dewu product links. Each product comes back as one clean row with the lowest ask, price floor and ceiling, official retail price, full size run, every SKU, specs, colorways and images. No login, no app, no cookies.
555088-007 or DD1391-100 exactly as printed on the box, and join the rows to your existing resale data without fuzzy matching.spuId column once and re-run it on a schedule to build a daily price history.| Field | What it does |
|---|---|
styleCodes | Manufacturer style codes such as 555088-007, DD1391-100, B75806. Case, spaces and hyphens do not matter. |
spuIds | Dewu product ids such as 1547881. The fastest and most reliable way in. |
productUrls | Dewu product links: web and mobile pages with spuId= in them, app share links and dw4.co short links. |
maxItems | Most products to save in one run, colorways included (default 20, 0 = no limit). |
onlyInStock, minPriceCny, maxPriceCny | Filters on the live lowest ask. Skipped products are not charged. |
includeColorways, maxColorwaysPerProduct | Also save the other colorways of each product (as many per product as you set). |
proxyConfiguration | Proxy for Dewu pages. The default datacenter proxy works well. |
{
"styleCodes": ["555088-007", "DD1391-100", "B75806"],
"spuIds": ["1547881"],
"maxItems": 20,
"includeColorways": false
}
One row per product. The main fields:
| Field | Description |
|---|---|
productTitle, brandName | Product title as listed on Dewu and the brand |
articleNumber | Manufacturer style code |
priceCny | Current lowest ask in yuan |
minSalePriceCny, maxSalePriceCny | Price floor and ceiling across sizes |
authPriceCny | Official retail price in yuan |
originPriceCny, activityPriceCny | Reference price and promotional price, when shown |
sizes, variants | Size run and other sale options (for example with or without the original box) |
skus | Every SKU with its size, sale properties, retail price and status |
colorway, seriesName, categoryName, sellDate | Colorway, model series, category and release date |
specs | Product parameters as Dewu lists them (colors, materials, release price, ...) |
images, logoUrl | All product images and the main image |
spuId, skuId, lowestPriceSkuId, brandId, categoryId | Dewu ids |
colorwaySpuIds | SPU ids of the other colorways of the same model |
url, shareUrl | Dewu web page and app share link |
sourceQuery, scrapedAt | The input that produced the row and the scrape time |
Example row from a test run (lists shortened):
{
"productTitle": "Jordan Air Jordan 1 \"shadow\"影子 牛剖层革合成革 舒适贴合 时尚简约 潮流经典运动休闲 减震防滑耐磨 低帮 复古篮球鞋 男女同款 黑白灰",
"brandName": "Jordan",
"articleNumber": "553558-040",
"priceCny": 538,
"minSalePriceCny": 538,
"maxSalePriceCny": 1299,
"originPriceCny": 538,
"authPriceCny": 849,
"currency": "CNY",
"hasPrice": true,
"sizes": ["35.5", "36", "36.5", "37.5", "38", "38.5", "39", "40"],
"variants": ["有原装鞋盒"],
"colorway": "黑/白/灰",
"seriesName": "Air Jordan 1系列",
"categoryName": "复古篮球鞋",
"sellDate": "2021.07.01",
"logoUrl": "https://cdn.poizon.com/pro-img/origin-img/20251207/4b4aec57f5564bbfb3cf9a61d81ab0a2.jpg",
"spuId": "1547881",
"skuId": "603407916",
"lowestPriceSkuId": "603407916",
"brandId": "13",
"skus": [
{"skuId": "603407909", "size": "40", "properties": {"版本": "有原装鞋盒", "尺码": "40"}, "authPriceCny": 849, "status": 1}
],
"specs": {"主色": "黑色", "辅色": "白色,灰色", "鞋头款式": "圆头"},
"colorwaySpuIds": ["85858980", "85840003", "4185679"],
"url": "https://www.dewu.com/product-detail.html?spuId=1547881",
"sourceQuery": "1547881",
"scrapedAt": "2026-10-21T07:16:09+00:00"
}
The SKUs view of the dataset has one row per SKU (size), ready for size-level spreadsheets. The run's OUTPUT record lists inputs that were not found or could not be loaded.
Pay per product: $25 per 1,000 products ($0.025 per product row). There is no start fee. Products that are not found, skipped by your filters or could not be loaded are never charged.
Example: 1,000 products ≈ $25 plus platform usage. Platform usage (compute and the datacenter proxy) is billed separately and is small for this actor: a few cents per 1,000 products in our tests.
Is it legal to scrape Dewu? The actor reads public product pages that anyone can open without an account. It does not log in and does not collect personal data. Check that your use of the data follows the laws and terms that apply to you.
Do I need a Dewu account, cookies or a proxy? No account and no cookies. The default datacenter proxy is included and works well.
What if a style code is not found?
Style codes are matched through a built-in index of about 69,000 style codes (mostly sneakers and streetwear: Nike, Jordan, adidas, Supreme, Converse, PUMA, Vans, New Balance and more). A very new or rare release may not be in it yet. Pass its SPU id or Dewu product link instead; those always resolve live. Codes that were not found are listed in the run's status message and OUTPUT record, and they are not charged.
Why is a price field empty?
priceCny is empty when nobody is selling the product on Dewu right now (sold out in every size). activityPriceCny is only filled when Dewu shows a promotional price. Turn on Only products with a live price to skip products without a live ask.
How many products can I scrape? As many as you like. Set Max products to 0 for no limit. Each product is one request, so large watchlists finish in minutes.
Can I schedule it or use the API? Yes. Save your input as a task and schedule it daily for a price history, or start runs through the API and read the dataset as JSON, CSV or Excel.
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.
styleCodesarrayOptionalStyle codes
Manufacturer style codes exactly as printed on the box, one per line, e.g. 555088-007 (Air Jordan 1), DD1391-100 (Nike Dunk Low), B75806 (adidas Samba OG). Case, spaces and hyphens do not matter. Codes are matched through a built-in style-code index; if a code is missing, pass its SPU id or product link instead.
spuIdsarrayOptionalDewu SPU ids
Dewu product ids, one per line, e.g. 1547881. The fastest and most reliable way in: save the spuId column of a run and re-run it on a schedule to track prices over time.
productUrlsarrayOptionalDewu product links
Dewu product links, one per line: web or mobile pages with spuId=... in them (e.g. https://www.dewu.com/product-detail.html?spuId=1547881), app share links and dw4.co short links.
maxItemsintegerOptionaldefault 20Max products
The most products to save in this run, colorways included. 0 = no limit.
Skipped products are not saved and not charged.
onlyInStockbooleanOptionaldefault falseOnly products with a live price
Skip products that have no current lowest ask on Dewu (sold out in every size).
minPriceCnyintegerOptionalMin price (CNY)
Only save products whose current lowest ask is at least this many yuan.
maxPriceCnyintegerOptionalMax price (CNY)
Only save products whose current lowest ask is at most this many yuan.
Expand each product to the other colorways Dewu groups with it (same model, different colors or versions).
includeColorwaysbooleanOptionaldefault falseAlso scrape other colorways
For every product you asked for, also save the other colorways of the same model. Each colorway is a separate product row.
maxColorwaysPerProductintegerOptionaldefault 10Max colorways per product
How many other colorways to add per product. 0 adds none.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy used to load Dewu pages. The default datacenter proxy works well.
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 |
|---|---|---|
| productTitle | string | null | Product title as listed on Dewu (Chinese, with a Latin brand and model head) |
| brandName | string | null | Brand, e.g. Nike, Jordan, adidas originals |
| articleNumber | string | null | Manufacturer style code, e.g. DD1391-100 |
| articleNumbers | array | null | All style codes Dewu lists for the product |
| priceCny | number | null | Current lowest ask in yuan |
| minSalePriceCny | number | null | Price floor across sizes in yuan |
| maxSalePriceCny | number | null | Price ceiling across sizes in yuan |
| originPriceCny | number | null | Reference price before discount in yuan |
| activityPriceCny | number | null | Promotional price in yuan, when Dewu shows one |
| authPriceCny | number | null | Official retail (launch) price in yuan |
| currency | string | null | Currency of all prices (CNY) |
| hasPrice | boolean | null | True when the product has a live lowest ask |
| isSold | boolean | null | True when the product is on sale now (has a live ask) |
| sizes | array | null | Every size Dewu lists for the product |
| variants | array | null | Other sale options, e.g. with or without the original box |
| colorway | string | null | Colorway as Dewu names it |
| seriesName | string | null | Model series, e.g. Air Jordan 1系列 |
| categoryName | string | null | Dewu category name |
| sellDate | string | null | Release date (YYYY.MM.DD) |
| soldCountText | string | null | Sales count text, when Dewu shows one |
| subTitle | string | null | Subtitle |
| originalTitle | string | null | Original (short) product title |
| logoUrl | string | null | Main product image |
| images | array | null | All product image URLs |
| spuId | string | null | Dewu SPU id; save it to re-run the same watchlist |
| productId | string | null | Product id (same as spuId) |
| skuId | string | null | SKU carrying the current lowest ask |
| lowestPriceSkuId | string | null | SKU id of the cheapest size |
| brandId | string | null | Dewu brand id |
| categoryId | string | null | Dewu category id |
| level1CategoryId | string | null | Top-level category id |
| level2CategoryId | string | null | Second-level category id |
| itemType | number | null | Dewu goods type |
| skus | array | null | Every SKU: id, size, sale properties, official retail price and status |
| specs | object | null | Product parameters as Dewu lists them (colors, materials, release price, ...) |
| colorwaySpuIds | array | null | SPU ids of the other colorways of the same model |
| priceFen | number | null | Lowest ask in fen (1/100 yuan) |
| minSalePriceFen | number | null | Price floor in fen |
| maxSalePriceFen | number | null | Price ceiling in fen |
| extInfo | object | null | Extra product flags from Dewu |
| url | string | null | Dewu product page |
| shareUrl | string | null | Dewu app share link |
| sourceUrl | string | null | Page the data was read from |
| sourceQuery | string | null | The style code, SPU id or link that produced this row |
| scrapedAt | string | null | When the product was scraped (UTC) |
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 |
|---|---|---|
| Product | One Dewu product with live prices, size run, SKUs and images saved to the dataset. Not-found, filtered and failed inputs are never charged. | $0.025 |
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/dewu-scraper').call({
"styleCodes": [
"555088-007",
"DD1391-100",
"B75806"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// 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/dewu-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/dewu-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.
Live lowest ask, retail price and size run for five popular sneakers, looked up by their Dewu SPU ids.
One product and four other colorways of the same model, each with its live China price.
Style-code lookup that keeps only products currently selling between 400 and 1,500 yuan.
Paste Dewu web, mobile or app share links and get the product rows back.
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.