KREAM Scraper icon

KREAM Scraper

Scrape KREAM (kream.co.kr) sneaker and fashion resale data by keyword search, filters, sorts, or product URLs. Extract 34+ fields, including lowest…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

KREAM Scraper at a glance

KREAM Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes id, product, brand, style code and lowest ask, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce, Automation, Developer Tools
Pricing
$2.00 per 1,000 results (Free plan), from $1.50 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
22 options

Scrape KREAM (kream.co.kr) sneaker and fashion resale data by keyword search, filters, sorts, or product URLs. Extract 34+ fields, including lowest ask, highest bid, market price, premium, retail price, style code, sizes, and optional price history.

What KREAM Scraper can do

  • Two ways to find products. Search by keyword, or paste KREAM product and search links directly.
  • Market data on every result. Lowest ask, highest bid, market price, last sale, premium and total sales come back with the base listing, no separate detail fetch needed.
  • Full listing detail out of the box. Style code, colorway, release date, retail price, every size and the full image set are already included.
  • Optional deep detail. Turn on Fetch full details for price history, per-size ask/bid inventory and recent sales, asks and bids, plus up to 100 reviews per product nested on the row.
  • Eleven sort orders and five filters. Order by popularity, price, premium, wish count or release date, and narrow by quick delivery, below-retail, sold-out status, category or gender, in either mode.
  • Built for schedules. Incremental mode returns only new and changed products on recurring runs, and a refused run ends with a clear BLOCKED status message, so it is never mistaken for a search with no matches.

Choose what to collect

These inputs let you configure KREAM Scraper - Sneakers, Prices, Bids & Market Data. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredHow to start the scrape. 'search' runs KREAM keyword searches. 'url' processes the KREAM URLs you paste (product URLs are fetched as full detail; search URLs are paged). Only where the keyword comes from differs: the sort and filter fields apply in BOTH search mode and URL mode, to every pasted KREAM search URL as well.

Choices: search, url

