# Dewu (Poizon) Scraper \[$1.50/1K💰] | KRW Prices | Sizes (`ahmed_jasarevic/dewu-poizon-scraper`) Actor

Scrape Dewu (Poizon) KR products by keyword or SPU: KRW prices, per-size stock and prices, reviews, images and optional price tracking. Export to CSV, JSON or API for resale analytics.

- **URL**: https://apify.com/ahmed_jasarevic/dewu-poizon-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Features:** Limited permissions
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Dewu (Poizon) Scraper

Scrape Dewu (Poizon) Korea products by keyword or SPU — KRW prices, per-size stock and prices, reviews, images and optional run-to-run price tracking — and export the sneaker market as structured data.

### Track Sneaker Prices And Analyze The Korean Resale Market

- Track KRW resale prices for a brand, silhouette or style code
- Compare size runs and per-size availability before buying or listing
- Monitor price movement between runs with a named key-value store
- Build a sneaker catalogue with article numbers, categories and release dates
- Research the Korean market against KREAM, SNKRDUNK, GOAT or Stadium Goods

### How It Works

![How the Dewu (Poizon) Scraper turns a keyword or SPU into sneaker rows with KRW prices and per-size availability.](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-dewu-poizon-scraper.webp)

The Actor collects publicly available Dewu (Poizon) Korea product data and normalizes it into one schema. Provide keywords or SPU IDs; it reads the published search and product pages, then writes one row per product.

- Search mode returns summary rows and pages through 60 products at a time.
- Products mode adds the size run, per-size prices, reviews, images and favourite count.
- Prices are in KRW.

### Scrape Dewu (Poizon) Sneakers By Keyword Or SPU

- `mode: "search"` uses `searchQueries` such as `Nike Dunk Low`, a brand name or a style code
- `mode: "products"` uses `productIds` — an SPU id (`638652134`) or a product URL (`https://kr.poizon.com/product/638652134`)
- `language` controls the title language (`en`, `zh`, `ja`, `ko`); prices stay in KRW
- `sortType` supports default (`0`), best selling (`1`), new in (`3`) and price (`4`)
- `sortMode` sets price direction: low to high (`0`) or high to low (`1`)
- `maxItems` caps products per run; the Actor pages automatically until the cap is reached

### KRW Prices, Size Runs And Per-Size Availability

Products mode returns the fields resale workflows need:

- `price` and `priceText` for the headline ask, in `KRW`
- `sizes[]` with `size`, `price`, `currency`, `status`, `available` and `delivery`
- `articleNumber` for matching the same shoe across marketplaces
- `favoriteCount`, `reviews[]` and `releaseDate` as demand signals
- `images` and `descriptionImages` for catalogue building

Search mode returns the summary record without `sizes`, `reviews` or the image gallery. If size-level data matters, use products mode with the SPU ids you care about.

### Sneaker Resale Price Tracking And Market Research

Set `stateStoreName` to a named key-value store to enable price comparison between runs. Each record then gains a `priceTracking` object:

| Field | Meaning |
| --- | --- |
| `currentPrice` | Price in the current run |
| `previousPrice` | Price stored by the previous run, or `null` on the first run |
| `change`, `changePct` | Absolute and percentage change |
| `direction` | `up`, `down`, `same` or `new` |
| `previousUpdatedAt` | Timestamp of the stored price |

Prices are only compared when the currency matches, so a change in storefront currency does not create a false movement.

### Input

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `mode` | string | Yes | `search` | `search` or `products`. |
| `searchQueries` | array of strings | No | `["Nike Dunk Low"]` | Keywords, brands or style codes. Required when `mode` is `search`. |
| `productIds` | array of strings | No | — | SPU ids or product URLs. Required when `mode` is `products`. |
| `language` | string | No | `zh` | `en`, `zh`, `ja` or `ko`. Prices remain in KRW. |
| `maxItems` | integer | No | `50` | Maximum products pushed to the dataset. |
| `sortType` | integer | No | `0` | `0` default, `1` best selling, `3` new in, `4` price. |
| `sortMode` | integer | No | `1` | With price sort: `0` low to high, `1` high to low. |
| `requestDelayMs` | integer | No | `500` | Base delay between operations, plus jitter. |
| `maxRetries` | integer | No | `3` | Retries per operation with backoff. |
| `stateStoreName` | string | No | — | Enables price comparison between runs using a named key-value store. |
| `includeRaw` | boolean | No | `false` | Add the original source objects to each row. |
| `proxyConfiguration` | object | No | — | Optional. Off by default. |

### Output

One row per product.

