KREAM Korea Scraper | Sneakers, Fashion & Price History avatar

KREAM Korea Scraper | Sneakers, Fashion & Price History

Pricing

from $1.20 / 1,000 product results

Go to Apify Store
KREAM Korea Scraper | Sneakers, Fashion & Price History

KREAM Korea Scraper | Sneakers, Fashion & Price History

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.

Pricing

from $1.20 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

2

Monthly active users

24 minutes ago

Last modified

Share

KREAM Scraper — Sneaker & Fashion Resale Prices

Scrape KREAM (kream.co.kr), Korea's #1 sneaker and fashion resale marketplace, for live resale prices and product data. Search by keyword with full sorts and filters, or paste product URLs. Returns 45+ fields per product — lowest ask, highest bid, market price, last sale, premium, sales count, retail price, style code, release date, colorway, every size, wish/review counts and the full image set — without needing a separate detail fetch.

Why this scraper

This actorTypical KREAM scrapers
Fields per product45+~8 (listing) / ~14 with detail
Market data (ask/bid/premium/sales)✅ on every item
Style code, release date, retail, sizes✅ in base listingdetail-only (extra charge)
Sort options11up to 9
Filtersquick delivery, below retail, sold-out, category, genderup to 3
Modeskeyword search + product URLssearch only
Speed & memoryFast, low memorySlower, memory-heavy
Detail enrichment$0.0008/itemup to $0.005/item

The base listing already includes the data most scrapers charge a detail fetch for, so you get more for the per-result price.

Input

FieldDescription
modesearch (keyword) or url (paste KREAM URLs). Only the keyword source differs: the sort and filter fields below apply in both modes.
keywordsSearch terms, e.g. ["nike dunk", "jordan 1"]. Search mode only; in URL mode the keyword is read out of each pasted search URL instead.
sort (both modes)popularity, lowest_ask, highest_bid, wish, style_tags (most reviewed), date_released, discount_rate, premium_high, premium_low, male_popularity, female_popularity.
quickDelivery (both modes)Only products with KREAM Quick Delivery (express) stock.
belowRetail (both modes)Only products whose lowest ask is below brand retail.
excludeSoldOut (both modes)Drop products with no live ask.
category (both modes)Optional KREAM category slug (e.g. sneakers).
gender (both modes)men, women, kids or any.
urlsKREAM product URLs (/products/<id>) or search URLs (URL mode). The sort and filter fields marked (both modes) are not ignored here: each pasted search URL is re-run through KREAM's search with them applied. A pasted product URL is the one exception, returning that single product in full.
fetchDetailsAdd price history (5 spans), per-size ask/bid, and recent sales/asks/bids.
maxItemsThe cap. Stop after this many products (default 20; 0 = unlimited).
maxPagesPage-walk safety bound. Leave empty (0) for no page limit — the run stops at Max items, not here.
resumeFromRunIdPaste a previous run ID or dataset ID to continue a large crawl without returning/charging for products already collected there. Continues ONE specific interrupted run.
incrementalModeTurn on for daily/weekly recurring monitoring of the same search. First run: everything is NEW. Later runs: only NEW/UPDATED/REAPPEARED products by default. State is kept per search/URL/sort/filter setup (see below).
stateKeyOptional. Name an incremental-mode monitoring campaign, or share state deliberately across differently-configured runs. Leave empty to derive a key automatically from the search scope.
emitUnchangedIncremental mode only. Off by default — also return (and bill) products marked UNCHANGED.
emitExpiredIncremental mode only. Off by default — also return (and bill) products marked EXPIRED (present before, not found this run). Only produced after a run that fully scanned the tracked search (not capped, not blocked, not a Resume).
proxyApify Residential recommended.
mcpConnectorsOptionally pipe results into Notion / Linear / Airtable / Apify via MCP. Never changes the dataset.

Output (per product)

productId, url, productName, productNameKo, brand, brandId, category, categoryName, styleCode, colorway, gender, releaseDate, retailPrice, retailPriceFormatted, currency, imageUrl, imageUrls, lowestAsk, highestBid, marketPrice, lastSalePrice, totalSales, changeValue, changePercentage, premium, premiumPercentage, hasImmediateDelivery, wishCount, reviewCount, haveCount, isActive, isTradable, sizes, sizeOptions.

With fetchDetails: priceHistory (1m/3m/6m/1y/all series), inventoryBySize (per-size lowest ask / highest bid), recentSales, recentAsks, recentBids.

With incrementalMode: changeType (NEW/UPDATED/UNCHANGED/REAPPEARED/EXPIRED), changedFields (which fields moved since last run), firstSeenAt, lastSeenAt.

Prices are in KRW.

Resume & recurring updates

Two different tools for two different jobs:

  • Resume (resumeFromRunId) continues ONE specific interrupted or capped run — paste a run ID or dataset ID and this run skips every productId already collected there.
  • Incremental mode (incrementalMode) is for scheduling this same search again and again (e.g. daily) and getting only what changed. The actor keeps its own baseline in a key-value store, keyed on a hash of the search/URL scope, sort, filters and fetchDetails (maxItems/maxPages are output caps, not scope, and are excluded — a 5-item run and a 50-item run of the same search share one baseline). Set stateKey to name or share a campaign explicitly.
  • Identity key: productId (the same field already used for in-run dedup).
  • A field only counts as changed when both old and new values are present and differ (
    changed(a,b) := a != b and a is not None and b is not None
    ) — a value that goes missing then comes back is not itself a "change".
  • Prices and wishCount are real signal on a resale marketplace, not noise — an ask/bid/wish move IS reported as UPDATED, never normalized away.
  • EXPIRED is only ever emitted after a run that reached the natural end of every tracked keyword/URL (not capped by Max items, not a Resume, not blocked) — a partial scan can't tell "gone" from "not reached yet".

Connection & reliability

KREAM gates its API by request headers, not by IP geography — so any residential country works (no Korea pin needed). Use Apify Residential for the best success rate.

⚠️ Datacenter / free-tier: these connections are more likely to be refused, lowering the success rate and possibly returning zero items. Switch the Proxy setting to Apify Residential if you see repeated refusals.

Pricing (pay-per-event)

EventPrice
Actor start$0.08
Product result$0.003
Detail enrichment (only when fetchDetails is on)$0.0008

Notes

  • Korean product names are kept in productNameKo; the romanised/English name is productName.
  • This is an unofficial scraper; respect KREAM's terms and applicable law.