keywordsarrayOne or more keywords to search KREAM for (e.g. 'nike dunk', 'jordan 1', 'stussy'). Each keyword is scraped independently. Search mode only: in URL mode the keyword is read out of each pasted KREAM search URL instead, and this field is not used.
urlsarrayPaste KREAM product URLs (https://kream.co.kr/products/, with or without a size query or the www. / m. host), search URLs (https://kream.co.kr/search?keyword=..., Korean or percent-encoded keywords, plus optional category_id, sort and gender parameters) or brand pages (https://kream.co.kr/brands/). Product URLs return full detail; search and brand URLs page forward automatically. A sort, category_id or gender written in a pasted URL wins over the matching field below for that URL only; the sort and filter fields below are NOT ignored here and still apply to every search or brand URL. A pasted product URL is the one exception, since it returns that single product in full. A page=N (or cursor=N) in a search link starts at that page, and a link with page=N above 1 is not a full scan, so it never produces EXPIRED rows; shop_category_id and the size query on a product link are ignored with a warning. Other KREAM pages (for example the home page, exhibitions or the old category paths) are skipped with a warning in the log. Leaving this field untouched runs one example of each supported link type.
sortstringOrder KREAM returns results in. Applies in BOTH search mode and URL mode: the search request is rebuilt for a pasted KREAM search URL, so this sort is sent with it. A pasted product URL returns that single product, so ordering does not apply to it.

Choices: popularity, lowest_ask, highest_bid, wish, style_tags, date_released, discount_rate, premium_high, premium_low, male_popularity, female_popularity

quickDeliverybooleanOnly return products with KREAM Quick Delivery (express) inventory available. Applies in BOTH search mode and URL mode: it is sent as a server-side parameter on the search request built for a pasted KREAM search URL too. A pasted product URL always returns that one product unfiltered.
belowRetailbooleanOnly return products whose lowest ask is below the brand's retail (original) price. Applies in BOTH search mode and URL mode: products found through a pasted KREAM search URL are filtered by it as well. A pasted product URL always returns that one product unfiltered.
excludeSoldOutbooleanDrop products with no live lowest ask (nothing currently buyable). Applies in BOTH search mode and URL mode: products found through a pasted KREAM search URL are filtered by it as well. A pasted product URL always returns that one product unfiltered.
Show 15 more inputs
More input fields
InputWhat it controls
categorystringOptional KREAM category slug to narrow results (e.g. 'sneakers'). Leave empty for all categories. Applies in BOTH search mode and URL mode: it is sent as a server-side parameter on the search request built for a pasted KREAM search URL too. A pasted product URL always returns that one product unfiltered.
genderstringOptional gender filter. Applies in BOTH search mode and URL mode: it is sent as a server-side parameter on the search request built for a pasted KREAM search URL too. A pasted product URL always returns that one product unfiltered.

Choices: , men, women, kids

fetchDetailsbooleanVisit each product's detail endpoint to add price history and per-size ask/bid inventory, and (unless Reviews per product is 0) the product's reviews. Slower and adds a small per-item charge. Most fields (style code, release date, retail, sizes, market prices) are already included without this.
maxReviewsPerProductintegerOnly used when Fetch full details is on. How many of a product's reviews to nest on its row under reviews (rating, size, fit survey, date, reviewer, helpful count). Set 0 to skip reviews. Maximum 100 per product (20 reviews are served per request). Each block of up to 10 delivered reviews adds one detail-enrichment unit for that row (1-10 reviews = 1 unit, 11-20 = 2), on top of the detail page itself.
maxItemsintegerThe single cap on this run: stop after collecting this many products (across all keywords/URLs). Set 0 for unlimited. Accepts up to 100000.
maxPagesintegerSafety bound on how many result pages to walk per keyword. Leave empty (0) for no page limit, the run stops at Max items, not here. Does not impose a separate cap below Max items.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large crawl of products without returning or charging for products already collected there. Use this after an interrupted or capped run. For recurring monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily/weekly recurring monitoring of the same search. The first run returns all matching products as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED products. UPDATED compares every output field of the product (name, brand, retail/ask/bid/market prices, sales, wish/review/have counters, availability flags, sizes, images and, with Fetch full details, price history and recent sales/asks/bids) against the last run, and changedFields lists which ones moved; price/ask/bid/wish changes ARE reported, as they are the real signal on a resale marketplace. Five alias fields (productNameEn, productUrl, modelNumber, releasePrice and price) are not compared on their own because they mirror productName, url, styleCode, retailPrice and lowestAsk, which are compared; nothing else is excluded by default. Use 'Ignore fields when detecting changes' to exclude a noisy field (it stays in the output). Turn on "Emit unchanged" or "Emit expired" only when you also want those products returned (and billed). State is kept separately per search/URL/sort/filter setup; use State key to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the keyword/URL, sort and filter settings, different searches then never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, not when Max items capped it, Resume was used, or the run was blocked. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayOptional. Field names to exclude from UPDATED change detection and from changedFields; the field stays in the output. Use a top-level field name (for example wishCount) or a dotted path for a nested field (for example parent.child; lists are searched element by element). Changing this list never causes a one-time wave of UPDATED rows, because stored products are re-compared using the current list.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify → Settings → API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

productIdID (number)
productNameProduct (text)
brandBrand (text)
styleCodeStyle code (text)
lowestAskLowest ask (number)
highestBidHighest bid (number)
marketPriceMarket price (number)
retailPriceRetail (number)
premiumPremium (number)
premiumPercentagePremium % (number)
wishCountWishes (number)
reviewCountReviews (number)
Show 13 more fields
releaseDateReleased (text)
imageUrlImage (image)
urlURL (link)
priceHistoryPrice history (array)
inventoryBySizeSizes (ask/bid) (array)
recentSalesRecent sales (array)
recentAsksRecent asks (array)
recentBidsRecent bids (array)
changeTypeChange type (text)
changedFieldsChanged fields (array)
firstSeenAtFirst seen (date)
lastSeenAtLast seen (date)
reviewsReviews (array)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "productId": 30001,
  "url": "https://kream.co.kr/products/30001",
  "productName": "Nike Dunk Low Retro Black",
  "productNameKo": "나이키 덩크로우 레트로 블랙",
  "brand": "Nike",
  "brandId": 1,
  "category": "sneakers",
  "categoryName": "스니커즈",
  "styleCode": "DD1391-100",
  "colorway": "BLACK/WHITE",
  "gender": "men",
  "releaseDate": "2024-01-20",
  "retailPrice": 109000,
  "retailPriceFormatted": "109,000원",
  "currency": "KRW",
  "imageUrl": "https://image.kream.co.kr/products/30001/main.jpg",
  "imageUrls": [
    "https://image.kream.co.kr/products/30001/main.jpg"
  ],
  "lowestAsk": 135000,
  "highestBid": 128000,
  "marketPrice": 132000,
  "lastSalePrice": 130000,
  "totalSales": 842,
  "changeValue": 2000,
  "changePercentage": 1.5,
  "premium": 26000,
  "premiumPercentage": 23.9,
  "hasImmediateDelivery": true,
  "wishCount": 5210,
  "reviewCount": 312,
  "haveCount": 890,
  "isActive": true,
  "isTradable": true,
  "sizes": [
    "250",
    "260",
    "270",
    "280"
  ],
  "sizeOptions": [
    {
      "id": 1,
      "key": "270",
      "name": "270",
      "displayName": "270"
    }
  ]
}

Ways to use this data

  • Resale price tracking and arbitrage: watch lowest ask, highest bid and premium across sneakers and streetwear to spot mispriced listings.
  • Market research and trend analysis: build historical datasets of prices, wish counts and sales volume by brand or category.
  • Drop and release monitoring: track new releases and price movement in the period after launch.
  • Inventory and pricing tools: feed live ask/bid data into a reseller's own pricing or listing tool.
  • Fashion and sneaker media: source current market prices and premiums for articles and price guides.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does KREAM Scraper return?

The documented output for KREAM Scraper includes id, product, brand, style code, lowest ask, highest bid, market price and retail. Availability of each field depends on the source page and the selected mode.

How much does KREAM Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Do the sort and filter fields work when I paste a search link?

Yes. sort, quickDelivery, belowRetail, excludeSoldOut, category and gender all apply in both search mode and URL mode: a pasted KREAM search URL is re-run through KREAM's search with them applied. The one exception is a pasted product URL, which always returns that single product in full, unfiltered.

How do I tell a blocked run from a search with no matches?

If KREAM keeps refusing requests, the run stops early and its status message reads 0 listings (BLOCKED), while a genuine empty search reads 0 listings (ZERO_RESULTS). Products collected before a block are kept. Switch the connection to Apify Residential and run it again.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with KREAM Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.