| Field | Description |
| --- | --- |
| `productId`, `spuId`, `skuId` | Product identifiers. |
| `title`, `brand`, `articleNumber` | Product identity and style code. |
| `category`, `level1Category` | Category path. |
| `price`, `currency`, `priceText` | Headline price in KRW. |
| `saleTag`, `label`, `releaseDate` | Merchandising and release signals. |
| `url`, `imageUrl` | Canonical product URL and main image. |
| `sizes` | Per-size `skuId`, `size`, `price`, `status`, `available`, `delivery` (products mode). |
| `properties` | Base properties such as article number and colourway (products mode). |
| `reviews` | Up to 10 recent reviews with score, date, size feeling and text (products mode). |
| `favoriteCount` | Favourites count (products mode). |
| `images`, `descriptionImages` | Gallery and description images (products mode). |
| `priceTracking` | Current/previous price and change when `stateStoreName` is set. |
| `region`, `language`, `tradingRoles` | Storefront context. |
| `scrapedAt` | Run timestamp. |

### Example Input

Search mode:

```json
{
  "mode": "search",
  "searchQueries": ["Nike Dunk Low", "DD1391-100"],
  "maxItems": 100,
  "sortType": 4,
  "sortMode": 0
}
```

Products mode with price tracking:

```json
{
  "mode": "products",
  "productIds": ["638652134"],
  "stateStoreName": "dewu-price-history",
  "maxItems": 1
}
```

### Example Output

```json
{
  "productId": "638652134",
  "spuId": 638652134,
  "title": "Nike Dunk Low Retro",
  "brand": "Nike",
  "articleNumber": "DD1391-100",
  "category": "Sneakers",
  "level1Category": "Shoes",
  "price": 129000,
  "currency": "KRW",
  "priceText": "₩129,000",
  "url": "https://kr.poizon.com/product/638652134",
  "saleTag": null,
  "favoriteCount": 4821,
  "sizes": [
    {
      "skuId": 987654321,
      "size": "270",
      "price": 129000,
      "currency": "KRW",
      "status": 1,
      "available": true,
      "delivery": "2-4 days"
    }
  ],
  "priceTracking": {
    "currentPrice": 129000,
    "currency": "KRW",
    "previousPrice": 133000,
    "change": -4000,
    "changePct": -3.01,
    "direction": "down",
    "previousUpdatedAt": "2026-10-16T08:00:00.000Z"
  },
  "scrapedAt": "2026-10-23T08:30:00.000Z"
}
```

### Schedule Sneaker Price Monitoring

- Read results through the **Apify API** or export **JSON, CSV, Excel or HTML**
- Connect **Zapier, Make or Google Sheets** through Apify integrations
- Use a **webhook** to alert on a price drop
- Schedule products-mode runs daily or weekly for a fixed SPU list; `stateStoreName` keeps the previous price between runs

Search mode is best for discovery and catalogue building; products mode is best for monitoring a known list of style codes.

### Related Actors

