SNKRDUNK APIsnkrdunk.com ↗
Search One Piece trading cards on SNKRDUNK and retrieve condition-based pricing (A, B, C, PSA, BGS tiers) and card variations via 3 endpoints.
What is the SNKRDUNK API?
The SNKRDUNK API provides 3 endpoints for searching and pricing One Piece trading cards listed on snkrdunk.com. The search_cards endpoint returns paginated card listings including product number, name, minimum price, and listing counts. The get_card_prices endpoint breaks down minimum prices across up to 10 condition tiers — from raw grades A through D to PSA and BGS slabs. The get_card_variations endpoint resolves alternate editions and promos sharing the same card code.
curl -X GET 'https://api.parse.bot/scraper/ba7d938b-edb9-47bd-9cfb-def9071199f4/search_cards?page=1&sort=popular&query=Luffy&category=all&per_page=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace snkrdunk-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: SNKRDUNK One Piece trading cards — search, price tiers, variations."""
from parse_apis.SNKRDUNK_One_Piece_Trading_Cards_API import Snkrdunk, Category, Sort, ParseError
client = Snkrdunk()
# Search single cards sorted by popularity, capped at 5 results
for card in client.cards.search(category=Category.SINGLE_CARD, sort=Sort.POPULAR, limit=5):
print(card.name, card.min_price_format)
# Drill into the first card's condition-based pricing (A, B, C, PSA, BGS tiers)
card = client.cards.search(query="Luffy", category=Category.SINGLE_CARD, limit=1).first()
if card:
pricing = card.prices()
for cp in pricing.condition_prices:
print(cp.condition_name, cp.min_price_format)
# Get all variations (editions/promos) sharing the same card code
if card:
card_vars = card.variations()
for v in card_vars.variations:
print(v.name, v.code)
# Typed error handling
try:
first_card = client.cards.search(limit=1).first()
if first_card:
first_card.prices()
except ParseError as exc:
print(f"Error: {exc.code}")
print("exercised: cards.search / card.prices / card.variations")
List One Piece trading cards, optionally filtered by category. Results are ordered by the chosen sort and paginated. The keyword parameter is accepted but server-side filtering is limited; client-side filtering on product_number or name may be needed for precise matches.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. |
| query | string | Search keyword to filter cards by name or card code. |
| category | string | Category filter for card type. |
| per_page | integer | Number of results per page (max 50). |
{
"type": "object",
"fields": {
"page": "integer",
"cards": "array of card objects with id, product_number, name, min_price, min_price_format, listing_count, offer_count, thumbnail_url, released_at",
"per_page": "integer"
},
"sample": {
"data": {
"page": 1,
"cards": [
{
"id": 819292,
"name": "I Know You're Strong... So I'll Go All Out from the Very Start!!! R :Winner Prize [OP13-040](Promotional Card \"Standard Battle 2026 June\")",
"min_price": 41,
"offer_count": "0",
"released_at": "2026-05-31T15:00:00Z",
"listing_count": "93",
"thumbnail_url": "https://cdn.snkrdunk.com/upload_bg_removed/OPC-TCG-2026-05-08-OP13-040-of.webp?size=m",
"product_number": "OP13-040",
"min_price_format": "US $41"
},
{
"id": 706813,
"name": "Monkey.D.Luffy SR [ST21-014](Promotional Card \"ONE PIECE magazine Special Feature Weekly Shonen Jump & ONE PIECE 020\")",
"min_price": 103,
"offer_count": "0",
"released_at": "2025-11-04T15:02:00Z",
"listing_count": "99+",
"thumbnail_url": "https://cdn.snkrdunk.com/upload_bg_removed/20251005093907-0.webp?size=m",
"product_number": "ST21-014",
"min_price_format": "US $103"
}
],
"per_page": 5
},
"status": "success"
}
}About the SNKRDUNK API
Search and Pagination
The search_cards endpoint accepts query, category, sort, page, and per_page (up to 50 per request) parameters. Each card object in the cards array includes id, product_number, name, min_price, min_price_format, listing_count, offer_count, and thumbnail_url. Note that keyword filtering via the query parameter has limited server-side precision — results may include broader matches, so additional filtering on product_number or name client-side is often necessary for exact card lookups.
Condition-Based Pricing
get_card_prices takes a card_id (the numeric id from search_cards) and returns a condition_prices array. Each entry contains condition_id, condition_name, min_price, and min_price_format. Covered conditions include raw grades A, B, C, and D; PSA 10, PSA 9, and PSA 8 or under; BGS 10 Black Label, BGS 10 Gold Label; and an Other Graded bucket. Only conditions with active listings appear in the response — no placeholder entries for empty tiers.
Card Variations
get_card_variations returns all editions, promos, and regional versions that share a card code with the requested card_id. Each variation object includes its own id (usable with get_card_prices), type, code, name, thumbnail_url, and a caution_note field for any known caveats about that version. This makes it straightforward to compare prices across, for example, a standard print and its promo counterpart.
The SNKRDUNK API is a managed, monitored endpoint for snkrdunk.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when snkrdunk.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official snkrdunk.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track minimum PSA 10 prices for specific One Piece cards across active SNKRDUNK listings
- Build a price-alert tool that monitors
min_pricechanges across condition tiers for a watchlist of card IDs - Compare raw-grade versus graded-slab price spreads using
get_card_pricescondition tiers - Discover all promo and regional variants of a card via
get_card_variationsbefore making a purchase decision - Index paginated One Piece card inventory using
search_cardswithper_pageset to 50 for bulk catalog snapshots - Surface listing depth by comparing
listing_countandoffer_countfields to identify illiquid cards
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does SNKRDUNK have an official public developer API?+
What condition tiers does `get_card_prices` return, and are all tiers always present?+
condition_prices array — tiers with no current listings are omitted entirely.How reliable is the `query` parameter in `search_cards` for finding a specific card?+
product_number or name client-side is recommended after fetching results.