SNKRDUNK
Japan's sneaker and trading-card marketplace: live listings with grade and price in US dollars, floor price per grade.
/snkrdunk/v1/search1 creditSearch SNKRDUNK by keyword. Returns trading cards (and, when `include_sneakers` is on, sneakers) with the current floor price, the live listing count and the id you feed into every other action. `total` is the source's own match count, so you can page through a whole set.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | What to search for: a card name, set, character, sneaker model or product number ('charizard', 'umbreon vmax', 'one piece op-01'). |
| page = 1 | optional | 1– | 1-based page number. |
| limit = 30 | optional | 1–100 | Rows per page (1-100). The source refuses more than 100. |
| include_sneakers = false | optional | — | Also return the sneaker matches. Off by default, because the trading-card half is what this endpoint is for. |
/snkrdunk/v1/product/detail1 creditOne product record by id, code or URL: name, product number, brand, the current floor price, how many listings are live and the images. Optionally merges the floor price per grade and the other prints of the same card in the SAME call.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| product_id | optional | — | The product to read. Accepts the numeric id (107574), the site code (SW---107574) or a snkrdunk.com product URL. |
| include_prices = false | optional | — | Also return the floor price per grade (one extra upstream call). |
| include_variations = false | optional | — | Also return the other prints/variants of this card. |
/snkrdunk/v1/product/listings1 creditEvery live listing on one product: price in USD, grade (PSA 10, A, B, C, D), whether it is still for sale and an opaque listing id. This is the order book a pricing model reads, and the only place the source publishes individual asks.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| product_id | optional | — | The product to read. Accepts the numeric id (107574), the site code (SW---107574) or a snkrdunk.com product URL. |
| page = 1 | optional | 1– | 1-based page number. |
| limit = 30 | optional | 1–100 | Rows per page (1-100). The source refuses more than 100. |
| sort = default | optional | latest · default | `latest` for newest first, anything else for the source's own order. Measured: these are the only two orders the source actually applies. |
| only_on_sale = false | optional | — | Only listings that are still for sale. Default false, which also returns recently sold ones (each carries `is_sold`). |
/snkrdunk/v1/prices_by_condition1 creditThe current floor price for each grade of one card (PSA 10, A, B, C, D and the rest). One small call per card, which is what a daily price tracker stores.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| product_id | optional | — | The product to read. Accepts the numeric id (107574), the site code (SW---107574) or a snkrdunk.com product URL. |
/snkrdunk/v1/products/batch1 creditUp to 30 products in ONE call: name, floor price, listing count and image for each. This is how a catalogue of thousands is refreshed without spending a call per card. Ids that no longer exist are simply absent from the answer.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| product_ids | required | –30 | Up to 30 product ids, codes or URLs. Accepts a JSON array or a comma-separated string. |
/snkrdunk/v1/product/variations1 creditThe other prints and variants of the same card (or the other colourways of a sneaker), each with its own id and floor price.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| product_id | optional | — | The product to read. Accepts the numeric id (107574), the site code (SW---107574) or a snkrdunk.com product URL. |
/snkrdunk/v1/browse1 creditWalk the used trading-card market: every card with a live listing, filtered by brand and category, newest first or in the source's own order. Use it to build a catalogue without a keyword.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| brand | optional | — | Brand slug ('pokemon', 'one-piece', 'yu-gi-oh'). Omit for all. |
| category_id | optional | — | Category id from brand/detail. Omit for all categories. |
| page = 1 | optional | 1– | 1-based page number. |
| limit = 30 | optional | 1–100 | Rows per page (1-100). The source refuses more than 100. |
| sort = default | optional | latest · default | `latest` for newest first, anything else for the source's own order. Measured: these are the only two orders the source actually applies. |
| only_on_sale = false | optional | — | Only listings that are still for sale. Default false, which also returns recently sold ones (each carries `is_sold`). |
/snkrdunk/v1/brand/products1 creditOne brand's catalogue, paged: every product SNKRDUNK carries for that brand with its floor price and listing count. With `department=tradingCard` this is the route that builds a card database set by set.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| brand | required | — | Brand slug exactly as it appears in a snkrdunk URL. Trading cards: pokemon, yu-gi-oh, onepiece, dragonball, mtg. Sneakers and apparel use their own slugs ('nike', 'supreme', 'air-jordan', 'newbalance'). |
| department = tradingCard | optional | tradingCard · sneaker · streetwear | Which half of the marketplace to read. |
| page = 1 | optional | 1– | 1-based page number. |
| limit = 30 | optional | 1–100 | Rows per page (1-100). The source refuses more than 100. |
/snkrdunk/v1/brand/detail1 creditOne brand record and the category ids under it — the ids `browse` takes.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| brand | required | — | Brand slug exactly as it appears in a snkrdunk URL. Trading cards: pokemon, yu-gi-oh, onepiece, dragonball, mtg. Sneakers and apparel use their own slugs ('nike', 'supreme', 'air-jordan', 'newbalance'). |
/snkrdunk/v1/conditionsfreeThe grade enum the marketplace uses (A, B, C, D and the PSA grades), with the id and key behind each label. The values `condition` fields come back as.
Try in playground →curl -X POST https://api.reefapi.com/snkrdunk/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}