SNKRDUNK Scraper - Sneakers, Prices & Sales History avatar

SNKRDUNK Scraper - Sneakers, Prices & Sales History

Pricing

from $1.20 / 1,000 product results

Go to Apify Store
SNKRDUNK Scraper - Sneakers, Prices & Sales History

SNKRDUNK Scraper - Sneakers, Prices & Sales History

Scrape SNKRDUNK (snkrdunk.com), Japan's sneaker and streetwear resale marketplace: JP and EN names, brand, style code, JPY price stats, listing and offer counts, favourites, sizes, used prices, MSRP, sales history. Keyword search with brand or category filters, or paste product and sitemap URLs.

Pricing

from $1.20 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Share

SNKRDUNK Scraper: Sneaker Prices, Sales History & Streetwear Catalog

SNKRDUNK Scraper turns snkrdunk.com, Japan's sneaker and streetwear resale marketplace, into a clean product data feed. Search by keyword with brand and category filters, or paste product and sitemap links, and get Japanese and English product names, style codes, JPY price statistics (low, high, average), listing, used and offer counts, favourites, per-size availability and used prices, MSRP, release dates and recent sales history. Results export to JSON, CSV or Excel, or flow straight into your app or spreadsheet.

Why This Scraper?

  • Two ways in. Keyword search with the site's own brand and category filters and sort, or paste product links and sitemaps (one sitemap link streams in thousands of products). No URL building by hand.
  • Deep product records. Every product carries 60+ fields: identity in Japanese and English, brand and model, price statistics, sizes, release info and more.
  • Price statistics and sales history. Lowest, highest and average listing prices in JPY, used listing counts, offers, favourites, plus the most recent recorded sales with sizes and dates.
  • Local prices and names. Japanese and English names and brands side by side, list price in JPY and localized MSRP, so cross-market comparisons need no extra lookups.
  • Built for schedules. Incremental mode tags every product NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED on recurring runs, and returns only what changed, so a daily monitor bills pennies instead of re-scraping everything.
  • Fails loudly, never silently. If every connection is refused the run stops with a clear message, so "nothing found" is never confused with "could not read the site".

Use Cases

  • Sneaker resellers and boutiques: track lowest listings, average prices and last sale sizes to price your inventory and spot under-retail picks.
  • Analysts and data teams: build price-history datasets across brands and categories, from single models to whole sitemap scopes.
  • Collectors and enthusiasts: monitor favourite models and get only the new, changed or expired listings on each scheduled run.
  • E-commerce and dropshipping tools: feed product names, images, prices and availability into catalogs and alerting bots.
  • Market researchers: measure brand and category depth, listing counts and engagement (favourites) across the Japanese resale market.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
styleCode"XX1234-100"
productId"20000001"
productCatalogId"20000002"
name"Sample Runner Low "White/Grey""
nameJa / nameEn"サンプルランナー ロー" / "Sample Runner Low"
brand / brandName"sample-brand" / "Sample Brand"
modelName"Sample Runner"
price / priceCurrency12800 / "JPY"
condition"S"
isNew / isUsed / isSoldtrue / false / false
productType"secondHandCatalog"
releaseDate"2024-03-15T00:00:00Z"
regularPriceJpy15400
minPriceJpy / maxPriceJpy / averagePriceJpy12900 / 24000 / 15600
usedMinPriceJpy / usedListingCount8900 / 12
offerCount / favoriteCount5 / 4200
lastSalePrice / lastSaleAt13500 / "2026-01-20T05:12:00Z"
salesTrackedCount / tradingHistory20 / recent sales with size, price, date
minSize / maxSize / availableSizes"22cm" / "32cm" / ["22.5cm", "25cm", "27cm"]
msrpValue / msrpCurrency154.2 / "USD"
usedPricesper-size used prices and counts (when enabled)
image"https://cdn.snkrdunk.com/sample/sample.webp"
urlSNKRDUNK link to the product
changeType / changedFields"UPDATED" / ["price", "minPriceJpy"] (incremental mode)