- [KREAM Scraper](https://apify.com/abotapi/kream-scraper) — Korean resale prices, asks, bids and size data for cross-market comparison
- [SNKRDUNK Scraper](https://apify.com/abotapi/snkrdunk-com-scraper) — Japan's resale marketplace with JPY price statistics
- [GOAT Scraper](https://apify.com/lulzasaur/goat-scraper) — US resale listings with lowest ask and style codes
- [Stadium Goods Scraper](https://apify.com/lulzasaur/stadiumgoods-scraper) — sneaker and streetwear catalogue with size availability
- [Flight Club Scraper](https://apify.com/lulzasaur/flightclub-scraper) — US resale listings with retail and instant-ship prices

### FAQ

#### Does Poizon have a public API?

Poizon runs an Open Platform for merchants and ISVs that requires an app key; it is not a self-serve public read API. This Actor collects the publicly visible KR storefront product data without an account or app key.

#### Why are prices in KRW?

The Actor targets the Korean Dewu storefront, which prices in KRW. Other storefronts and currencies are a different market; the `currency` field on every row makes the unit explicit so you never mix KRW with CNY or JPY.

#### What is the difference between search mode and products mode?

Search mode returns summary rows from keyword search and pages 60 products at a time. Products mode opens each SPU page and adds the size run, per-size prices, reviews, gallery images and favourite count. Use search to discover ids, products to monitor them.

#### What are alternatives to this Actor?

KREAM, SNKRDUNK, GOAT, Stadium Goods and Flight Club scrapers each cover a different resale marketplace. Poizon is the Korean storefront, so it complements rather than replaces those sources; comparing the same `articleNumber` across them shows regional spreads.

#### How does price tracking work?

Set `stateStoreName` to any named key-value store. On each run the Actor reads the previous price for the product, computes the change and writes the new value back. The first run returns `direction: "new"` because there is no previous price.

#### Why do some rows have no sizes?

Sizes, reviews and gallery images are only fetched in products mode. Search results are summary records by design, which keeps large keyword crawls fast and cheap.

### For AI Agents & LLM Apps

Returns one row per Dewu (Poizon) product with KRW pricing and, in products mode, per-size availability and reviews.

Minimal working input (search mode):

```json
{ "mode": "search", "searchQueries": ["Nike Dunk Low"], "maxItems": 20 }
```

Full detail for known SPUs (includes sizes and reviews):

```json
{ "mode": "products", "productIds": ["638652134"], "maxItems": 5, "stateStoreName": "dewu-price-history" }
```

Output fields: `productId`, `spuId`, `skuId`, `title`, `brand`, `articleNumber`, `category`, `level1Category`, `price`, `currency`, `priceText`, `imageUrl`, `url`, `saleTag`, `label`, `favoriteStatus`, `region`, `language`, `releaseDate`, `tradingRoles`, `images`, `descriptionImages`, `properties`, `sizes`, `favoriteCount`, `reviews`, `priceTracking`, `scrapedAt`.

Behaviors an agent should know:

- `mode` is required. `search` needs `searchQueries`; `products` needs `productIds`.
- Search mode returns summary rows without `sizes`, `reviews`, `images` or `favoriteCount`; use products mode for those fields.
- `maxItems` is a hard output cap; search pages hold 60 products.
- `stateStoreName` enables price comparison and must stay the same between runs to track a product.
- `sortMode` only matters when `sortType` is `4` (price).

Billing: pay-per-event at **$0.0015 per product** ($1.50 per 1,000 rows).

### Legal & Compliance Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Dewu or Poizon. It reads publicly available product and search pages; it does not log in, bypass access controls or solve CAPTCHAs.

Product data, prices and reviews belong to their respective owners. Users are responsible for complying with the source platform's Terms of Service and applicable law when storing, republishing or reselling this data.

### SEO Keywords

dewu scraper, poizon scraper, dewu api, poizon api, poizon sneaker prices, dewu sneaker prices, krw sneaker prices, sneaker resale prices, poizon size run, kream scraper, snkrdunk scraper, goat scraper, sneaker market research, resale price tracking, nike dunk low price, sneaker size availability, korea sneaker market, sneaker price database

# Actor input Schema

## `mode` (type: `string`):

Search by keyword or fetch specific products by SPU ID/URL.

## `searchQueries` (type: `array`):

Keywords, brand names or style codes, e.g. Nike Dunk Low or DZ5485-612.

## `productIds` (type: `array`):

POIZON SPU IDs or product URLs, e.g. 638652134 or https://kr.poizon.com/product/638652134.

## `language` (type: `string`):

Language for product titles and descriptions returned by the search API. Prices remain in KRW.

## `maxItems` (type: `integer`):

Maximum number of products to push to the dataset. The actor automatically fetches as many pages as needed (60 per page) until this limit is reached.

## `sortType` (type: `integer`):

0 = default, 1 = best selling, 3 = new in, 4 = price.

## `sortMode` (type: `integer`):

Used with price sort: 0 = low to high, 1 = high to low.

## `requestDelayMs` (type: `integer`):

Base delay between requests. A random jitter is added on top.

## `maxRetries` (type: `integer`):

Retries per request with exponential backoff and proxy rotation.

## `stateStoreName` (type: `string`):

Optional. Enables price comparison between runs using a named key-value store.

## `includeRaw` (type: `boolean`):

Add the original API/Next.js objects to each dataset item.

## `proxyConfiguration` (type: `object`):

Optional. The KR storefront usually works without a proxy; add one if you hit captcha or HTTP 485.

## Actor input object example

```json
{
  "mode": "search",
  "searchQueries": [
    "Nike Dunk Low"
  ],
  "language": "zh",
  "maxItems": 50,
  "sortType": 0,
  "sortMode": 1,
  "requestDelayMs": 500,
  "maxRetries": 3,
  "includeRaw": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `products` (type: `string`):

Search results or product details, one product per dataset item.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/dewu-poizon-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "proxyConfiguration": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/dewu-poizon-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/dewu-poizon-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/dewu-poizon-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/leMT8iirF8Acc0Bat/builds/3MWxNlBlz5O816PTa/openapi.json
