KREAM Scraper - Sneakers, Prices, Bids & Market Data
Pricing
from $1.20 / 1,000 product results
KREAM Scraper - Sneakers, Prices, Bids & Market Data
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
Maintained by CommunityActor stats
0
Bookmarked
19
Total users
2
Monthly active users
9 days ago
Last modified
Categories
Share
KREAM Scraper: Sneaker & Streetwear Resale Prices
KREAM Scraper turns KREAM (kream.co.kr), Korea's sneaker and streetwear resale marketplace, into a clean pricing data feed. Search by keyword or paste product and search links to get lowest ask, highest bid, market price, premium, retail price, style code, release date, sizes and wish counts for every result, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.
Why This Scraper?
- 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.
- 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.
- Resume large crawls. Continue an interrupted or capped run without paying twice for products already collected.
Use Cases
- 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.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
productId | 30001 |
url | KREAM link to the product |
productName / productNameKo | "Nike Dunk Low Retro Black" / "나이키 덩크로우 레트로 블랙" |
brand / brandId | "Nike" / 1 |
category / categoryName | "sneakers" / "스니커즈" |
styleCode | "DD1391-100" |
colorway | "BLACK/WHITE" |
gender | "men" |
releaseDate | "2024-01-20" |
retailPrice / retailPriceFormatted | 109000 / "109,000원" |
currency | "KRW" |
imageUrl / imageUrls | main product photo / the full image set |
lowestAsk / highestBid | 135000 / 128000 |
marketPrice / lastSalePrice | 132000 / 130000 |
totalSales | 842 |
changeValue / changePercentage | 2000 / 1.5 |
premium / premiumPercentage | 26000 / 23.9 |
hasImmediateDelivery | true |
wishCount / reviewCount / haveCount | 5210 / 312 / 890 |
isActive / isTradable | true / true |
sizes / sizeOptions | ["250","260","270","280"] / per-size id, key and display name |
priceHistory / inventoryBySize | price series by time span and per-size ask/bid (when Fetch full details is on, and always for pasted product URLs) |
recentSales / recentAsks / recentBids | most recent trade rows (when Fetch full details is on, and always for pasted product URLs) |
changeType / changedFields / firstSeenAt / lastSeenAt | "NEW" / [] / run timestamps (incremental mode only) |
Prices are in KRW. A product marked EXPIRED (incremental mode only) carries the same fields as its last successful scrape, unchanged, plus the changeType and timestamp fields above.
How to Use
- Pick a mode:
search(by keyword) orurl(paste KREAM product or search links). - Fill in keywords or URLs, and set the sort and filters you want; they apply in both modes.
- Turn on Fetch full details if you need price history and per-size inventory, and set Max items to control run size and cost.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
Basic keyword search:
{"mode": "search","keywords": ["nike dunk", "jordan 1"],"maxItems": 20}
Filtered search: below retail, in stock, quick delivery:
{"mode": "search","keywords": ["stussy"],"belowRetail": true,"excludeSoldOut": true,"quickDelivery": true,"sort": "premium_low","maxItems": 30}
Paste KREAM product and search links:
{"mode": "url","urls": ["https://kream.co.kr/products/23879","https://kream.co.kr/search?keyword=asics"],"maxItems": 40}
Daily incremental monitoring with full detail:
{"mode": "search","keywords": ["yeezy"],"fetchDetails": true,"incrementalMode": true,"stateKey": "yeezy-daily","maxItems": 100}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/kream-scraper").call(run_input={"mode": "search", "keywords": ["nike dunk"], "maxItems": 20})for product in client.dataset(run["defaultDatasetId"]).iterate_items():print(product["productName"], product["lowestAsk"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/kream-scraper').call({ mode: 'search', keywords: ['nike dunk'], maxItems: 20 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
Resume and recurring updates
- Resume (
resumeFromRunId) continues one interrupted or capped run: paste its run or dataset ID and the actor skips every product already collected there, so you don't pay twice. - Incremental mode (
incrementalMode) is for scheduled runs over the same search or URLs. Each product is classifiedNEW,UPDATED(withchangedFields),UNCHANGED(suppressed and not billed unlessemitUnchangedis on),REAPPEAREDorEXPIRED. A product only becomesREAPPEAREDif an earlier run had already marked itEXPIRED;EXPIREDitself is only produced after a run that reached the natural end of the tracked search, withemitExpiredon, not capped by Max items, not a Resume and not blocked.stateKeynames or shares the stored state; leave it empty to derive one automatically from the search scope (keywords or URLs, sort, filters and Fetch full details; Max items and Max pages are output caps and don't affect the key). With incremental mode off, output is exactly as before.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each product, not the full JSON record. For Notion, each item becomes its own page with its name, brand, style code, lowest ask, highest bid, retail price, premium, release date, wish count and URL. Other connectors receive one combined digest of up to 25 items. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (keyword) or url (paste KREAM URLs). |
keywords | array | ["nike"] | Search terms. Search mode only; in URL mode the keyword is read from each pasted search URL instead. |
urls | array | none (prefill: https://kream.co.kr/products/23879) | KREAM product URLs or search URLs (url mode). |
sort | string | popularity | Order results: popularity, lowest_ask, highest_bid, wish, style_tags (most reviewed), date_released, discount_rate, premium_high, premium_low, male_popularity, female_popularity. Applies in both search mode and URL mode. |
quickDelivery | boolean | false | Only products with KREAM Quick Delivery stock. Applies in both search mode and URL mode. |
belowRetail | boolean | false | Only products whose lowest ask is below retail. Applies in both search mode and URL mode. |
excludeSoldOut | boolean | false | Drop products with no live ask. Applies in both search mode and URL mode. |
category | string | none | Optional KREAM category slug (e.g. sneakers). Applies in both search mode and URL mode. |
gender | string | none (Any) | men, women, kids, or leave empty for any. Applies in both search mode and URL mode. |
fetchDetails | boolean | false | Add price history, per-size ask/bid inventory and recent sales/asks/bids. |
maxItems | integer | 20 | Stop after this many products across all keywords/URLs. 0 = unlimited. |
maxPages | integer | 0 | Safety bound on result pages walked per keyword. 0 = no page limit; the run still stops at Max items. |
resumeFromRunId | string | none | Continue one interrupted or capped run without re-collecting products already returned there. |
incrementalMode | boolean | false | Return only new and changed products on recurring runs of the same search. |
stateKey | string | none | Name or share an incremental-mode monitoring campaign. Leave empty to derive one from the search scope. |
emitUnchanged | boolean | false | Incremental mode only. Also return (and bill) products marked UNCHANGED. |
emitExpired | boolean | false | Incremental mode only. Also return (and bill) products marked EXPIRED, only after a run that fully scanned the tracked search. |
proxy | object | Apify Residential | Connection settings. |
mcpConnectors | array | none | Optional: send a summary of each product to apps you authorized under Integrations. |
notionParentPageUrl | string | none | Notion connector only: page under which items are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run (non-Notion digests are further limited to 25). |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"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" }]}
Plan Requirement
KREAM gates its product API by request headers rather than by country, so a residential connection from any country can return data; a Korea pin is not required. Apify Residential is the default and is recommended for the best success rate. Pick a different connection setting under Proxy configuration if you need one.
FAQ
How much does it cost?
You pay per product returned, plus a small per-run start fee. Detail enrichment is billed when Fetch full details is on, and for every pasted product URL, which always returns full detail. The Pricing tab on the actor page shows the current rates. Use Max items to cap the cost of any run.
Is it legal to scrape KREAM?
This actor collects only publicly available marketplace data. You are responsible for how you use it: follow KREAM's terms and the laws that apply to you, and get legal advice before any commercial redistribution. Prices and stock levels reflect the moment the run was made, not a live feed.
Can I get only new or changed prices on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared products, since a price, ask, bid or wish-count move is real signal on a resale marketplace, not noise, and unchanged products are not billed unless you turn on Emit unchanged.
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.
🔗 Want more fashion data?
Pair this actor with these related scrapers from the same team:
| 👗 StockX Scraper Scrape StockX market data by keyword, category or URL. Every row carries lowest ask... | 👗 GOAT Scraper Scrape GOAT (goat.com), the sneaker and streetwear resale marketplace. Search or paste... |
| 👗 KLEKT Sneaker & Apparel Resale Scraper Scrape sneaker and streetwear listings from KLEKT (klekt.com). Browse the catalog with... | 🏷️ ThredUp Scraper Scrape ThredUp resale listings by keyword, department, brand, size, condition, price or... |
| 👗 24S Scraper Scrape 24S luxury fashion by category, filters, or URL. Extract brand, name, price... | 👗 Poshmark Scraper Scrape Poshmark fashion-resale listings: keyword search, brand and category browse, sold... |
💬 Support & custom scrapers
- 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- 🛠️ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
- ⭐ Enjoying it? A quick review on the actor page helps other users find it.