How to Use

  1. Pick a mode: search (by keyword and filters) or url (paste product or sitemap links).
  2. Fill in the fields for that mode, and keep Fetch full product details on for the complete record.
  3. Set Max items to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search by keyword:

{
"mode": "search",
"keywords": ["air force 1"],
"maxItems": 20
}

Search with brand and category filters, oldest listings first:

{
"mode": "search",
"keywords": [""],
"brandIds": ["nike", "adidas"],
"categoryIds": ["1"],
"sortDirection": "asc",
"maxItems": 100,
"fetchDetails": true
}

Paste product or sitemap links:

{
"mode": "url",
"urls": [
"https://snkrdunk.com/products/CW2288-111",
"https://snkrdunk.com/en/sneakers/CW2288-111",
"https://snkrdunk.com/products/CU9225-100/used/51024158",
"https://snkrdunk.com/en/sitemap/sitemap-index-en-product-sneaker.xml",
"https://snkrdunk.com/en/sitemap/sitemap-en-product-sneaker-0.xml.gz"
]
}

Scheduled change monitoring (incremental mode):

{
"mode": "search",
"keywords": ["air force 1"],
"maxItems": 100,
"incrementalMode": true,
"stateKey": "af1-watch",
"emitUnchanged": false,
"emitExpired": true
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/snkrdunk-com-scraper").call(run_input={"mode": "search", "keywords": ["air force 1"], "maxItems": 20})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["styleCode"], product["minPriceJpy"], product["lastSalePrice"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/snkrdunk-com-scraper').call({ mode: 'search', keywords: ['air force 1'], maxItems: 20 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].styleCode, items[0].minPriceJpy);

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Tips

  • Deep coverage. One keyword serves up to 100 pages of 100 products; the site serves nothing beyond page 100 per search. For whole-catalog sweeps, use URL mode with the product sitemaps.
  • Reading brand and category values. The filters take the site's own values (nike, air-jordan, 1 for sneakers); open any filtered search page on the site and copy the value out of its address.
  • Used prices are optional. Per-size used prices cost one extra read per product; switch Fetch per-size used prices on only when you need them.

Send results into your apps (MCP connectors)

Optionally pipe the 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. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to 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

ParameterTypeDefaultDescription
modestringsearchsearch discovers products by keyword and filters; url takes product or sitemap links you paste.
keywordsarray["air force 1"]Search phrases (search mode). Every page holds up to 100 products and paging is automatic.
brandIdsarray(none)Limit to brands using the site's own values, e.g. nike, air-jordan.
categoryIdsarray(none)Limit to categories using the site's own values, e.g. 1 (sneakers), 2/18/99 (short sleeve).
sortDirectionstringdescOrder by listing date: desc (newest first) or asc (oldest first).
urlsarraysampleProduct or sitemap links (url mode); search fields are ignored.
fetchDetailsbooleantrueRead the full record per product: names, price stats, sizes, MSRP, sales history. URL mode always reads the full record.
fetchUsedPricesbooleanfalseAlso read per-size used prices and counts (one extra read per product).
maxPagesinteger(empty)Pages to walk per keyword. Does NOT cap the run: leave empty or 0 and the walk goes as far as Max items requires.
maxItemsinteger20Stop after this many products across all keywords and URLs. 0 = unlimited.
proxyobjectResidential, JapanConnection settings. A residential connection in Japan is recommended and is the default; backups engage automatically.
resumeFromRunIdstring(none)Continue one interrupted run: products already saved there are skipped.
incrementalModebooleanfalseTrack the same scope across scheduled runs; tag each product NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED.
stateKeystringsnkrdunk-baselineName for an incremental monitor's saved state. Use distinct keys to run several monitors.
emitUnchangedbooleanfalseAlso return (and bill) products with no detected change.
emitExpiredbooleanfalseAlso return (and bill) products no longer found after a complete scan.
ignoreFieldsForChangesarray(none)Fields that should not mark a product UPDATED in incremental mode.
mcpConnectorsarray(none)Optional: send a summary of each product to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which product pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"styleCode": "XX1234-100",
"productId": "20000001",
"productCatalogId": "20000002",
"name": "Sample Runner Low \"White/Grey\"",
"nameJa": "サンプルランナー ロー",
"nameEn": "Sample Runner Low \"White/Grey\"",
"brand": "sample-brand",
"brandName": "Sample Brand",
"modelName": "Sample Runner",
"category": "1",
"price": 12800,
"priceCurrency": "JPY",
"priceCurrencySymbol": "JP ¥",
"condition": "S",
"isNew": true,
"isUsed": false,
"isSold": false,
"productType": "secondHandCatalog",
"releaseDate": "2024-03-15T00:00:00Z",
"regularPriceJpy": 15400,
"minPriceJpy": 12900,
"maxPriceJpy": 24000,
"averagePriceJpy": 15600,
"highestSoldPriceJpy": 39800,
"usedMinPriceJpy": 8900,
"usedListingCount": 12,
"offerCount": 5,
"favoriteCount": 4200,
"listingCountJp": 276,
"msrpValue": 154.2,
"msrpCurrency": "USD",
"minSize": "22cm",
"maxSize": "32cm",
"availableSizes": ["22.5cm", "25cm", "26cm", "27cm"],
"lastSalePrice": 13500,
"lastSaleAt": "2026-01-20T05:12:00Z",
"salesTrackedCount": 2,
"tradingHistory": [
{ "price": 13500, "soldAt": "2026-01-20T05:12:00Z", "size": "26.5cm", "condition": "new" },
{ "price": 12800, "soldAt": "2026-01-19T10:02:00Z", "size": "26cm", "condition": "used" }
],
"image": "https://cdn.snkrdunk.com/sample/sample.webp",
"url": "https://snkrdunk.com/en/sneakers/XX1234-100",
"searchKeyword": "sample runner",
"searchRank": 1
}

Plan Requirement

The default connection works out of the box on any paid Apify plan, and the actor rotates to backup connections automatically when one is refused. For the most reliable results, keep the recommended residential connection with the Japan country pin (the default under Connection). A paid plan with proxy access is required; if access is refused, the run stops with a clear message instead of returning an empty dataset.

FAQ

How much does it cost?

You pay per product returned, plus a small surcharge for each product whose full detail record was read (only when detail fetching is on). The Pricing tab shows the current rates, and Max items caps the cost of any run.

This actor collects only publicly available product data. You are responsible for how you use it: follow SNKRDUNK's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Prices, sizes and listing counts are facts; product photos remain the property of their owners.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab, keep the keywords, filters and URLs the same, and turn on Incremental mode. Each run then returns only new and updated products; unchanged ones are neither returned nor billed, and emitExpired can flag products that disappeared.

Why did my run fail instead of returning an empty dataset?

If every page read was refused, the run stops with a clear message so a connection problem is never mistaken for "no matches". Run it again in a few minutes, or switch the connection country under Connection. A search that genuinely matched nothing finishes with a zero-results status instead.

Why do I see at most 100 pages per keyword?

The site serves at most 100 result pages per search. Split deep crawls across more keywords, brand or category filters, or use URL mode with product sitemaps, which cover the catalog directly.

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:

👗 24S Scraper
Scrape 24S luxury fashion by category, filters, or URL. Extract brand, name, price...
🥦 El Corte Inglés Scraper
Scrape El Corte Inglés elcorteingles.es products across fashion, electronics, home...
👗 GOAT Scraper
Scrape GOAT (goat.com), the sneaker and streetwear resale marketplace. Search or paste...
🏷️ Kleinanzeigen.de Scraper
From $1/1K. Scrape Kleinanzeigen.de ads by keyword, category, location, price, seller...
👗 KLEKT Sneaker & Apparel Resale Scraper
Scrape sneaker and streetwear listings from KLEKT (klekt.com). Browse the catalog with...
👗 KREAM Scraper
Scrape KREAM (kream.co.kr) sneaker and fashion resale data by keyword search, filters...

👉 Browse all abotapi scrapers

💬 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 contact@abotapi.com or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.