{"openapi":"3.1.0","info":{"title":"TCGGraph REST API","version":"2026-08-01","description":"Cards, sets, prices, price history, sales, webhooks and price watches for nine trading card games. Every response is JSON. Errors share one body: { error: { code, message, details? } }.","contact":{"url":"https://tcggraph.com/docs"}},"externalDocs":{"url":"https://tcggraph.com/docs/rest"},"servers":[{"url":"https://api.tcggraph.com"}],"security":[{"bearer":[]},{"queryKey":[]}],"tags":[{"name":"Games","description":"The nine supported games and each one's gameData schema."},{"name":"Sets","description":"Sets per game and language, and a set's cards."},{"name":"Cards","description":"Search the catalogue, or read one printing by id."},{"name":"Prices","description":"Current quotes, price history and realized sales."},{"name":"Webhooks","description":"Signed event deliveries. Free."},{"name":"Price watches","description":"Thresholds that fire price.threshold.crossed. Free."}],"paths":{"/v1/games":{"get":{"operationId":"listGames","summary":"List games","description":"Every supported game, with what is indexed for it right now.\n\nTakes no parameters. Unknown ones are ignored.\n\ncounts is the snapshot our game pages quote; indexed is counted live, so it is the number to trust when the two differ.\n\nCosts 1 credits.","tags":["Games"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/list-games"},"x-credits":1,"parameters":[],"responses":{"200":{"description":"All nine games.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Game"},"description":"The games."},"meta":{"type":"object","properties":{"totalCount":{"type":"integer","description":"Games returned."}},"required":["totalCount"],"description":"Totals."}},"required":["data","meta"]},"example":{"data":[{"slug":"pokemon","name":"Pokémon Trading Card Game","shortName":"Pokémon","publisher":"The Pokémon Company","released":1996,"counts":{"cards":4159,"sets":176,"printings":20635,"languages":6},"languages":["en","de","es","fr","it","ja"],"formats":["Standard","Expanded","Unlimited","GLC"],"sampleCount":20,"indexed":{"cards":26466,"sets":230,"printingsByLanguage":{"de":19142,"en":26466,"es":14025,"fr":19627,"it":14305,"ja":30332}}},{"slug":"magic-the-gathering","name":"Magic: The Gathering","shortName":"Magic","publisher":"Wizards of the Coast","released":1993,"counts":{"cards":37158,"sets":955,"printings":105841,"languages":11},"languages":["en","ar","de","dw","es","fr","grc","he","it","ja","ko","la","ph","pt","qya","ru","sa","zhs","zht"],"formats":["Standard","Pioneer","Modern","Legacy","Vintage","Commander","Pauper","Brawl","Alchemy","Historic"],"sampleCount":15,"indexed":{"cards":105841,"sets":955,"printingsByLanguage":{"ar":1,"de":58512,"dw":5,"en":105841,"es":53395,"fr":58847,"grc":3,"he":1,"it":52773,"ja":62153,"ko":15382,"la":1,"ph":49,"pt":39593,"qya":7,"ru":21760,"sa":1,"zhs":40870,"zht":23582}}},{"slug":"one-piece","name":"One Piece Card Game","shortName":"One Piece","publisher":"Bandai","released":2022,"counts":{"cards":1377,"sets":65,"printings":5538,"languages":6},"languages":["en","fr","ja","ko","zhs","zht"],"formats":["Standard","Japanese Standard"],"sampleCount":15,"indexed":{"cards":5538,"sets":65,"printingsByLanguage":{"en":5538,"fr":2888,"ja":4987,"ko":3164,"zhs":3047,"zht":4915}}},{"slug":"yugioh","name":"Yu-Gi-Oh! Trading Card Game","shortName":"Yu-Gi-Oh!","publisher":"Konami","released":1999,"counts":{"cards":14010,"sets":661,"printings":38435,"languages":1},"languages":["en"],"formats":["Advanced","Traditional","OCG"],"sampleCount":15,"indexed":{"cards":38435,"sets":661,"printingsByLanguage":{"en":38435}}},{"slug":"disney-lorcana","name":"Disney Lorcana","shortName":"Lorcana","publisher":"Ravensburger","released":2023,"counts":{"cards":2476,"sets":23,"printings":3198,"languages":5},"languages":["en","de","fr","it","ja"],"formats":["Core Constructed","Infinity Constructed"],"sampleCount":15,"indexed":{"cards":3198,"sets":23,"printingsByLanguage":{"de":2985,"en":3198,"fr":2985,"it":2632,"ja":2494}}},{"slug":"star-wars-unlimited","name":"Star Wars: Unlimited","shortName":"SW: Unlimited","publisher":"Fantasy Flight Games","released":2024,"counts":{"cards":2178,"sets":10,"printings":7868,"languages":5},"languages":["en","de","es","fr","it"],"formats":["Premier","Twin Suns","Draft","Sealed"],"sampleCount":15,"indexed":{"cards":7868,"sets":10,"printingsByLanguage":{"de":6272,"en":7868,"es":6268,"fr":6264,"it":6270}}},{"slug":"digimon","name":"Digimon Card Game","shortName":"Digimon","publisher":"Bandai","released":2020,"counts":{"cards":1915,"sets":66,"printings":4444,"languages":3},"languages":["en","ja","zhs"],"formats":["Standard","Japanese Standard"],"sampleCount":15,"indexed":{"cards":4480,"sets":66,"printingsByLanguage":{"en":4480,"ja":7464,"zhs":7018}}},{"slug":"grand-archive","name":"Grand Archive","shortName":"Grand Archive","publisher":"Weebs of the Shore","released":2022,"counts":{"cards":2478,"sets":63,"printings":4796,"languages":1},"languages":["en"],"formats":["Standard","Unlimited","Sealed"],"sampleCount":15,"indexed":{"cards":4796,"sets":63,"printingsByLanguage":{"en":4796}}},{"slug":"dragon-ball-super","name":"Dragon Ball Super Card Game","shortName":"Dragon Ball Super","publisher":"Bandai","released":2017,"counts":{"cards":6586,"sets":121,"printings":11766,"languages":1},"languages":["en"],"formats":["Fusion World Standard","Masters Standard"],"sampleCount":15,"indexed":{"cards":11766,"sets":121,"printingsByLanguage":{"en":11766}}}],"meta":{"totalCount":9}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/games/{slug}":{"get":{"operationId":"getGame","summary":"Get a game","description":"One game, with its gameData schema: the fields every card of the game carries and you can filter on.\n\nschema is the contract for gameData: every field listed is on the game's cards and is accepted as a /v1/cards filter. Numeric fields (Int, Float) also take min and max bounds.\n\nCosts 1 credits.","tags":["Games"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/get-game"},"x-credits":1,"parameters":[{"name":"slug","in":"path","required":true,"description":"The game's slug.","schema":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"]},"example":"pokemon"}],"responses":{"200":{"description":"The game.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Game"},{"type":"object","properties":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The field name, as it appears under gameData and as a filter."},"type":{"type":"string","enum":["String","Int","Float","Boolean","[String]","[Int]","Enum","Object","[Object]"],"description":"Int and Float fields take min/max bounds; Object fields are filtered by dotted path."},"description":{"type":"string","description":"What the field holds."},"example":{"type":"string","description":"A value from a real card."}},"required":["name","type","description"]},"description":"The game's gameData fields."},"notableSets":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Set code."},"name":{"type":"string","description":"Set name."},"released":{"type":"string","description":"Release date or year, as the page shows it."},"cards":{"type":"integer","description":"Cards in the set."}},"required":["code","name","released","cards"]},"description":"Sets we call out on the game's page."},"priceSources":{"type":"array","items":{"type":"string"},"description":"The marketplaces that quote this game, by display name (Cardmarket, TCGplayer, Card Kingdom, Mana Pool), not source id."}},"required":["schema","notableSets","priceSources"]}],"description":"A Game object with three more fields."}},"required":["data"]},"example":{"data":{"slug":"pokemon","name":"Pokémon Trading Card Game","shortName":"Pokémon","publisher":"The Pokémon Company","released":1996,"counts":{"cards":4159,"sets":176,"printings":20635,"languages":6},"languages":["en","de","es","fr","it","ja"],"formats":["Standard","Expanded","Unlimited","GLC"],"sampleCount":20,"indexed":{"cards":26466,"sets":230,"printingsByLanguage":{"de":19142,"en":26466,"es":14025,"fr":19627,"it":14305,"ja":30332}},"schema":[{"name":"supertype","type":"Enum","description":"Pokémon, Trainer or Energy."},{"name":"subtypes","type":"[String]","description":"Basic, Stage 1, Stage 2, ex, V, VMAX, Tera, Supporter, Item…"},{"name":"hp","type":"Int","description":"Hit points for Pokémon cards."},{"name":"types","type":"[String]","description":"Energy types the Pokémon belongs to."},{"name":"evolvesFrom","type":"String","description":"The Pokémon this card evolves from."},{"name":"attacks","type":"[Object]","description":"name, cost, convertedEnergyCost, damage and text."},{"name":"abilities","type":"[Object]","description":"name, type (Ability, Poké-Power, Poké-Body…) and text."},{"name":"weaknesses","type":"[Object]","description":"Type and multiplier or modifier."},{"name":"resistances","type":"[Object]","description":"Type and damage reduction."},{"name":"retreatCost","type":"[String]","description":"Energy required to retreat."},{"name":"convertedRetreatCost","type":"Int","description":"Number of energy cards needed to retreat."},{"name":"regulationMark","type":"String","description":"Rotation letter used by Standard legality."},{"name":"nationalPokedexNumbers","type":"[Int]","description":"Pokédex entries referenced by the card."}],"notableSets":[{"code":"BS","name":"Base Set","released":"1999-01-09","cards":102},{"code":"SV3.5","name":"Scarlet & Violet — 151","released":"2023-09-22","cards":207},{"code":"SWSH7","name":"Evolving Skies","released":"2021-08-27","cards":237},{"code":"ME01","name":"Mega Evolution","released":"2025-09-26","cards":230},{"code":"ME02","name":"Phantasmal Flames","released":"2026-01-30","cards":244}],"priceSources":["Cardmarket","TCGplayer"]}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No game has that slug. Slugs are lowercase and hyphenated: magic-the-gathering, not mtg.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-game-404":{"summary":"Unknown slug","value":{"error":{"code":"not_found","message":"No game with slug \"mtg\"."}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/sets":{"get":{"operationId":"listSets","summary":"List sets","description":"Sets across every game, newest first.\n\nmeta carries page, limit, totalCount, totalPages and hasMore, like the card lists, but no priceSource: sets carry no prices.\n\nCosts 1 credits.","tags":["Sets"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/list-sets"},"x-credits":1,"parameters":[{"name":"game","in":"query","required":false,"description":"Only this game. Also narrows which gameData fields are accepted as filters. Default: every game.","schema":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"]},"example":"pokemon"},{"name":"name","in":"query","required":false,"description":"Part of the set name, or a whole set code; case-insensitive. name=151 and name=sv3pt5 both find 151.","schema":{"type":"string"},"example":"151"},{"name":"language","in":"query","required":false,"description":"The set's language, or all. Japanese Pokémon sets are their own rows under ja; a translated printing of an English set is not a set of its own. Case-insensitive, with jp, kr and sp accepted.","schema":{"type":"string","enum":["en","de","fr","it","es","pt","ja","ko","ru","zhs","zht","th","id","ph","qya","dw","grc","he","ar","la","sa","all"],"default":"en"},"example":"ja"},{"name":"releasedAfter","in":"query","required":false,"description":"Released on or after this day, YYYY-MM-DD. Sets without a date are excluded.","schema":{"type":"string"},"example":"2025-01-01"},{"name":"releasedBefore","in":"query","required":false,"description":"Released on or before this day, YYYY-MM-DD.","schema":{"type":"string"},"example":"2025-12-31"},{"name":"sort","in":"query","required":false,"description":"- for descending; cards is the card count. Sets without a date sort last. Ties break on code.","schema":{"type":"string","enum":["released","-released","name","-name","cards","-cards"],"default":"-released"}},{"name":"page","in":"query","required":false,"description":"Page number, from 1. Below 1 reads as 1. A page past the end returns an empty data with hasMore: false.","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Rows per page, 1 to 100. Out-of-range values are clamped, not refused; meta.limit reports the size used.","schema":{"type":"integer","default":20}}],"responses":{"200":{"description":"A page of sets.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Set"},"description":"The sets."},"meta":{"type":"object","properties":{"page":{"type":"integer","description":"The page returned."},"limit":{"type":"integer","description":"The page size used."},"totalCount":{"type":"integer","description":"Sets matching, across every page."},"totalPages":{"type":"integer","description":"At least 1."},"hasMore":{"type":"boolean","description":"Whether a later page has rows."}},"required":["page","limit","totalCount","totalPages","hasMore"],"description":"Paging."}},"required":["data","meta"]},"example":{"data":[{"code":"me55","game":"pokemon","name":"30th Celebration","language":"en","releasedAt":"2026-09-16","cardCount":161},{"code":"me55c","game":"pokemon","name":"30th Celebration: Classic Collection","language":"en","releasedAt":"2026-09-16","cardCount":30},{"code":"me5","game":"pokemon","name":"Pitch Black","language":"en","releasedAt":"2026-07-17","cardCount":120}],"meta":{"page":1,"limit":3,"totalCount":230,"totalPages":77,"hasMore":true}}}}},"400":{"description":"A parameter this endpoint does not take. details.suggestion names the one you probably meant. Or: A date that is not YYYY-MM-DD, or not a real day.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"list-sets-unknown":{"summary":"Misspelt parameter","value":{"error":{"code":"invalid_request","message":"Unknown parameter \"Game\". Did you mean game=?","details":{"field":"Game","suggestion":"game","allowed":["game","name","language","releasedAfter","releasedBefore","sort","page","limit"],"docs":"https://tcggraph.com/docs/rest/list-sets"}}}},"list-sets-date":{"summary":"Bad date","value":{"error":{"code":"invalid_request","message":"`releasedAfter` must be a date as YYYY-MM-DD.","details":{"field":"releasedAfter","got":"2025-13-01"}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/sets/{code}":{"get":{"operationId":"getSet","summary":"Get a set","description":"One set and a page of its cards.\n\nBilled as a search, 2 credits, because it returns a page of cards: the same work as /v1/cards?set=.\n\nEvery /v1/cards filter applies to the cards listed, and meta is the card list's, with priceSource.\n\nCosts 2 credits.","tags":["Sets"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/get-set"},"x-credits":2,"parameters":[{"name":"code","in":"path","required":true,"description":"The set code, case-insensitive.","schema":{"type":"string"},"example":"sv3pt5"},{"name":"game","in":"query","required":false,"description":"Which game's set, when the code exists in more than one. Set codes are unique within a game and language only.","schema":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"]},"example":"pokemon"},{"name":"language","in":"query","required":false,"description":"Which language's set: Pokémon sv3 is Obsidian Flames in English and Ruler of the Black Flame in Japanese. Without it the English set is used, and a code no English set has resolves in whatever language holds it. The cards listed are in the set's language unless this asks for another (de lists a set's German printings). Default: en, else the set's own.","schema":{"type":"string","enum":["en","de","fr","it","es","pt","ja","ko","ru","zhs","zht","th","id","ph","qya","dw","grc","he","ar","la","sa","all"]},"example":"ja"},{"name":"name","in":"query","required":false,"description":"Part of the English name, or of the name as printed (printedName). Case, accents and punctuation are ignored: charizard matches Charizard ex and Dark Charizard, pokedex matches Pokédex, dracaufeu matches the French Dracaufeu-ex and ルフィ the Japanese One Piece Luffys. Searches the languages language asks for, English unless it says otherwise, so a French name wants language=fr. Japanese Pokémon cards carry no printed name and are found by their English one.","schema":{"type":"string"},"example":"charizard"},{"name":"text","in":"query","required":false,"description":"Part of the rules text, case-insensitive.","schema":{"type":"string"},"example":"draw a card"},{"name":"collectorNumber","in":"query","required":false,"description":"The printed number. Only the part before / counts and leading zeros are ignored, so 6, 006 and 006/165 match the same card. Numbers that print a set prefix keep it (OP05-119). Parallel and reprint printings that share a printed number are stored with a suffix (OP05-119_p2); the printed number matches all of them, and a number with the suffix matches only that one.","schema":{"type":"string"},"example":"6"},{"name":"rarity","in":"query","required":false,"description":"The whole rarity, case-insensitive, as the game spells it (Double Rare, mythic, SR).","schema":{"type":"string"},"example":"Double Rare"},{"name":"artist","in":"query","required":false,"description":"The whole artist credit, case-insensitive. mitsuhiro arita matches; arita does not.","schema":{"type":"string"},"example":"Mitsuhiro Arita"},{"name":"source","in":"query","required":false,"description":"Which marketplace minPrice, maxPrice and sort=price read. Every card still returns all of its quotes. Case-insensitive. Echoed as meta.priceSource.","schema":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"default":"cardmarket"}},{"name":"region","in":"query","required":false,"description":"The same choice by market: EU is cardmarket, NA and US are tcgplayer. Case-insensitive. source wins when both are sent.","schema":{"type":"string","enum":["EU","NA","US"]}},{"name":"minPrice","in":"query","required":false,"description":"Lowest retail market price, inclusive, in the source's currency (EUR on Cardmarket). Reads the normal finish where the card has one, otherwise one of its other retail finishes. Cards with no quote on the source are excluded.","schema":{"type":"number"},"example":10},{"name":"maxPrice","in":"query","required":false,"description":"Highest retail market price, inclusive. Read the same way as minPrice.","schema":{"type":"number"},"example":50},{"name":"sort","in":"query","required":false,"description":"- for descending. price reads the quote minPrice reads; gradedPrice reads the graded slot (PSA 10 unless grader and grade say otherwise); released is the set's release date. Cards without the value sort last either way. Ties break on id, so pages are stable.","schema":{"type":"string","enum":["name","-name","price","-price","gradedPrice","-gradedPrice","released","-released"],"default":"name"}},{"name":"grader","in":"query","required":false,"description":"With grade, the graded slot sort=gradedPrice orders by. Both or neither. The slots that exist: raw/ungraded, any/7, any/8, any/9, any/9.5, psa/10, bgs/10, cgc/10, sgc/10.","schema":{"type":"string","enum":["raw","any","psa","bgs","cgc","sgc"]}},{"name":"grade","in":"query","required":false,"description":"The other half of the slot. Without either, sort=gradedPrice reads PSA 10.","schema":{"type":"string","enum":["ungraded","7","8","9","9.5","10"]}},{"name":"page","in":"query","required":false,"description":"Page number, from 1. Below 1 reads as 1. A page past the end returns an empty data with hasMore: false.","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Rows per page, 1 to 100. Out-of-range values are clamped, not refused; meta.limit reports the size used.","schema":{"type":"integer","default":20}},{"name":"gameData","in":"query","required":false,"style":"form","explode":true,"description":"Any gameData field the game declares, as its own query parameter (types=fire, hp=330, banlist.tcg=forbidden), and minField/maxField bounds on numeric ones (minHp=300). GET /v1/games/{slug} lists them.","schema":{"type":"object","additionalProperties":{"type":"string"}}}],"responses":{"200":{"description":"The set, with a page of its cards.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"code":{"type":"string","description":"The set code."},"game":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"],"description":"The game."},"name":{"type":"string","description":"The set name."},"language":{"type":"string","description":"The set's language."},"releasedAt":{"type":["string","null"],"description":"YYYY-MM-DD."},"cardCount":{"type":"integer","description":"Cards in the set."},"cards":{"type":"array","items":{"$ref":"#/components/schemas/Card"},"description":"The page of cards."}},"required":["code","game","name","language","releasedAt","cardCount","cards"],"description":"A Set object with its cards."},"meta":{"$ref":"#/components/schemas/PageMeta","description":"Paging of cards."}},"required":["data","meta"]},"example":{"data":{"code":"sv3pt5","game":"pokemon","name":"151","language":"en","releasedAt":"2023-09-22","cardCount":207,"cards":[{"id":"pkm_sv3pt5_63","game":"pokemon","name":"Abra","language":"en","printedName":null,"baseCardId":null,"englishId":null,"sameArtwork":["pkm_ja_sv2a_63","pkm_ja_sv4a_73","pkm_ja_sv4a_73_mirror_holofoil","pkm_ja_sv2a_63_poke_ball_pattern","pkm_ja_sv2a_63_master_ball_pattern"],"pricesFrom":"own","pricesTwin":null,"set":{"code":"sv3pt5","name":"151","language":"en","releasedAt":"2023-09-22"},"collectorNumber":"63","rarity":"Common","artist":"Mitsuhiro Arita","text":"Abra can teleport in its sleep. Apparently the more deeply Abra sleeps, the farther its teleportations go.","images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/large.webp"},"imageFrom":"own","hashes":{"phash":"b2324fc94fa5b4d0","phashColor":"a23e4fc9cda4b494b29247cd4f25b4f0b23a85c44f6f78d0"},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"normal","currency":"EUR","market":0.06,"low":0.02,"trend":0.06,"avg1":0.06,"avg7":0.06,"avg30":0.06,"basis":"product-page","updatedAt":"2026-10-05T07:48:38.951Z"},{"source":"cardmarket","region":"EU","listType":"retail","finish":"reverse-holo","currency":"EUR","market":0.24,"low":0.02,"trend":0.24,"avg1":0.18,"avg7":0.2,"avg30":0.25,"basis":"product-page","updatedAt":"2026-10-05T07:48:43.106Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"normal","currency":"USD","market":0.23,"low":0.01,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"reverse-holo","currency":"USD","market":0.27,"low":0.02,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"gradedPrices":[{"grader":"raw","grade":"ungraded","currency":"USD","price":0.53,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"8","currency":"USD","price":9.48,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9","currency":"USD","price":10.61,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9.5","currency":"USD","price":12,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"psa","grade":"10","currency":"USD","price":92,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"bgs","grade":"10","currency":"USD","price":120,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"cgc","grade":"10","currency":"USD","price":55,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"sgc","grade":"10","currency":"USD","price":55,"salesVolume":128,"updatedAt":"2026-10-05T09:20:50.686Z"}],"languagePrices":[{"source":"cardmarket","language":"en","finish":"normal","currency":"EUR","low":0.02,"lowNm":0.02,"market":0.02,"offers":19,"truncated":true,"truncatedAbove":0.03,"conditions":[{"condition":"nm","low":0.02,"offers":18},{"condition":"ex","low":0.02,"offers":1}],"updatedAt":"2026-10-05T07:48:39.794Z"},{"source":"cardmarket","language":"es","finish":"normal","currency":"EUR","low":0.02,"lowNm":0.02,"market":0.05,"offers":49,"truncated":true,"truncatedAbove":0.1,"conditions":[{"condition":"mt","low":0.02,"offers":1},{"condition":"nm","low":0.02,"offers":47},{"condition":"ex","low":0.05,"offers":1}],"updatedAt":"2026-10-02T11:03:51.731Z"},{"source":"cardmarket","language":"it","finish":"normal","currency":"EUR","low":0.02,"lowNm":0.02,"market":0.02,"offers":15,"truncated":true,"truncatedAbove":0.03,"conditions":[{"condition":"nm","low":0.02,"offers":12},{"condition":"ex","low":0.02,"offers":3}],"updatedAt":"2026-10-05T07:48:39.794Z"},{"source":"cardmarket","language":"fr","finish":"normal","currency":"EUR","low":0.02,"lowNm":0.02,"market":0.02,"offers":14,"truncated":true,"truncatedAbove":0.03,"conditions":[{"condition":"mt","low":0.02,"offers":1},{"condition":"nm","low":0.02,"offers":12},{"condition":"lp","low":0.02,"offers":1}],"updatedAt":"2026-10-05T07:48:39.794Z"},{"source":"cardmarket","language":"de","finish":"normal","currency":"EUR","low":0.02,"lowNm":0.02,"market":0.02,"offers":2,"truncated":true,"truncatedAbove":0.03,"conditions":[{"condition":"nm","low":0.02,"offers":2}],"updatedAt":"2026-10-05T07:48:39.794Z"},{"source":"cardmarket","language":"es","finish":"reverse-holo","currency":"EUR","low":0.09,"lowNm":0.09,"market":0.09,"offers":1,"truncated":true,"truncatedAbove":0.1,"conditions":[{"condition":"nm","low":0.09,"offers":1}],"updatedAt":"2026-10-02T11:03:51.731Z"},{"source":"cardmarket","language":"pt","finish":"normal","currency":"EUR","low":1.99,"lowNm":1.99,"market":1.99,"offers":1,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"mt","low":1.99,"offers":1}],"updatedAt":"2026-10-02T11:03:51.315Z"},{"source":"cardmarket","language":"pt","finish":"reverse-holo","currency":"EUR","low":19.99,"lowNm":19.99,"market":19.99,"offers":1,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"mt","low":19.99,"offers":1}],"updatedAt":"2026-10-02T11:03:51.315Z"},{"source":"cardmarket","language":"ja","finish":"normal","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T11:03:58.303Z"},{"source":"cardmarket","language":"ko","finish":"normal","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T11:03:51.511Z"}],"printings":[{"key":"normal","label":"Normal","kind":"surface","images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":733658,"tcgplayerId":516268},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"normal","currency":"EUR","market":0.06,"low":0.02,"trend":0.06,"avg1":0.06,"avg7":0.06,"avg30":0.06,"basis":"product-page","updatedAt":"2026-10-05T07:48:38.951Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"normal","currency":"USD","market":0.23,"low":0.01,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_sv3pt5_63"},{"key":"reverse-holo","label":"Reverse holo","kind":"surface","images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_63/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":733658,"tcgplayerId":516268},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"reverse-holo","currency":"EUR","market":0.24,"low":0.02,"trend":0.24,"avg1":0.18,"avg7":0.2,"avg30":0.25,"basis":"product-page","updatedAt":"2026-10-05T07:48:43.106Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"reverse-holo","currency":"USD","market":0.27,"low":0.02,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_sv3pt5_63"},{"key":"pkm_mcap_63_165","label":"Cosmos Holo","kind":"surface","images":{"small":"https://cards.tcggraph.io/mc/pkm_mcap_63_165/small.webp","normal":"https://cards.tcggraph.io/mc/pkm_mcap_63_165/normal.webp","large":"https://cards.tcggraph.io/mc/pkm_mcap_63_165/large.webp"},"imageFrom":"printing","externalIds":{"cardmarketId":null,"tcgplayerId":520727},"prices":[{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":0.83,"low":0.1,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-01T22:00:05.909Z"}],"cardId":"pkm_mcap_63_165"}],"priceStatus":{"cardmarket":"priced","tcgplayer":"priced","graded":"priced"},"legalities":{"expanded":"legal","standard":"legal","unlimited":"legal"},"gameData":{"hp":50,"types":["Psychic"],"attacks":[{"cost":["Psychic"],"name":"Psyshot","text":"","damage":"20","convertedEnergyCost":1}],"subtypes":["Basic"],"abilities":[],"supertype":"Pokémon","weaknesses":[{"type":"Darkness","value":"×2"}],"evolvesFrom":null,"resistances":[{"type":"Fighting","value":"-30"}],"retreatCost":["Colorless"],"regulationMark":"G","convertedRetreatCost":1,"nationalPokedexNumbers":[63]},"externalIds":{"cardmarketId":733658,"tcgplayerId":516268}},{"id":"pkm_sv3pt5_142","game":"pokemon","name":"Aerodactyl","language":"en","printedName":null,"baseCardId":null,"englishId":null,"sameArtwork":["pkm_ja_sv2a_142","pkm_ja_sv2a_142_poke_ball_pattern","pkm_ja_sv2a_142_master_ball_pattern"],"pricesFrom":"own","pricesTwin":null,"set":{"code":"sv3pt5","name":"151","language":"en","releasedAt":"2023-09-22"},"collectorNumber":"142","rarity":"Rare","artist":"Shinji Kanda","text":"Aerodactyl's sawlike fangs can shred skin to tatters—even the skin of Steel-type Pokémon.","images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/large.webp"},"imageFrom":"own","hashes":{"phash":"ef6bd090903787c3","phashColor":"ef6ad09090379793eb6bd190903787c5eb6b9090903fc7c3"},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"foil","currency":"EUR","market":0.36,"low":0.02,"trend":0.36,"avg1":0.3,"avg7":0.34,"avg30":0.33,"basis":"product-page","updatedAt":"2026-10-05T11:08:37.710Z"},{"source":"cardmarket","region":"EU","listType":"retail","finish":"reverse-holo","currency":"EUR","market":2.34,"low":0.45,"trend":2.34,"avg1":1.95,"avg7":2.29,"avg30":2.18,"basis":"product-page","updatedAt":"2026-10-05T11:08:40.081Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":0.4,"low":0.05,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"reverse-holo","currency":"USD","market":1.17,"low":0.48,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"gradedPrices":[{"grader":"raw","grade":"ungraded","currency":"USD","price":1.27,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"8","currency":"USD","price":14.04,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9","currency":"USD","price":15,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9.5","currency":"USD","price":17,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"psa","grade":"10","currency":"USD","price":117.5,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"bgs","grade":"10","currency":"USD","price":153,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"cgc","grade":"10","currency":"USD","price":22,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"sgc","grade":"10","currency":"USD","price":71,"salesVolume":183,"updatedAt":"2026-10-05T09:20:50.686Z"}],"languagePrices":[{"source":"cardmarket","language":"en","finish":"foil","currency":"EUR","low":0.02,"lowNm":0.02,"market":0.1,"offers":8,"truncated":true,"truncatedAbove":0.1,"conditions":[{"condition":"nm","low":0.02,"offers":8}],"updatedAt":"2026-10-05T11:08:37.770Z"},{"source":"cardmarket","language":"it","finish":"foil","currency":"EUR","low":0.02,"lowNm":0.02,"market":0.05,"offers":32,"truncated":true,"truncatedAbove":0.1,"conditions":[{"condition":"nm","low":0.02,"offers":31},{"condition":"ex","low":0.1,"offers":1}],"updatedAt":"2026-10-05T11:08:37.770Z"},{"source":"cardmarket","language":"es","finish":"foil","currency":"EUR","low":0.5,"lowNm":0.5,"market":1.25,"offers":12,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":0.5,"offers":12}],"updatedAt":"2026-09-30T08:10:49.040Z"},{"source":"cardmarket","language":"fr","finish":"foil","currency":"EUR","low":0.04,"lowNm":0.04,"market":0.1,"offers":10,"truncated":true,"truncatedAbove":0.1,"conditions":[{"condition":"mt","low":0.05,"offers":1},{"condition":"nm","low":0.04,"offers":9}],"updatedAt":"2026-10-05T11:08:37.770Z"},{"source":"cardmarket","language":"es","finish":"reverse-holo","currency":"EUR","low":18,"lowNm":18,"market":22,"offers":5,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":18,"offers":5}],"updatedAt":"2026-09-30T08:10:49.040Z"},{"source":"cardmarket","language":"de","finish":"foil","currency":"EUR","low":0.1,"lowNm":0.1,"market":0.1,"offers":1,"truncated":true,"truncatedAbove":0.1,"conditions":[{"condition":"nm","low":0.1,"offers":1}],"updatedAt":"2026-10-05T05:08:35.334Z"},{"source":"cardmarket","language":"fr","finish":"reverse-holo","currency":"EUR","low":0.05,"lowNm":0.05,"market":0.05,"offers":1,"truncated":true,"truncatedAbove":0.1,"conditions":[],"updatedAt":"2026-09-19T05:03:34.974Z"},{"source":"cardmarket","language":"pt","finish":"foil","currency":"EUR","low":1,"lowNm":1,"market":1,"offers":1,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":1,"offers":1}],"updatedAt":"2026-10-02T03:41:44.367Z"},{"source":"cardmarket","language":"ja","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-03T00:16:05.717Z"},{"source":"cardmarket","language":"ko","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T03:41:13.941Z"}],"printings":[{"key":"foil","label":"Holofoil","kind":"surface","images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":733737,"tcgplayerId":516705},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"foil","currency":"EUR","market":0.36,"low":0.02,"trend":0.36,"avg1":0.3,"avg7":0.34,"avg30":0.33,"basis":"product-page","updatedAt":"2026-10-05T11:08:37.710Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":0.4,"low":0.05,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_sv3pt5_142"},{"key":"reverse-holo","label":"Reverse holo","kind":"surface","images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_142/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":733737,"tcgplayerId":516705},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"reverse-holo","currency":"EUR","market":2.34,"low":0.45,"trend":2.34,"avg1":1.95,"avg7":2.29,"avg30":2.18,"basis":"product-page","updatedAt":"2026-10-05T11:08:40.081Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"reverse-holo","currency":"USD","market":1.17,"low":0.48,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_sv3pt5_142"}],"priceStatus":{"cardmarket":"priced","tcgplayer":"priced","graded":"priced"},"legalities":{"expanded":"legal","standard":"legal","unlimited":"legal"},"gameData":{"hp":130,"types":["Colorless"],"attacks":[{"cost":["Colorless"],"name":"Glide","text":"","damage":"30","convertedEnergyCost":1},{"cost":["Colorless","Colorless"],"name":"Devolution Ray","text":"If your opponent's Active Pokémon is an evolved Pokémon, devolve it by putting the highest Stage Evolution card on it into your opponent's hand.","damage":"100","convertedEnergyCost":2}],"subtypes":["Stage 1"],"abilities":[],"supertype":"Pokémon","weaknesses":[{"type":"Lightning","value":"×2"}],"evolvesFrom":"Antique Old Amber","resistances":[{"type":"Fighting","value":"-30"}],"retreatCost":[],"regulationMark":"G","convertedRetreatCost":null,"nationalPokedexNumbers":[142]},"externalIds":{"cardmarketId":733737,"tcgplayerId":516705}}]},"meta":{"page":1,"limit":2,"totalCount":207,"totalPages":104,"hasMore":true,"priceSource":"cardmarket"}}}}},"400":{"description":"The code exists in more than one game (details.field is game) or, with language=all, more than one language (details.field is language). details.matches lists them.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-set-ambiguous":{"summary":"Code in two games","value":{"error":{"code":"invalid_request","message":"Set code \"OP16\" exists in more than one game. Add ?game= to choose.","details":{"field":"game","matches":[{"game":"one-piece","language":"en","name":"THE TIME OF BATTLE"},{"game":"yugioh","language":"en","name":"OTS Tournament Pack 16"}]}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No set has the code, in the language asked for.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-set-404":{"summary":"Unknown code","value":{"error":{"code":"not_found","message":"No set with code \"nope\"."}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/cards":{"get":{"operationId":"listCards","summary":"List cards","description":"Search and filter the catalogue. Every filter is optional and they combine with AND.\n\nEnglish printings only unless language says otherwise, so a card appears once per set rather than once per language.\n\nA parameter this endpoint cannot act on is a 400, never an answer that ignores it: an unknown name, a sort or source outside its list, a limit that is not a number. details.allowed lists what would have worked. Without game, the gameData fields of every game are accepted, and a card without the field simply does not match.\n\nEach card is the full Card object, prices included. There is no field selection over REST; GraphQL selects fields.\n\nCosts 2 credits.","tags":["Cards"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/list-cards"},"x-credits":2,"parameters":[{"name":"game","in":"query","required":false,"description":"Only this game. Also narrows which gameData fields are accepted as filters. Default: every game.","schema":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"]},"example":"pokemon"},{"name":"name","in":"query","required":false,"description":"Part of the English name, or of the name as printed (printedName). Case, accents and punctuation are ignored: charizard matches Charizard ex and Dark Charizard, pokedex matches Pokédex, dracaufeu matches the French Dracaufeu-ex and ルフィ the Japanese One Piece Luffys. Searches the languages language asks for, English unless it says otherwise, so a French name wants language=fr. Japanese Pokémon cards carry no printed name and are found by their English one.","schema":{"type":"string"},"example":"charizard"},{"name":"text","in":"query","required":false,"description":"Part of the rules text, case-insensitive.","schema":{"type":"string"},"example":"draw a card"},{"name":"set","in":"query","required":false,"description":"A set code, matched whole, or part of a set name; case-insensitive. sv3pt5 and 151 both find Pokémon's 151.","schema":{"type":"string"},"example":"sv3pt5"},{"name":"collectorNumber","in":"query","required":false,"description":"The printed number. Only the part before / counts and leading zeros are ignored, so 6, 006 and 006/165 match the same card. Numbers that print a set prefix keep it (OP05-119). Parallel and reprint printings that share a printed number are stored with a suffix (OP05-119_p2); the printed number matches all of them, and a number with the suffix matches only that one.","schema":{"type":"string"},"example":"6"},{"name":"rarity","in":"query","required":false,"description":"The whole rarity, case-insensitive, as the game spells it (Double Rare, mythic, SR).","schema":{"type":"string"},"example":"Double Rare"},{"name":"artist","in":"query","required":false,"description":"The whole artist credit, case-insensitive. mitsuhiro arita matches; arita does not.","schema":{"type":"string"},"example":"Mitsuhiro Arita"},{"name":"language","in":"query","required":false,"description":"The printings' language, or all for every language. Case-insensitive; jp, kr and sp are read as ja, ko and es. The default is English, so a set printed only in Japanese (set=m6a) lists nothing without language=ja.","schema":{"type":"string","enum":["en","de","fr","it","es","pt","ja","ko","ru","zhs","zht","th","id","ph","qya","dw","grc","he","ar","la","sa","all"],"default":"en"},"example":"ja"},{"name":"source","in":"query","required":false,"description":"Which marketplace minPrice, maxPrice and sort=price read. Every card still returns all of its quotes. Case-insensitive. Echoed as meta.priceSource.","schema":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"default":"cardmarket"}},{"name":"region","in":"query","required":false,"description":"The same choice by market: EU is cardmarket, NA and US are tcgplayer. Case-insensitive. source wins when both are sent.","schema":{"type":"string","enum":["EU","NA","US"]}},{"name":"minPrice","in":"query","required":false,"description":"Lowest retail market price, inclusive, in the source's currency (EUR on Cardmarket). Reads the normal finish where the card has one, otherwise one of its other retail finishes. Cards with no quote on the source are excluded.","schema":{"type":"number"},"example":10},{"name":"maxPrice","in":"query","required":false,"description":"Highest retail market price, inclusive. Read the same way as minPrice.","schema":{"type":"number"},"example":50},{"name":"sort","in":"query","required":false,"description":"- for descending. price reads the quote minPrice reads; gradedPrice reads the graded slot (PSA 10 unless grader and grade say otherwise); released is the set's release date. Cards without the value sort last either way. Ties break on id, so pages are stable.","schema":{"type":"string","enum":["name","-name","price","-price","gradedPrice","-gradedPrice","released","-released"],"default":"name"}},{"name":"grader","in":"query","required":false,"description":"With grade, the graded slot sort=gradedPrice orders by. Both or neither. The slots that exist: raw/ungraded, any/7, any/8, any/9, any/9.5, psa/10, bgs/10, cgc/10, sgc/10.","schema":{"type":"string","enum":["raw","any","psa","bgs","cgc","sgc"]}},{"name":"grade","in":"query","required":false,"description":"The other half of the slot. Without either, sort=gradedPrice reads PSA 10.","schema":{"type":"string","enum":["ungraded","7","8","9","9.5","10"]}},{"name":"page","in":"query","required":false,"description":"Page number, from 1. Below 1 reads as 1. A page past the end returns an empty data with hasMore: false.","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","required":false,"description":"Rows per page, 1 to 100. Out-of-range values are clamped, not refused; meta.limit reports the size used.","schema":{"type":"integer","default":20}},{"name":"gameData","in":"query","required":false,"style":"form","explode":true,"description":"Any gameData field the game declares, as its own query parameter (types=fire, hp=330, banlist.tcg=forbidden), and minField/maxField bounds on numeric ones (minHp=300). GET /v1/games/{slug} lists them.","schema":{"type":"object","additionalProperties":{"type":"string"}}}],"responses":{"200":{"description":"A page of cards.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Card"},"description":"The page of cards."},"meta":{"$ref":"#/components/schemas/PageMeta","description":"Paging."}},"required":["data","meta"]},"example":{"data":[{"id":"pkm_gym2_2","game":"pokemon","name":"Blaine's Charizard","language":"en","printedName":null,"baseCardId":null,"englishId":null,"sameArtwork":["pkm_ja_g23726_blaine_s_charizard"],"pricesFrom":"own","pricesTwin":null,"set":{"code":"gym2","name":"Gym Challenge","language":"en","releasedAt":"2000-10-16"},"collectorNumber":"2","rarity":"Rare Holo","artist":"Ken Sugimori","text":null,"images":{"small":"https://cards.tcggraph.io/gy/pkm_gym2_2/small.webp","normal":"https://cards.tcggraph.io/gy/pkm_gym2_2/normal.webp","large":"https://cards.tcggraph.io/gy/pkm_gym2_2/large.webp"},"imageFrom":"own","hashes":{"phash":"eb6bc0909c8ecdc5","phashColor":"eb6bc0b4949fc4c4eb6ac09098aecfc5c17ac1c04be7790f"},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"foil","currency":"EUR","market":670.21,"low":109.9,"trend":670.21,"avg1":219.95,"avg7":766.1,"avg30":528.26,"basis":"product-page","updatedAt":"2026-10-05T09:19:43.115Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"1st-edition-foil","currency":"USD","market":699.99,"low":1900,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":584.96,"low":430,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"gradedPrices":[{"grader":"raw","grade":"ungraded","currency":"USD","price":445.19,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"7","currency":"USD","price":594.5,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"8","currency":"USD","price":740,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9","currency":"USD","price":1507.56,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9.5","currency":"USD","price":1771.06,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"psa","grade":"10","currency":"USD","price":6318.16,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"bgs","grade":"10","currency":"USD","price":8214,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"cgc","grade":"10","currency":"USD","price":3769.14,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"sgc","grade":"10","currency":"USD","price":3791,"salesVolume":452,"updatedAt":"2026-10-05T09:20:50.686Z"}],"languagePrices":[{"source":"cardmarket","language":"en","finish":"foil","currency":"EUR","low":109.9,"lowNm":null,"market":285,"offers":50,"truncated":true,"truncatedAbove":470,"conditions":[{"condition":"ex","low":449,"offers":1},{"condition":"gd","low":250,"offers":11},{"condition":"lp","low":299.99,"offers":6},{"condition":"pl","low":200,"offers":10},{"condition":"po","low":109.9,"offers":22}],"updatedAt":"2026-10-05T09:19:43.183Z"},{"source":"cardmarket","language":"de","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T09:08:15.982Z"},{"source":"cardmarket","language":"es","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T09:08:16.063Z"},{"source":"cardmarket","language":"fr","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T09:08:12.684Z"},{"source":"cardmarket","language":"it","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T09:08:15.680Z"},{"source":"cardmarket","language":"ja","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T09:08:30.984Z"},{"source":"cardmarket","language":"ko","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T09:08:26.585Z"},{"source":"cardmarket","language":"pt","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T09:08:26.854Z"}],"printings":[{"key":"foil","label":"Holofoil","kind":"surface","images":{"small":"https://cards.tcggraph.io/gy/pkm_gym2_2/small.webp","normal":"https://cards.tcggraph.io/gy/pkm_gym2_2/normal.webp","large":"https://cards.tcggraph.io/gy/pkm_gym2_2/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":274270,"tcgplayerId":83861},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"foil","currency":"EUR","market":670.21,"low":109.9,"trend":670.21,"avg1":219.95,"avg7":766.1,"avg30":528.26,"basis":"product-page","updatedAt":"2026-10-05T09:19:43.115Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":584.96,"low":430,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_gym2_2"},{"key":"1st-edition-foil","label":"1st Edition holofoil","kind":"edition","images":{"small":"https://cards.tcggraph.io/gy/pkm_gym2_2/small.webp","normal":"https://cards.tcggraph.io/gy/pkm_gym2_2/normal.webp","large":"https://cards.tcggraph.io/gy/pkm_gym2_2/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":274270,"tcgplayerId":83861},"prices":[{"source":"tcgplayer","region":"NA","listType":"retail","finish":"1st-edition-foil","currency":"USD","market":699.99,"low":1900,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_gym2_2"}],"priceStatus":{"cardmarket":"priced","tcgplayer":"priced","graded":"priced"},"legalities":{"unlimited":"legal"},"gameData":{"hp":100,"types":["Fire"],"attacks":[{"cost":["Fire"],"name":"Roaring Flames","text":"Discard all Fire Energy cards attached to Blaine's Charizard. If all Energy cards attached to Blaine's Charizard provide 2 Fire Energy, discard all of them. This attack does 20 damage plus 20 more damage for each Fire Energy discarded in this way.","damage":"20+","convertedEnergyCost":1},{"cost":["Fire","Fire"],"name":"Flame Jet","text":"Flip a coin. If heads, choose 1 of your opponent's Pokémon. This attack does 40 damage to that Pokémon. Don't apply Weakness and Resistance for this attack. (Any other effects that would happen after applying Weakness and Resistance still happen.)","damage":"","convertedEnergyCost":2}],"subtypes":["Stage 2"],"abilities":[],"supertype":"Pokémon","weaknesses":[{"type":"Water","value":"×2"}],"evolvesFrom":"Blaine's Charmeleon","resistances":[{"type":"Fighting","value":"-30"}],"retreatCost":["Colorless","Colorless","Colorless"],"regulationMark":null,"convertedRetreatCost":3,"nationalPokedexNumbers":[6]},"externalIds":{"cardmarketId":274270,"tcgplayerId":83861}},{"id":"pkm_ba2020_3_70","game":"pokemon","name":"Charizard","language":"en","printedName":null,"baseCardId":"pkm_sm75_3","englishId":null,"sameArtwork":["pkm_ja_sm6a_3"],"pricesFrom":"own","pricesTwin":null,"set":{"code":"ba2020","name":"Battle Academy 2020","language":"en","releasedAt":"2020-07-31"},"collectorNumber":"3","rarity":"Promo","artist":null,"text":null,"images":{"small":"https://cards.tcggraph.io/ba/pkm_ba2020_3_70/small.webp","normal":"https://cards.tcggraph.io/ba/pkm_ba2020_3_70/normal.webp","large":"https://cards.tcggraph.io/ba/pkm_ba2020_3_70/large.webp"},"imageFrom":"own","hashes":{"phash":"ef46d0b0b4372d89","phashColor":"ea4ad890b527a59defc6e0b0b4372c89cfd4f838b0317a68"},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"normal","currency":"EUR","market":6.38,"low":1.5,"trend":6.38,"avg1":9.99,"avg7":7.03,"avg30":5.66,"basis":"product-page","updatedAt":"2026-10-05T07:14:25.624Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"normal","currency":"USD","market":7.28,"low":5.43,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"gradedPrices":[{"grader":"raw","grade":"ungraded","currency":"USD","price":7.45,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"7","currency":"USD","price":8.99,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"8","currency":"USD","price":15.22,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9","currency":"USD","price":29.99,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9.5","currency":"USD","price":33,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"psa","grade":"10","currency":"USD","price":109.99,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"bgs","grade":"10","currency":"USD","price":143,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"cgc","grade":"10","currency":"USD","price":35,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"sgc","grade":"10","currency":"USD","price":66,"salesVolume":98,"updatedAt":"2026-10-05T09:20:50.686Z"}],"languagePrices":[{"source":"cardmarket","language":"en","finish":"normal","currency":"EUR","low":4,"lowNm":null,"market":4.42,"offers":4,"truncated":true,"truncatedAbove":5,"conditions":[{"condition":"gd","low":4.84,"offers":1},{"condition":"lp","low":4,"offers":3}],"updatedAt":"2026-10-05T07:14:25.784Z"},{"source":"cardmarket","language":"fr","finish":"normal","currency":"EUR","low":1.5,"lowNm":3,"market":4.8,"offers":26,"truncated":true,"truncatedAbove":5,"conditions":[{"condition":"nm","low":3,"offers":13},{"condition":"ex","low":2.99,"offers":8},{"condition":"gd","low":2.99,"offers":3},{"condition":"lp","low":4,"offers":1},{"condition":"po","low":1.5,"offers":1}],"updatedAt":"2026-10-05T07:14:25.784Z"},{"source":"cardmarket","language":"de","finish":"normal","currency":"EUR","low":2.99,"lowNm":3.3,"market":4,"offers":20,"truncated":true,"truncatedAbove":5,"conditions":[{"condition":"nm","low":3.3,"offers":12},{"condition":"ex","low":3.45,"offers":3},{"condition":"gd","low":3,"offers":3},{"condition":"pl","low":3.49,"offers":1},{"condition":"po","low":2.99,"offers":1}],"updatedAt":"2026-10-05T07:14:25.784Z"},{"source":"cardmarket","language":"it","finish":"normal","currency":"EUR","low":6.89,"lowNm":29.9,"market":42.5,"offers":13,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":29.9,"offers":4},{"condition":"ex","low":12,"offers":5},{"condition":"gd","low":10,"offers":2},{"condition":"pl","low":6.89,"offers":2}],"updatedAt":"2026-10-02T15:54:02.794Z"},{"source":"cardmarket","language":"es","finish":"normal","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T15:53:57.496Z"},{"source":"cardmarket","language":"ja","finish":"normal","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T15:53:59.971Z"},{"source":"cardmarket","language":"ko","finish":"normal","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T15:54:02.713Z"},{"source":"cardmarket","language":"pt","finish":"normal","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T15:54:03.569Z"}],"printings":[{"key":"normal","label":"Normal","kind":"surface","images":{"small":"https://cards.tcggraph.io/ba/pkm_ba2020_3_70/small.webp","normal":"https://cards.tcggraph.io/ba/pkm_ba2020_3_70/normal.webp","large":"https://cards.tcggraph.io/ba/pkm_ba2020_3_70/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":550136,"tcgplayerId":219058},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"normal","currency":"EUR","market":6.38,"low":1.5,"trend":6.38,"avg1":9.99,"avg7":7.03,"avg30":5.66,"basis":"product-page","updatedAt":"2026-10-05T07:14:25.624Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"normal","currency":"USD","market":7.28,"low":5.43,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_ba2020_3_70"}],"priceStatus":{"cardmarket":"priced","tcgplayer":"priced","graded":"priced"},"legalities":{},"gameData":{"hp":160,"types":["Fire"],"attacks":[{"cost":[],"name":"1RR] Fiery Blast","text":"Discard an Energy from this Pokémon.","damage":"130","convertedEnergyCost":0}],"variant":"#39 Charizard Stamped","subtypes":["Stage 2"],"abilities":[],"supertype":"Pokémon","weaknesses":[{"type":"Water","value":"×2"}],"evolvesFrom":null,"resistances":[],"retreatCost":["Colorless","Colorless"],"catalogSource":"tcgplayer","regulationMark":null,"convertedRetreatCost":2,"nationalPokedexNumbers":[]},"externalIds":{"cardmarketId":550136,"tcgplayerId":219058}}],"meta":{"page":1,"limit":2,"totalCount":158,"totalPages":79,"hasMore":true,"priceSource":"cardmarket"}}}}},"400":{"description":"A filter no game declares. Common names from other APIs get a suggestion. Or: A value outside a parameter's list: sort, source, region, language, grader, grade, game. Or: page or limit that is not a whole number, a price or bound that is not a number, or grader without grade.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"list-cards-unknown":{"summary":"`q` instead of `name`","value":{"error":{"code":"invalid_request","message":"Unknown filter \"q\". Did you mean name=?","details":{"field":"q","suggestion":"name","allowed":["page","limit","sort","game","name","text","rarity","set","collectorNumber","artist","language","minPrice","maxPrice","source","region","grader","grade","supertype","subtypes","hp","types","evolvesFrom","attacks","abilities","weaknesses","resistances","retreatCost","convertedRetreatCost","regulationMark","nationalPokedexNumbers","manaCost","manaValue","colors","colorIdentity","typeLine","power","toughness","loyalty","keywords","layout","finishes","cardType","cost","counter","life","attribute","trigger","frameType","race","atk","def","level","linkRating","linkMarkers","pendulumScale","archetypes","banlist","inkCost","inkable","ink","lore","strength","willpower","classifications","moveCost","version","aspects","arena","traits","unique","variant","playCost","dp","digivolveCosts","form","inheritedEffect","securityEffect","memoryCost","reserveCost","durability","elements","classes","speed","line","specifiedCost","comboPower","comboEnergy","specialTraits","characters","era","series","back","minHp","maxHp","minConvertedRetreatCost","maxConvertedRetreatCost","minManaValue","maxManaValue","minCost","maxCost","minPower","maxPower","minCounter","maxCounter","minLife","maxLife","minAtk","maxAtk","minDef","maxDef","minLevel","maxLevel","minLinkRating","maxLinkRating","minPendulumScale","maxPendulumScale","minInkCost","maxInkCost","minLore","maxLore","minStrength","maxStrength","minWillpower","maxWillpower","minMoveCost","maxMoveCost","minCost","maxCost","minPower","maxPower","minHp","maxHp","minLevel","maxLevel","minPlayCost","maxPlayCost","minDp","maxDp","minMemoryCost","maxMemoryCost","minReserveCost","maxReserveCost","minLevel","maxLevel","minPower","maxPower","minLife","maxLife","minDurability","maxDurability","minCost","maxCost","minSpecifiedCost","maxSpecifiedCost","minPower","maxPower","minComboPower","maxComboPower","minComboEnergy","maxComboEnergy"],"docs":"https://tcggraph.com/docs/rest#filtering"}}}},"list-cards-sort":{"summary":"Unknown sort","value":{"error":{"code":"invalid_request","message":"Unknown sort \"cheapest\".","details":{"field":"sort","allowed":["name","-name","price","-price","gradedPrice","-gradedPrice","released","-released"]}}}},"list-cards-limit":{"summary":"Non-numeric limit","value":{"error":{"code":"invalid_request","message":"`limit` must be a whole number.","details":{"field":"limit","got":"ten"}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/cards/{id}":{"get":{"operationId":"getCard","summary":"Get a card","description":"One printing by id, in any language.\n\nIds are stable. When a set is re-keyed, the old id keeps resolving to the card under its new id, with meta.movedFrom set to the id you sent. Store data.id.\n\nQuery parameters are ignored.\n\nCosts 1 credits.","tags":["Cards"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/get-card"},"x-credits":1,"parameters":[{"name":"id","in":"path","required":true,"description":"A card id. An id retired by a set re-key keeps working and is reported in meta.movedFrom.","schema":{"type":"string"},"example":"pkm_sv3pt5_6"}],"responses":{"200":{"description":"The card.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Card","description":"The card."},"meta":{"type":"object","properties":{"movedFrom":{"type":"string","description":"The id you sent."}},"required":["movedFrom"],"description":"Present only when the id was retired."}},"required":["data"]},"example":{"data":{"id":"pkm_sv3pt5_6","game":"pokemon","name":"Charizard ex","language":"en","printedName":null,"baseCardId":null,"englishId":null,"sameArtwork":["pkm_ja_sv2a_6"],"pricesFrom":"own","pricesTwin":null,"set":{"code":"sv3pt5","name":"151","language":"en","releasedAt":"2023-09-22"},"collectorNumber":"6","rarity":"Double Rare","artist":"PLANETA Mochizuki","text":null,"images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_6/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_6/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_6/large.webp"},"imageFrom":"own","hashes":{"phash":"c35f14b4727b1a8c","phashColor":"c35916b46aebb984c35f04a6737b1c8cfb6f84e4d05a1a0b"},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"foil","currency":"EUR","market":8.41,"low":4.5,"trend":8.41,"avg1":7.94,"avg7":8.42,"avg30":8.39,"basis":"product-page","updatedAt":"2026-10-05T08:08:04.341Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":8.76,"low":5.99,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"gradedPrices":[{"grader":"raw","grade":"ungraded","currency":"USD","price":8.23,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"7","currency":"USD","price":13.73,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"8","currency":"USD","price":18.92,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9","currency":"USD","price":24.49,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9.5","currency":"USD","price":29.92,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"psa","grade":"10","currency":"USD","price":125.11,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"bgs","grade":"10","currency":"USD","price":163,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"cgc","grade":"10","currency":"USD","price":34.46,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"sgc","grade":"10","currency":"USD","price":39,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"}],"languagePrices":[{"source":"cardmarket","language":"en","finish":"foil","currency":"EUR","low":6.5,"lowNm":7,"market":9.8,"offers":50,"truncated":true,"truncatedAbove":10,"conditions":[{"condition":"nm","low":7,"offers":46},{"condition":"ex","low":9.45,"offers":2},{"condition":"gd","low":6.5,"offers":2}],"updatedAt":"2026-10-05T09:01:59.654Z"},{"source":"cardmarket","language":"it","finish":"foil","currency":"EUR","low":4.5,"lowNm":4.59,"market":5.5,"offers":43,"truncated":true,"truncatedAbove":6.8,"conditions":[{"condition":"nm","low":4.59,"offers":38},{"condition":"ex","low":4.5,"offers":5}],"updatedAt":"2026-10-05T08:08:05.766Z"},{"source":"cardmarket","language":"es","finish":"foil","currency":"EUR","low":8.75,"lowNm":8.75,"market":12,"offers":17,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":8.75,"offers":15},{"condition":"ex","low":11,"offers":1},{"condition":"gd","low":9,"offers":1}],"updatedAt":"2026-09-30T11:53:43.291Z"},{"source":"cardmarket","language":"de","finish":"foil","currency":"EUR","low":4.8,"lowNm":4.8,"market":5.24,"offers":5,"truncated":true,"truncatedAbove":6.8,"conditions":[{"condition":"nm","low":4.8,"offers":4},{"condition":"ex","low":6,"offers":1}],"updatedAt":"2026-10-05T08:08:05.766Z"},{"source":"cardmarket","language":"fr","finish":"foil","currency":"EUR","low":6.8,"lowNm":6.8,"market":6.8,"offers":1,"truncated":true,"truncatedAbove":6.8,"conditions":[{"condition":"nm","low":6.8,"offers":1}],"updatedAt":"2026-10-05T08:08:05.766Z"},{"source":"cardmarket","language":"pt","finish":"foil","currency":"EUR","low":10,"lowNm":10,"market":10,"offers":1,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":10,"offers":1}],"updatedAt":"2026-10-02T12:38:59.692Z"},{"source":"cardmarket","language":"ja","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T12:38:52.526Z"},{"source":"cardmarket","language":"ko","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T12:38:58.267Z"}],"printings":[{"key":"foil","label":"Holofoil","kind":"surface","images":{"small":"https://cards.tcggraph.io/sv/pkm_sv3pt5_6/small.webp","normal":"https://cards.tcggraph.io/sv/pkm_sv3pt5_6/normal.webp","large":"https://cards.tcggraph.io/sv/pkm_sv3pt5_6/large.webp"},"imageFrom":"card","externalIds":{"cardmarketId":733601,"tcgplayerId":502558},"prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"foil","currency":"EUR","market":8.41,"low":4.5,"trend":8.41,"avg1":7.94,"avg7":8.42,"avg30":8.39,"basis":"product-page","updatedAt":"2026-10-05T08:08:04.341Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":8.76,"low":5.99,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"cardId":"pkm_sv3pt5_6"}],"priceStatus":{"cardmarket":"priced","tcgplayer":"priced","graded":"priced"},"legalities":{"expanded":"legal","standard":"legal","unlimited":"legal"},"gameData":{"hp":330,"types":["Fire"],"attacks":[{"cost":["Fire"],"name":"Brave Wing","text":"If this Pokémon has any damage counters on it, this attack does 100 more damage.","damage":"60+","convertedEnergyCost":1},{"cost":["Fire","Fire","Fire","Fire"],"name":"Explosive Vortex","text":"Discard 3 Energy from this Pokémon.","damage":"330","convertedEnergyCost":4}],"subtypes":["Stage 2","ex"],"abilities":[],"supertype":"Pokémon","weaknesses":[{"type":"Water","value":"×2"}],"evolvesFrom":"Charmeleon","resistances":[],"retreatCost":["Colorless","Colorless"],"regulationMark":"G","convertedRetreatCost":2,"nationalPokedexNumbers":[6]},"externalIds":{"cardmarketId":733601,"tcgplayerId":502558}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No card has, or had, that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-card-404":{"summary":"Unknown id","value":{"error":{"code":"not_found","message":"No card with id \"pkm_nope_1\"."}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/prices/{cardId}":{"get":{"operationId":"getPrices","summary":"Get prices","description":"Every current quote for one card: marketplace, graded and per-language, in one call.\n\nThe same quotes as the card's prices, gradedPrices and languagePrices, without the rest of the card.\n\nmeta.priced, meta.graded and meta.languages say whether each list has anything, and data.priceStatus says why one is empty. An empty languages means the product page has not been read yet, not that nothing is for sale.\n\nA localized printing whose marketplace product is the English one is answered with the English quotes: meta.pricesFrom is englishTwin and meta.englishId names the printing they belong to.\n\nAn English printing no marketplace sells in English (a Japan-only One Piece promo) is answered with its twin's quotes in the language it is sold in: meta.pricesFrom is localizedTwin and meta.pricesTwin names that printing and its language.\n\nCosts 1 credits.","tags":["Prices"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/get-prices"},"x-credits":1,"parameters":[{"name":"cardId","in":"path","required":true,"description":"A card id. An id retired by a set re-key keeps working and is reported in meta.movedFrom.","schema":{"type":"string"},"example":"pkm_sv3pt5_6"},{"name":"source","in":"query","required":false,"description":"Only this marketplace's quotes in prices. Case-insensitive. Default: every source.","schema":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"]}},{"name":"language","in":"query","required":false,"description":"Only this language's rows in languages. The languages Cardmarket sells in. Default: every language.","schema":{"type":"string","enum":["en","fr","de","es","it","zhs","ja","pt","ru","ko","zht"]}},{"name":"condition","in":"query","required":false,"description":"Only this condition in each language row's conditions. The row's own low, lowNm and market still cover every condition. Default: every condition.","schema":{"type":"string","enum":["mt","nm","ex","gd","lp","pl","po"]}},{"name":"grader","in":"query","required":false,"description":"With grade, only that slot in graded.","schema":{"type":"string","enum":["raw","any","psa","bgs","cgc","sgc"]}},{"name":"grade","in":"query","required":false,"description":"The other half of the slot.","schema":{"type":"string","enum":["ungraded","7","8","9","9.5","10"]}}],"responses":{"200":{"description":"The card's quotes.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"cardId":{"type":"string","description":"The card's current id."},"prices":{"type":"array","items":{"$ref":"#/components/schemas/Price"},"description":"Marketplace quotes."},"graded":{"type":"array","items":{"$ref":"#/components/schemas/GradedPrice"},"description":"Graded index quotes."},"languages":{"type":"array","items":{"$ref":"#/components/schemas/LanguagePrice"},"description":"Cardmarket listings by language."},"priceStatus":{"$ref":"#/components/schemas/PriceStatus","description":"Why each source does or does not quote the card."}},"required":["cardId","prices","graded","languages","priceStatus"],"description":"The quotes."},"meta":{"type":"object","properties":{"priced":{"type":"boolean","description":"prices is not empty."},"graded":{"type":"boolean","description":"graded is not empty."},"languages":{"type":"boolean","description":"languages is not empty."},"pricesFrom":{"type":"string","enum":["own","englishTwin","localizedTwin"],"description":"Whose quotes these are."},"englishId":{"type":"string","description":"Present with englishTwin: the printing quoted."},"pricesTwin":{"type":"object","properties":{"id":{"type":"string","description":"Its id."},"language":{"type":"string","description":"The language its copies are in, so the quotes are labelled with it."}},"required":["id","language"],"description":"Present with localizedTwin: the printing quoted."},"movedFrom":{"type":"string","description":"The retired id you sent."},"source":{"type":"string","description":"Echo of source."},"language":{"type":"string","description":"Echo of language."},"condition":{"type":"string","description":"Echo of condition."},"grader":{"type":"string","description":"Echo of grader."},"grade":{"type":"string","description":"Echo of grade."}},"required":["priced","graded","languages","pricesFrom"],"description":"What came back."}},"required":["data","meta"]},"example":{"data":{"cardId":"pkm_sv3pt5_6","prices":[{"source":"cardmarket","region":"EU","listType":"retail","finish":"foil","currency":"EUR","market":8.41,"low":4.5,"trend":8.41,"avg1":7.94,"avg7":8.42,"avg30":8.39,"basis":"product-page","updatedAt":"2026-10-05T08:08:04.341Z"},{"source":"tcgplayer","region":"NA","listType":"retail","finish":"foil","currency":"USD","market":8.76,"low":5.99,"trend":null,"avg1":null,"avg7":null,"avg30":null,"basis":null,"updatedAt":"2026-10-04T22:00:05.544Z"}],"graded":[{"grader":"raw","grade":"ungraded","currency":"USD","price":8.23,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"7","currency":"USD","price":13.73,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"8","currency":"USD","price":18.92,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9","currency":"USD","price":24.49,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"any","grade":"9.5","currency":"USD","price":29.92,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"psa","grade":"10","currency":"USD","price":125.11,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"bgs","grade":"10","currency":"USD","price":163,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"cgc","grade":"10","currency":"USD","price":34.46,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"},{"grader":"sgc","grade":"10","currency":"USD","price":39,"salesVolume":383,"updatedAt":"2026-10-05T09:20:50.686Z"}],"languages":[{"source":"cardmarket","language":"en","finish":"foil","currency":"EUR","low":6.5,"lowNm":7,"market":9.8,"offers":50,"truncated":true,"truncatedAbove":10,"conditions":[{"condition":"nm","low":7,"offers":46},{"condition":"ex","low":9.45,"offers":2},{"condition":"gd","low":6.5,"offers":2}],"updatedAt":"2026-10-05T09:01:59.654Z"},{"source":"cardmarket","language":"it","finish":"foil","currency":"EUR","low":4.5,"lowNm":4.59,"market":5.5,"offers":43,"truncated":true,"truncatedAbove":6.8,"conditions":[{"condition":"nm","low":4.59,"offers":38},{"condition":"ex","low":4.5,"offers":5}],"updatedAt":"2026-10-05T08:08:05.766Z"},{"source":"cardmarket","language":"es","finish":"foil","currency":"EUR","low":8.75,"lowNm":8.75,"market":12,"offers":17,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":8.75,"offers":15},{"condition":"ex","low":11,"offers":1},{"condition":"gd","low":9,"offers":1}],"updatedAt":"2026-09-30T11:53:43.291Z"},{"source":"cardmarket","language":"de","finish":"foil","currency":"EUR","low":4.8,"lowNm":4.8,"market":5.24,"offers":5,"truncated":true,"truncatedAbove":6.8,"conditions":[{"condition":"nm","low":4.8,"offers":4},{"condition":"ex","low":6,"offers":1}],"updatedAt":"2026-10-05T08:08:05.766Z"},{"source":"cardmarket","language":"fr","finish":"foil","currency":"EUR","low":6.8,"lowNm":6.8,"market":6.8,"offers":1,"truncated":true,"truncatedAbove":6.8,"conditions":[{"condition":"nm","low":6.8,"offers":1}],"updatedAt":"2026-10-05T08:08:05.766Z"},{"source":"cardmarket","language":"pt","finish":"foil","currency":"EUR","low":10,"lowNm":10,"market":10,"offers":1,"truncated":false,"truncatedAbove":null,"conditions":[{"condition":"nm","low":10,"offers":1}],"updatedAt":"2026-10-02T12:38:59.692Z"},{"source":"cardmarket","language":"ja","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T12:38:52.526Z"},{"source":"cardmarket","language":"ko","finish":"foil","currency":"EUR","low":null,"lowNm":null,"market":null,"offers":0,"truncated":false,"truncatedAbove":null,"conditions":[],"updatedAt":"2026-10-02T12:38:58.267Z"}],"priceStatus":{"cardmarket":"priced","tcgplayer":"priced","graded":"priced"}},"meta":{"priced":true,"graded":true,"languages":true,"pricesFrom":"own"}}}}},"400":{"description":"A parameter this endpoint does not take, or a value outside a parameter's list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-prices-unknown":{"summary":"`lang` instead of `language`","value":{"error":{"code":"invalid_request","message":"Unknown parameter \"lang\".","details":{"field":"lang","allowed":["source","language","condition","grader","grade"],"docs":"https://tcggraph.com/docs/rest/get-prices"}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No card has that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-prices-404":{"summary":"Unknown id","value":{"error":{"code":"not_found","message":"No card with id \"pkm_nope_1\"."}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/prices/{cardId}/history":{"get":{"operationId":"getPriceHistory","summary":"Get price history","description":"One quote over time: a marketplace series, or a graded slot.\n\nPoints are dense. Prices are stored when they move, and every day carries the last reading forward, including one from before from, so a flat run is a price that did not change, not missing data. A card first priced inside the range starts on that day, so count can be lower than the days asked for; a card never priced on the series returns no points.\n\nAmounts are in major units of the source's currency: market and low on a marketplace series, price on a graded one.\n\nCosts 3 credits.","tags":["Prices"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/get-price-history"},"x-credits":3,"parameters":[{"name":"cardId","in":"path","required":true,"description":"A card id. An id retired by a set re-key keeps working and is reported in meta.movedFrom.","schema":{"type":"string"},"example":"pkm_sv3pt5_6"},{"name":"source","in":"query","required":false,"description":"The marketplace. Case-insensitive.","schema":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"default":"cardmarket"}},{"name":"finish","in":"query","required":false,"description":"Which printing's series. Without it: the finish of the card's current retail quote on source, else the finish with the most history, else normal. meta.finishes lists every series the source holds for the card. Default: the finish the card is quoted in now.","schema":{"type":"string","enum":["normal","foil","etched","reverse-holo","cosmos-holo","cracked-ice","pokeball","masterball","energy-symbol","duskball","loveball","friendball","quickball","team-rocket","staff","prerelease","league","pokemon-center","1st-edition","1st-edition-foil","shadowless","limited"]}},{"name":"interval","in":"query","required":false,"description":"Point spacing. Weeks run Monday to Sunday and months are calendar months, UTC. A WEEK or MONTH point is the bucket's last day inside the range, with the price held on that day: a price that was really quoted, not an average. Case-insensitive.","schema":{"type":"string","enum":["DAY","WEEK","MONTH"],"default":"DAY"}},{"name":"from","in":"query","required":false,"description":"First day, YYYY-MM-DD, inclusive. Default: to minus 90 days.","schema":{"type":"string"},"example":"2026-01-01"},{"name":"to","in":"query","required":false,"description":"Last day, YYYY-MM-DD, inclusive. At most 1,826 days after from. Default: today, UTC.","schema":{"type":"string"},"example":"2026-06-30"},{"name":"grader","in":"query","required":false,"description":"With grade, the graded slot's series instead of a marketplace's; source and finish are then ignored.","schema":{"type":"string","enum":["raw","any","psa","bgs","cgc","sgc"]}},{"name":"grade","in":"query","required":false,"description":"The other half of the slot.","schema":{"type":"string","enum":["ungraded","7","8","9","9.5","10"]}}],"responses":{"200":{"description":"The series. Marketplace and graded series differ in shape.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"cardId":{"type":"string","description":"The card's current id."},"source":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"description":"Marketplace series: the source."},"finish":{"type":"string","enum":["normal","foil","etched","reverse-holo","cosmos-holo","cracked-ice","pokeball","masterball","energy-symbol","duskball","loveball","friendball","quickball","team-rocket","staff","prerelease","league","pokemon-center","1st-edition","1st-edition-foil","shadowless","limited"],"description":"Marketplace series: the finish used."},"grader":{"type":"string","enum":["raw","any","psa","bgs","cgc","sgc"],"description":"Graded series: the grader."},"grade":{"type":"string","enum":["ungraded","7","8","9","9.5","10"],"description":"Graded series: the grade."},"interval":{"type":"string","enum":["DAY","WEEK","MONTH"],"description":"The spacing used."},"points":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","description":"YYYY-MM-DD: the day, or the last day of the week or month inside the range."},"market":{"type":["number","null"],"description":"Marketplace series: the headline price that day."},"low":{"type":["number","null"],"description":"Marketplace series: the low that day."},"price":{"type":"number","description":"Graded series: the slot's price that day."},"currency":{"type":"string","enum":["EUR","USD"],"description":"The currency."}},"required":["day","currency"]},"description":"Oldest first."}},"required":["cardId","interval","points"],"description":"The series."},"meta":{"type":"object","properties":{"from":{"type":"string","description":"The first day used."},"to":{"type":"string","description":"The last day used."},"count":{"type":"integer","description":"Points returned."},"finishes":{"type":"array","items":{"type":"string"},"description":"Marketplace series: every finish the source has history for, most history first."},"note":{"type":"string","description":"How to read the points."},"pricesFrom":{"type":"string","enum":["englishTwin","localizedTwin"],"description":"Present when the prices are another printing's: englishTwin for a localized printing served its English printing's, localizedTwin for an English printing no marketplace sells in English, served its twin's in another language."},"englishId":{"type":"string","description":"Present with englishTwin: the English printing the prices are from."},"pricesTwin":{"type":"object","properties":{"id":{"type":"string","description":"Its id."},"language":{"type":"string","description":"The language its copies are in, so the quotes are labelled with it."}},"required":["id","language"],"description":"Present with localizedTwin: the printing quoted."},"movedFrom":{"type":"string","description":"The id you asked for, when it was retired by a set re-key."}},"required":["from","to","count","note"],"description":"The range and what else exists."}},"required":["data","meta"]},"example":{"data":{"cardId":"pkm_sv3pt5_6","source":"cardmarket","finish":"foil","interval":"WEEK","points":[]},"meta":{"from":"2026-01-01","to":"2026-03-31","count":0,"finishes":["foil","normal"],"note":"Points are dense: a price is held forward until it next moves."}}}}},"400":{"description":"A date that is not YYYY-MM-DD, from after to, or a range over 1,826 days. Or: A finish, interval, source, grader or grade outside its list, or a parameter this endpoint does not take.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-price-history-range":{"summary":"Range too long","value":{"error":{"code":"invalid_request","message":"That range covers 4018 days; the maximum is 1826.","details":{"field":"from","maxDays":1826}}}},"get-price-history-finish":{"summary":"Unknown finish","value":{"error":{"code":"invalid_request","message":"Unknown finish \"holo\".","details":{"field":"finish","allowed":["normal","foil","etched","reverse-holo","cosmos-holo","cracked-ice","pokeball","masterball","energy-symbol","duskball","loveball","friendball","quickball","team-rocket","staff","prerelease","league","pokemon-center","1st-edition","1st-edition-foil","shadowless","limited"]}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No card has that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/prices/{cardId}/sales":{"get":{"operationId":"getSales","summary":"Get sales","description":"What copies actually sold for on Cardmarket, day by day.\n\nRealized sales, not asking prices: the average price copies sold for on each day any changed hands, every language and condition together. On a product sold in two versions, without finish it is the plain version's chart; the other version's starts at our first read of that view.\n\nSparse: a day without a sale has no point. The series begins at our first read of the product page; Cardmarket shows about the last 30 days on which a copy sold, and each read since adds the new days.\n\nPokémon, Yu-Gi-Oh!, Dragon Ball Super and One Piece also have older windows, from archived copies of the product page (the Wayback Machine, captured 2018 to 2023), each carrying the chart as it stood that day. English cards with sales before 2024: Yu-Gi-Oh! 4,877, Pokémon 3,619, Dragon Ball Super 2,463, One Piece 25. Between the last capture and our first read there is a gap, of years for most cards.\n\nCosts 3 credits.","tags":["Prices"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/get-sales"},"x-credits":3,"parameters":[{"name":"cardId","in":"path","required":true,"description":"A card id. An id retired by a set re-key keeps working and is reported in meta.movedFrom.","schema":{"type":"string"},"example":"pkm_sv3pt5_6"},{"name":"days","in":"query","required":false,"description":"How many days back from today, 1 to 7,305.","schema":{"type":"integer","default":90},"example":30},{"name":"finish","in":"query","required":false,"description":"A printing Cardmarket sells as its own product, such as masterball, pokeball or staff: that product's chart instead of the card's. On a product sold in two versions, foil or reverse-holo is the other version's chart, which Cardmarket shows with the page's foil switch on. Any finish prices reports is accepted; one with no chart of its own has no points.","schema":{"type":"string"},"example":"masterball"}],"responses":{"200":{"description":"The sales.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"cardId":{"type":"string","description":"The card's current id."},"source":{"type":"string","enum":["cardmarket"],"description":"Always cardmarket."},"finish":{"type":"string","description":"Present when finish was asked for: the printing or version whose chart the series is."},"currency":{"type":"string","enum":["EUR"],"description":"Always EUR."},"sales":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","description":"YYYY-MM-DD."},"avgSell":{"type":"number","description":"Average sale price that day, EUR."}},"required":["day","avgSell"]},"description":"Oldest first."}},"required":["cardId","source","currency","sales"],"description":"The sales."},"meta":{"type":"object","properties":{"days":{"type":"integer","description":"The window used."},"count":{"type":"integer","description":"Days with a sale."},"note":{"type":"string","description":"How to read the series."},"pricesFrom":{"type":"string","enum":["englishTwin","localizedTwin"],"description":"Present when the prices are another printing's: englishTwin for a localized printing served its English printing's, localizedTwin for an English printing no marketplace sells in English, served its twin's in another language."},"englishId":{"type":"string","description":"Present with englishTwin: the English printing the prices are from."},"pricesTwin":{"type":"object","properties":{"id":{"type":"string","description":"Its id."},"language":{"type":"string","description":"The language its copies are in, so the quotes are labelled with it."}},"required":["id","language"],"description":"Present with localizedTwin: the printing quoted."},"movedFrom":{"type":"string","description":"The id you asked for, when it was retired by a set re-key."}},"required":["days","count","note"],"description":"The window."}},"required":["data","meta"]},"example":{"data":{"cardId":"pkm_sv3pt5_6","source":"cardmarket","currency":"EUR","sales":[{"day":"2026-09-05","avgSell":8.08},{"day":"2026-09-06","avgSell":8.24},{"day":"2026-09-07","avgSell":9.31},{"day":"2026-09-08","avgSell":6.99},{"day":"2026-09-09","avgSell":8.16},{"day":"2026-09-10","avgSell":8.67},{"day":"2026-09-11","avgSell":8.29},{"day":"2026-09-12","avgSell":7.49},{"day":"2026-09-13","avgSell":8.95},{"day":"2026-09-14","avgSell":8.07},{"day":"2026-09-15","avgSell":8.25},{"day":"2026-09-16","avgSell":8.63},{"day":"2026-09-17","avgSell":12.17},{"day":"2026-09-18","avgSell":7.03},{"day":"2026-09-19","avgSell":7.69},{"day":"2026-09-20","avgSell":8.86},{"day":"2026-09-21","avgSell":9.78},{"day":"2026-09-22","avgSell":8.46},{"day":"2026-09-23","avgSell":9.54},{"day":"2026-09-24","avgSell":8.14},{"day":"2026-09-25","avgSell":7.72},{"day":"2026-09-26","avgSell":7.95},{"day":"2026-09-27","avgSell":7.25},{"day":"2026-09-28","avgSell":8.61},{"day":"2026-09-29","avgSell":9.34},{"day":"2026-09-30","avgSell":7.59},{"day":"2026-10-01","avgSell":7.58},{"day":"2026-10-02","avgSell":8.05},{"day":"2026-10-03","avgSell":9.66},{"day":"2026-10-04","avgSell":7.94}]},"meta":{"days":30,"count":30,"note":"One point per day copies sold; days without a sale are absent. Every language and condition together."}}}}},"400":{"description":"days outside 1 to 7,305 or not a whole number, finish not a finish prices reports, or a parameter this endpoint does not take.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-sales-days":{"summary":"Too many days","value":{"error":{"code":"invalid_request","message":"`days` must be a whole number from 1 to 7305.","details":{"field":"days","got":"9000"}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No card has that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks":{"post":{"operationId":"createWebhook","summary":"Create a webhook","description":"Register an HTTPS endpoint for signed event deliveries.\n\nThe response carries secret, the key deliveries are signed with. It is returned here and never again; store it. How to verify a signature is on the webhooks page.\n\nManagement calls cost no credits and deliveries are free. They still count toward the per-minute rate limit.\n\nCosts 0 credits.","tags":["Webhooks"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/create-webhook"},"x-credits":0,"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public https URL. Private, loopback and link-local addresses, localhost, and URLs with credentials in them are refused."},"events":{"type":"array","items":{"type":"string","enum":["set.published","card.created","card.updated","card.legality.changed","price.threshold.crossed"]},"description":"At least one event type. Duplicates are dropped."},"games":{"type":"array","items":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"]},"description":"Only events about these games."},"description":{"type":"string","description":"Your label, up to 200 characters."}},"required":["url","events"]},"example":{"url":"https://example.com/tcggraph-docs","events":["set.published","card.legality.changed"],"games":["pokemon"],"description":"docs example"}}}},"responses":{"201":{"description":"The endpoint, with its signing secret.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/WebhookEndpoint"},{"type":"object","properties":{"secret":{"type":"string","description":"whsec_ followed by the signing key. Shown once."}},"required":["secret"]}],"description":"A WebhookEndpoint with secret."}},"required":["data"]},"example":{"data":{"id":"783214e9-8e17-4207-a9e6-30b353b90e07","url":"https://example.com/tcggraph-docs","events":["set.published","card.legality.changed"],"games":["pokemon"],"description":"docs example","status":"active","disabledAt":null,"disabledReason":null,"failures":0,"lastDeliveryAt":null,"lastStatusCode":null,"createdAt":"2026-10-05T11:46:04.816Z","secret":"whsec_••••••••••••"}}}}},"400":{"description":"A field is missing or invalid. details.field names it and details.allowed lists the choices where there are some.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"create-webhook-event":{"summary":"Unknown event","value":{"error":{"code":"invalid_request","message":"Unknown event \"card.reprinted\".","details":{"field":"events","allowed":["set.published","card.created","card.updated","card.legality.changed","price.threshold.crossed"]}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The URL is already registered on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"create-webhook-conflict":{"summary":"Same URL twice","value":{"error":{"code":"conflict","message":"That URL is already registered on this account.","details":{"endpoints":"GET /v1/webhooks lists what is already registered."}}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"listWebhooks","summary":"List webhooks","description":"Every endpoint registered on the account.\n\nNot paged. Secrets are never listed.\n\nCosts 0 credits.","tags":["Webhooks"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/list-webhooks"},"x-credits":0,"parameters":[],"responses":{"200":{"description":"The endpoints.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"},"description":"The endpoints, newest first."},"meta":{"type":"object","properties":{"totalCount":{"type":"integer","description":"Endpoints registered."}},"required":["totalCount"],"description":"Totals."}},"required":["data","meta"]},"example":{"data":[{"id":"783214e9-8e17-4207-a9e6-30b353b90e07","url":"https://example.com/tcggraph-docs","events":["set.published","card.legality.changed"],"games":["pokemon"],"description":"docs example","status":"active","disabledAt":null,"disabledReason":null,"failures":0,"lastDeliveryAt":null,"lastStatusCode":null,"createdAt":"2026-10-05T11:46:04.816Z"}],"meta":{"totalCount":1}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/webhooks/{id}":{"get":{"operationId":"getWebhook","summary":"Get a webhook","description":"One endpoint and its last 20 deliveries.\n\ndeliveries is the newest 20 attempts, to debug a failing endpoint without a log of your own.\n\nCosts 0 credits.","tags":["Webhooks"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/get-webhook"},"x-credits":0,"parameters":[{"name":"id","in":"path","required":true,"description":"The endpoint's id.","schema":{"type":"string"}}],"responses":{"200":{"description":"The endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/WebhookEndpoint"},{"type":"object","properties":{"deliveries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Delivery id."},"eventId":{"type":"string","description":"The event's id, which is also id in the delivered body."},"eventType":{"type":"string","enum":["set.published","card.created","card.updated","card.legality.changed","price.threshold.crossed"],"description":"The event type."},"status":{"type":"string","enum":["pending","delivered","failed"],"description":"pending while retries remain."},"attempts":{"type":"integer","description":"Attempts so far."},"statusCode":{"type":["integer","null"],"description":"Your server's last HTTP status."},"error":{"type":["string","null"],"description":"Why the last attempt failed."},"durationMs":{"type":["integer","null"],"description":"How long the last attempt took."},"nextAttemptAt":{"type":["string","null"],"description":"When the next retry is due."},"deliveredAt":{"type":["string","null"],"description":"When it succeeded."},"createdAt":{"type":"string","description":"When it was queued."}},"required":["id","eventId","eventType","status","attempts","statusCode","error","durationMs","nextAttemptAt","deliveredAt","createdAt"]},"description":"Newest first."}},"required":["deliveries"]}],"description":"A WebhookEndpoint with deliveries."}},"required":["data"]},"example":{"data":{"id":"783214e9-8e17-4207-a9e6-30b353b90e07","url":"https://example.com/tcggraph-docs","events":["set.published","card.legality.changed"],"games":["pokemon"],"description":"docs example","status":"active","disabledAt":null,"disabledReason":null,"failures":0,"lastDeliveryAt":null,"lastStatusCode":null,"createdAt":"2026-10-05T11:46:04.816Z","deliveries":[]}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No endpoint with that id on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"get-webhook-404":{"summary":"Unknown id","value":{"error":{"code":"not_found","message":"No webhook endpoint with id \"00000000-0000-0000-0000-000000000000\"."}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteWebhook","summary":"Delete a webhook","description":"Stop deliveries and remove the endpoint.\n\nImmediate. Deliveries still queued for the endpoint are dropped.\n\nCosts 0 credits.","tags":["Webhooks"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/delete-webhook"},"x-credits":0,"parameters":[{"name":"id","in":"path","required":true,"description":"The endpoint's id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Confirmation.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The endpoint's id."},"deleted":{"type":"boolean","description":"Always true."}},"required":["id","deleted"],"description":"What was deleted."}},"required":["data"]},"example":{"data":{"id":"783214e9-8e17-4207-a9e6-30b353b90e07","deleted":true}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No endpoint with that id on this account, including one already deleted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/watches":{"post":{"operationId":"createWatch","summary":"Create a price watch","description":"Fire price.threshold.crossed when one quote of one card crosses a price.\n\nA watch fires on the move that crosses the threshold, not on every day the price sits beyond it: a price already below a below threshold when the watch is created fires only after it goes back above and falls through again.\n\nA localized printing quoted as its English twin is watched on the English printing, because that is where its quotes are. The response's cardId is the English id and requestedCardId is the one you sent.\n\nPlans cap how many watches an account holds: 500 on Starter, 25,000 on Growth, 100,000 on Scale.\n\nCosts 0 credits.","tags":["Price watches"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/create-watch"},"x-credits":0,"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cardId":{"type":"string","description":"The card to watch."},"source":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"description":"The marketplace. The threshold is in its currency: EUR on Cardmarket, USD elsewhere."},"direction":{"type":"string","enum":["above","below"],"description":"Fire when the price rises above, or falls below, the threshold."},"threshold":{"type":"number","description":"The price in major units (12.5). Send this or thresholdCents."},"thresholdCents":{"type":"integer","description":"The price in minor units (1250). Wins over threshold."},"finish":{"type":"string","enum":["normal","foil","etched","reverse-holo","cosmos-holo","cracked-ice","pokeball","masterball","energy-symbol","duskball","loveball","friendball","quickball","team-rocket","staff","prerelease","league","pokemon-center","1st-edition","1st-edition-foil","shadowless","limited"],"description":"Which printing's quote. Without it, the finish of the card's current quote on the source and list, else normal."},"listType":{"type":"string","enum":["retail","buylist"],"description":"buylist only on cardkingdom, the one source that publishes one."}},"required":["cardId","source","direction"]},"example":{"cardId":"pkm_sv3pt5_6","source":"cardmarket","direction":"below","threshold":20}}}},"responses":{"201":{"description":"The watch.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Watch"},{"type":"object","properties":{"game":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"],"description":"The card's game."},"name":{"type":"string","description":"The card's name."},"requestedCardId":{"type":"string","description":"The id you sent, when the watch was placed on its English twin."}},"required":["game","name"]}],"description":"A Watch with the card's game and name."}},"required":["data"]},"example":{"data":{"id":"68693874-a273-4379-af5c-6c70cbb3b588","cardId":"pkm_sv3pt5_6","source":"cardmarket","finish":"foil","listType":"retail","currency":"EUR","direction":"below","thresholdCents":2000,"threshold":20,"lastFiredAt":null,"createdAt":"2026-10-05T11:46:07.961Z","game":"pokemon","name":"Charizard ex"}}}}},"400":{"description":"A field is missing or invalid, including a buylist watch on a source without a buylist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"create-watch-buylist":{"summary":"Buylist on Cardmarket","value":{"error":{"code":"invalid_request","message":"Cardmarket publishes no buylist; only cardkingdom does.","details":{"field":"listType","allowed":["retail"]}}}}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The account holds its plan's allowance of watches. details carries allowance and held.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{}}}},"404":{"description":"No card has that id.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"create-watch-404":{"summary":"Unknown card","value":{"error":{"code":"not_found","message":"No card with id \"pkm_nope_1\"."}}}}}}},"409":{"description":"The same watch (card, source, finish, list, direction and threshold) exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"create-watch-conflict":{"summary":"Same watch twice","value":{"error":{"code":"conflict","message":"That watch already exists on this account."}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"operationId":"listWatches","summary":"List price watches","description":"Every watch on the account, and how many the plan allows.\n\nNot paged. The example was captured on our own account, which has no allowance, so allowance is null; on a plan it is the plan's number.\n\nCosts 0 credits.","tags":["Price watches"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/list-watches"},"x-credits":0,"parameters":[],"responses":{"200":{"description":"The watches.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Watch"},"description":"The watches."},"meta":{"type":"object","properties":{"totalCount":{"type":"integer","description":"Watches held."},"allowance":{"type":["integer","null"],"description":"Watches the plan allows."}},"required":["totalCount","allowance"],"description":"Totals."}},"required":["data","meta"]},"example":{"data":[{"id":"68693874-a273-4379-af5c-6c70cbb3b588","cardId":"pkm_sv3pt5_6","source":"cardmarket","finish":"foil","listType":"retail","currency":"EUR","direction":"below","thresholdCents":2000,"threshold":20,"lastFiredAt":null,"createdAt":"2026-10-05T11:46:07.961Z"},{"id":"870c5f2b-bfaf-42f0-8a97-629cccc1e78e","cardId":"pkm_sv3pt5_6","source":"cardmarket","finish":"foil","listType":"retail","currency":"EUR","direction":"above","thresholdCents":10000,"threshold":100,"lastFiredAt":null,"createdAt":"2026-10-05T11:46:08.259Z"}],"meta":{"totalCount":2,"allowance":null}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/watches/{id}":{"delete":{"operationId":"deleteWatch","summary":"Delete a price watch","description":"Stop watching.\n\nCosts 0 credits.","tags":["Price watches"],"externalDocs":{"url":"https://tcggraph.com/docs/rest/delete-watch"},"x-credits":0,"parameters":[{"name":"id","in":"path","required":true,"description":"The watch's id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Confirmation.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The watch's id."},"deleted":{"type":"boolean","description":"Always true."}},"required":["id","deleted"],"description":"What was deleted."}},"required":["data"]},"example":{"data":{"id":"68693874-a273-4379-af5c-6c70cbb3b588","deleted":true}}}}},"401":{"description":"unauthenticated: no key, or a key that is not valid or has been revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"no_active_plan without a plan, or balance_empty when overage needs more balance than the account holds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"forbidden: the account is suspended, or the request's Origin is not on the key's allowed list.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No watch with that id on this account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"delete-watch-404":{"summary":"Already deleted","value":{"error":{"code":"not_found","message":"No price watch with id \"68693874-a273-4379-af5c-6c70cbb3b588\"."}}}}}}},"429":{"description":"rate_limited: the per-minute limit or a hard monthly cap. details.limit says which; honour Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Authorization: Bearer tcg_live_..."},"queryKey":{"type":"apiKey","in":"query","name":"api_key","description":"The key as ?api_key=, where a header cannot be set. The header wins when both are sent."}},"schemas":{"Card":{"type":"object","properties":{"id":{"type":"string","description":"Stable identifier, unique across every game. If a set is re-keyed the old id keeps resolving on every by-id endpoint, and the response carries meta.movedFrom."},"game":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"],"description":"The game's slug."},"name":{"type":"string","description":"The English name, on every language's printing. ?name= searches this and printedName."},"language":{"type":"string","description":"The language this printing is in, as a code: en, ja, de, zhs and so on. The list endpoints return en unless ?language= asks otherwise."},"printedName":{"type":["string","null"],"description":"The name as printed, in the card's language (Glurak-ex). Null on English printings and where the source list carries no name. ?name= searches this too."},"englishId":{"type":["string","null"],"description":"The English printing this one corresponds to: the same set and number for a translated printing, the same illustration for a card in a set of its own (Japanese Pokémon). Null on English printings and where none has been found."},"sameArtwork":{"type":"array","items":{"type":"string"},"description":"The printings of this card's illustration in the other catalogue, where a language is numbered on its own and the link is by artwork (Japanese Pokémon). On a Japanese card, every English printing of the picture, nearest first, so englishId is the first: the expansion's, and each reprint of it in a World Championship deck, a Prize Pack, a Trainer Kit or as a Jumbo. On an English card, the Japanese printings of it. Empty where none has been found, and on games whose languages share set and number, where englishId is the link."},"baseCardId":{"type":["string","null"],"description":"The card this record reprints, for a Pokémon card sold as a product of its own outside the expansions: a stamped store exclusive (GameStop Exclusive), a Prize Pack, Trick or Trade or World Championship deck copy. The stamped and holo ones are also listed in the base card's printings. Null elsewhere, and where TCGplayer lists more than one card the reprint could be."},"pricesFrom":{"type":"string","enum":["own","englishTwin","localizedTwin"],"description":"own when prices, gradedPrices and priceStatus are this printing's. englishTwin when they are the English printing's, because the marketplace sells one product across languages. localizedTwin on an English printing no marketplace sells in English (a Japan-only One Piece promo): they are the printing pricesTwin names, in its language."},"pricesTwin":{"type":["object","null"],"properties":{"id":{"type":"string","description":"The printing's id."},"language":{"type":"string","description":"Its language, as language spells it (ja)."}},"required":["id","language"],"description":"With localizedTwin, the printing quoted: its id and the language its copies are in. Null otherwise."},"set":{"$ref":"#/components/schemas/CardSet","description":"The set the card was printed in."},"collectorNumber":{"type":"string","description":"The number printed on the card, as printed (6, TG12, OP16-077), without the /total. Where several printings share one printed number (One Piece and Dragon Ball Super parallels and reprints) each carries a suffix after _ that tells them apart: OP05-119_p2, BT15-033_SPR."},"rarity":{"type":"string","description":"The publisher's rarity, as each game spells it (Double Rare, uncommon, SR)."},"artist":{"type":["string","null"],"description":"The illustrator credit."},"text":{"type":["string","null"],"description":"Rules text. Null on a card with none, and on a Pokémon whose attacks and abilities are structured under gameData instead."},"images":{"$ref":"#/components/schemas/Images","description":"The card's picture in three widths. On our CDN (cards.tcggraph.io) the URLs end in .webp; the same path ending in .avif serves AVIF. A CDN URL always serves the same picture and may be cached for good: a picture we replace goes out under a new URL, which the card's images then carry. Before a card is mirrored all three are the source's original URL. Image requests cost no credits."},"imageFrom":{"type":"string","enum":["own","englishTwin"],"description":"Whose picture images is. own for the printing's scan. englishTwin for a localized printing in an English set its source has no scan of (older French, German, Spanish and Italian Pokémon; Magic printings Scryfall shows in English only), or that no card list carries and Cardmarket sells copies of in its language (French Prize Pack and World Championship deck cards, gold DON!! cards): the English twin's picture, so the card can be listed and priced without a scan of its own. Such a card has no hashes and recognition never answers it. A card in an own-language set (Japanese Pokémon) with no scan has null images instead."},"hashes":{"type":["object","null"],"properties":{"phash":{"type":"string","description":"64-bit luminance pHash, 16 hex characters."},"phashColor":{"type":["string","null"],"description":"192-bit colour pHash, 48 hex characters."}},"required":["phash","phashColor"],"description":"Perceptual hashes of the artwork, for matching a photo to a printing yourself. Null until the image has been processed."},"prices":{"type":"array","items":{"$ref":"#/components/schemas/Price"},"description":"Every current quote, one per source, list type and finish. Every quote is always returned; ?source= changes which one filters and sorts read, not what comes back."},"gradedPrices":{"type":"array","items":{"$ref":"#/components/schemas/GradedPrice"},"description":"What graded copies sell for, one entry per grader and grade the index quotes. Empty when there are none; priceStatus.graded says why."},"languagePrices":{"type":"array","items":{"$ref":"#/components/schemas/LanguagePrice"},"description":"Cardmarket's live listings split by language and finish, with the cheapest copy per condition. Empty until we have read the card's product page, which is not the same as nothing for sale."},"printings":{"type":"array","items":{"$ref":"#/components/schemas/Printing"},"description":"prices regrouped by finish: one entry per physical printing, the plain card first, each with its own picture where a marketplace shows one."},"priceStatus":{"$ref":"#/components/schemas/PriceStatus","description":"Why each source does or does not quote this card."},"legalities":{"type":"object","additionalProperties":{"type":"string"},"description":"Format to status. Formats are each game's own (standard, commander, tcg, core). Statuses are legal, not_legal, banned and restricted, except on Yu-Gi-Oh!, which uses its Forbidden & Limited list: unlimited, semi_limited, limited, forbidden. A format the card has never been legal in may be absent rather than not_legal. Empty on One Piece, Star Wars: Unlimited, Digimon, Grand Archive and Dragon Ball Super, whose catalogue sources publish none. Read it, don't filter on it: /v1/cards has no legality filter, except Yu-Gi-Oh!'s banlist.tcg and banlist.ocg game fields."},"gameData":{"type":"object","additionalProperties":true,"description":"The game-specific fields: HP and attacks on Pokémon, mana cost and colours on Magic, ATK and DEF on Yu-Gi-Oh!. Each game's fields are listed on its game page and returned by GET /v1/games/{slug} as schema, and each one is a filter on /v1/cards."},"externalIds":{"$ref":"#/components/schemas/ExternalIds","description":"The marketplace products this printing is sold as, for joining to their data."}},"required":["id","game","name","language","printedName","englishId","sameArtwork","baseCardId","pricesFrom","pricesTwin","set","collectorNumber","rarity","artist","text","images","imageFrom","hashes","prices","gradedPrices","languagePrices","printings","priceStatus","legalities","gameData","externalIds"],"description":"One printing of one card in one language. Every game returns the same fields; what is particular to a game is under gameData."},"CardSet":{"type":"object","properties":{"code":{"type":"string","description":"The set code. Unique within a game and language, not across them."},"name":{"type":"string","description":"The set name."},"language":{"type":"string","description":"The set's own language: en for an English set whatever language the printing is in, ja for a set printed only in Japan."},"releasedAt":{"type":["string","null"],"description":"Release date, YYYY-MM-DD."}},"required":["code","name","language","releasedAt"],"description":"The set summary carried on every card."},"Images":{"type":"object","properties":{"small":{"type":["string","null"],"description":"244 px wide."},"normal":{"type":["string","null"],"description":"488 px wide."},"large":{"type":["string","null"],"description":"745 px wide."}},"required":["small","normal","large"],"description":"One picture in three widths."},"Price":{"type":"object","properties":{"source":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"description":"The marketplace the quote was read from."},"region":{"type":"string","enum":["EU","NA"],"description":"EU for Cardmarket, NA for the three US sources."},"listType":{"type":"string","enum":["retail","buylist"],"description":"retail is what a buyer pays. buylist is what a dealer pays you for a copy; only Card Kingdom publishes one, on Magic."},"finish":{"type":"string","enum":["normal","foil","etched","reverse-holo","cosmos-holo","cracked-ice","pokeball","masterball","energy-symbol","duskball","loveball","friendball","quickball","team-rocket","staff","prerelease","league","pokemon-center","1st-edition","1st-edition-foil","shadowless","limited"],"description":"Which printing of the card the quote is for. A closed list, the same word on every source."},"currency":{"type":"string","enum":["EUR","USD"],"description":"EUR on Cardmarket, USD everywhere else. Amounts are never converted."},"market":{"type":["number","null"],"description":"The headline price, in major units (8.44 is €8.44). Cardmarket's trend price (so equal to trend); TCGplayer's market price, null on a product with too few sales for one; the listed retail or buylist price on Card Kingdom and Mana Pool. This is the number minPrice, maxPrice and sort=price read."},"low":{"type":["number","null"],"description":"The lowest listing price the source reports. On Cardmarket that spans every language; languagePrices has the cheapest copy per language. Card Kingdom and Mana Pool publish none, so it is null there."},"trend":{"type":["number","null"],"description":"Cardmarket's trend price. Null on the other sources."},"avg1":{"type":["number","null"],"description":"Cardmarket's average sale price over 1 day. Null elsewhere."},"avg7":{"type":["number","null"],"description":"Cardmarket's average sale price over 7 days. Null elsewhere."},"avg30":{"type":["number","null"],"description":"Cardmarket's average sale price over 30 days. Null elsewhere."},"basis":{"type":["string","null"],"description":"Cardmarket only: where the figures were read. product-page is the price summary on the product's own page as our crawl read it at updatedAt; price-guide is Cardmarket's daily price guide file, whose 1- and 7-day averages can lag the page by days. Null on the other sources."},"updatedAt":{"type":"string","description":"When we last read this quote from the source. ISO 8601 timestamp, UTC."}},"required":["source","region","listType","finish","currency","market","low","trend","avg1","avg7","avg30","basis","updatedAt"],"description":"One marketplace quote."},"GradedPrice":{"type":"object","properties":{"grader":{"type":"string","enum":["raw","any","psa","bgs","cgc","sgc"],"description":"raw is an ungraded copy, any is any company at that grade, the rest are one grading company."},"grade":{"type":"string","enum":["ungraded","7","8","9","9.5","10"],"description":"ungraded pairs with raw; 7 to 9.5 pair with any; 10 pairs with each company."},"currency":{"type":"string","enum":["USD"],"description":"Always USD."},"price":{"type":"number","description":"What a copy in this slot sells for, in major units."},"salesVolume":{"type":["integer","null"],"description":"Copies of this printing sold in the last year, all grades together, so the same figure repeats on every slot."},"updatedAt":{"type":"string","description":"When the graded index was last read for this card. Refreshed daily. ISO 8601 timestamp, UTC."}},"required":["grader","grade","currency","price","salesVolume","updatedAt"],"description":"One slot of the graded index."},"LanguagePrice":{"type":"object","properties":{"source":{"type":"string","enum":["cardmarket"],"description":"Always cardmarket: these are read from its product pages."},"language":{"type":"string","description":"The language of the copies counted: en, de, fr, es, it, ja, ko, pt, ru, zhs or zht."},"finish":{"type":"string","enum":["normal","foil","etched","reverse-holo","cosmos-holo","cracked-ice","pokeball","masterball","energy-symbol","duskball","loveball","friendball","quickball","team-rocket","staff","prerelease","league","pokemon-center","1st-edition","1st-edition-foil","shadowless","limited"],"description":"The same closed list as prices[].finish."},"currency":{"type":"string","enum":["EUR"],"description":"Always EUR."},"low":{"type":["number","null"],"description":"Cheapest live copy in this language, any condition. Null when none is for sale."},"lowNm":{"type":["number","null"],"description":"Cheapest Near Mint or Mint copy in this language. Null when none is for sale."},"market":{"type":["number","null"],"description":"Median asking price of the cheapest copies in this language."},"offers":{"type":"integer","description":"Live listings counted in this language. 0 is a real answer: none for sale."},"truncated":{"type":"boolean","description":"True when the product page showed only its 50 cheapest listings, so dearer copies in this language may exist unseen."},"truncatedAbove":{"type":["number","null"],"description":"On a truncated row, the dearest price the page showed. Null when the read was complete."},"conditions":{"type":"array","items":{"type":"object","properties":{"condition":{"type":"string","enum":["mt","nm","ex","gd","lp","pl","po"],"description":"Mint, Near Mint, Excellent, Good, Light Played, Played, Poor."},"low":{"type":"number","description":"Cheapest copy in this condition, in EUR."},"offers":{"type":"integer","description":"Listings in this condition."}},"required":["condition","low","offers"]},"description":"Cheapest copy per condition, best condition first. Only conditions with at least one listing appear."},"updatedAt":{"type":"string","description":"When the product page was read. ISO 8601 timestamp, UTC."}},"required":["source","language","finish","currency","low","lowNm","market","offers","truncated","truncatedAbove","conditions","updatedAt"],"description":"Cardmarket's live listings for one language and finish."},"Printing":{"type":"object","properties":{"key":{"type":"string","description":"Stable: key user selections on this. For the card's own printings, the finish value its quotes carry (normal, foil, etched, reverse-holo, cosmos-holo, cracked-ice, pokeball, masterball, energy-symbol, duskball, loveball, friendball, quickball, team-rocket, staff, prerelease, league, pokemon-center, 1st-edition, 1st-edition-foil, shadowless, limited). For a stamped or holo reprint sold as a product of its own, which comes after them, that record's card id (pkm_mcap_130_197_umbreon_gamestop_exclusive)."},"label":{"type":"string","description":"The printing in words (Reverse holo, Poké Ball pattern, GameStop Exclusive, Trick or Trade 2024)."},"kind":{"type":"string","enum":["surface","pattern","stamp","edition"],"description":"What distinguishes the printing: its foil treatment, a pattern, a stamp or an edition marking."},"images":{"$ref":"#/components/schemas/Images","description":"The printing's own picture where a marketplace shows one, otherwise the card's."},"imageFrom":{"type":"string","enum":["printing","card"],"description":"Which of the two images is."},"externalIds":{"$ref":"#/components/schemas/ExternalIds","description":"The product this printing is read from."},"prices":{"type":"array","items":{"$ref":"#/components/schemas/Price"},"description":"This printing's quotes. A reprint's may span several finishes (a Prize Pack card sold plain and holo); each quote names its own."},"cardId":{"type":"string","description":"The card prices are kept on, so the id to ask /v1/prices/{cardId}, its history and its sales for. The card's own id (its English twin's where pricesFrom is englishTwin, the pricesTwin id where it is localizedTwin), or the reprint's."}},"required":["key","label","kind","images","imageFrom","externalIds","prices","cardId"],"description":"One physical printing of a card and its quotes."},"PriceStatus":{"type":"object","properties":{"cardmarket":{"type":["string","null"],"enum":["priced","unquoted","ambiguous","collapsed","unlisted","set_unlisted","game_unlisted",null],"description":"priced, or the reason Cardmarket has no quote. Null when the card has not been matched yet."},"tcgplayer":{"type":["string","null"],"enum":["priced","unquoted","ambiguous","unlisted","set_unlisted",null],"description":"priced, or the reason TCGplayer has no quote. Always null on Magic, which is priced through MTGJSON."},"graded":{"type":["string","null"],"enum":["priced","unquoted","ambiguous","collapsed","unlisted","set_unlisted","game_unlisted",null],"description":"priced, or the reason the graded index has no quote. Null when the card has not been considered yet."}},"required":["cardmarket","tcgplayer","graded"],"description":"Why a quote is or is not present. An empty prices on its own is indistinguishable from a gap in our data; this says which."},"ExternalIds":{"type":"object","properties":{"cardmarketId":{"type":["integer","null"],"description":"Cardmarket's product id (idProduct)."},"tcgplayerId":{"type":["integer","null"],"description":"TCGplayer's product id."}},"required":["cardmarketId","tcgplayerId"],"description":"Marketplace product ids."},"Set":{"type":"object","properties":{"code":{"type":"string","description":"The set code, as the publisher or the catalogue source spells it. Unique within a game and language."},"game":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"],"description":"The game's slug."},"name":{"type":"string","description":"The set name."},"language":{"type":"string","description":"The set's language. Japanese Pokémon sets are their own rows under ja."},"releasedAt":{"type":["string","null"],"description":"Release date, YYYY-MM-DD."},"cardCount":{"type":"integer","description":"Cards in the set, as catalogued."}},"required":["code","game","name","language","releasedAt","cardCount"],"description":"One set in one language."},"Game":{"type":"object","properties":{"slug":{"type":"string","enum":["pokemon","magic-the-gathering","one-piece","yugioh","disney-lorcana","star-wars-unlimited","digimon","grand-archive","dragon-ball-super"],"description":"The identifier every game parameter takes."},"name":{"type":"string","description":"The full name."},"shortName":{"type":"string","description":"The name as players say it."},"publisher":{"type":"string","description":"Who prints the game."},"released":{"type":"integer","description":"The year the game launched."},"counts":{"type":"object","properties":{"cards":{"type":"integer","description":"Distinct card names."},"sets":{"type":"integer","description":"English sets."},"printings":{"type":"integer","description":"English printings."},"languages":{"type":"integer","description":"Languages the game is catalogued in, excluding Magic's novelty scripts."}},"required":["cards","sets","printings","languages"],"description":"A snapshot of the catalogue taken after each ingest, as quoted on our game pages. indexed is the live count."},"languages":{"type":"array","items":{"type":"string"},"description":"Language codes with at least one printing whose image has been hashed, counted live. Includes Magic's novelty scripts (ph, qya, …)."},"formats":{"type":"array","items":{"type":"string"},"description":"The game's main play formats, as display names. Not the keys of legalities: only Magic (23 formats), Pokémon (standard, expanded, unlimited), Yu-Gi-Oh! (tcg, ocg) and Lorcana (core) carry legality data, and every other game's cards return legalities: {}."},"sampleCount":{"type":"integer","description":"Cards of this game in the public sample behind the explorer, which needs no key."},"indexed":{"type":"object","properties":{"cards":{"type":"integer","description":"English printings: what /v1/cards?game= counts without language."},"sets":{"type":"integer","description":"English sets."},"printingsByLanguage":{"type":"object","additionalProperties":{"type":"integer"},"description":"Printings per language code."}},"required":["cards","sets","printingsByLanguage"],"description":"What is queryable right now, counted on each request."}},"required":["slug","name","shortName","publisher","released","counts","languages","formats","sampleCount","indexed"],"description":"One supported game."},"PageMeta":{"type":"object","properties":{"page":{"type":"integer","description":"The page returned, from 1."},"limit":{"type":"integer","description":"The page size used, after clamping to 1–100."},"totalCount":{"type":"integer","description":"Rows matching the filters, across every page."},"totalPages":{"type":"integer","description":"ceil(totalCount / limit), and at least 1."},"hasMore":{"type":"boolean","description":"Whether a later page has rows. The loop condition for paging."},"priceSource":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"description":"The source minPrice, maxPrice and sort=price ran against: source or region if sent, else cardmarket."}},"required":["page","limit","totalCount","totalPages","hasMore","priceSource"],"description":"Paging for a list of cards."},"WebhookEndpoint":{"type":"object","properties":{"id":{"type":"string","description":"UUID."},"url":{"type":"string","description":"Where deliveries are POSTed."},"events":{"type":"array","items":{"type":"string"},"description":"The event types subscribed to: set.published, card.created, card.updated, card.legality.changed, price.threshold.crossed."},"games":{"type":"array","items":{"type":"string"},"description":"Games the endpoint hears about. Empty means every game."},"description":{"type":["string","null"],"description":"Your label, up to 200 characters."},"status":{"type":"string","enum":["active","disabled"],"description":"disabled after repeated failures; see disabledReason."},"disabledAt":{"type":["string","null"],"description":"When deliveries were stopped. ISO 8601 timestamp, UTC."},"disabledReason":{"type":["string","null"],"description":"Why deliveries were stopped."},"failures":{"type":"integer","description":"Consecutive failed deliveries."},"lastDeliveryAt":{"type":["string","null"],"description":"The last delivery attempt. ISO 8601 timestamp, UTC."},"lastStatusCode":{"type":["integer","null"],"description":"The HTTP status your server answered the last attempt with."},"createdAt":{"type":"string","description":"ISO 8601 timestamp, UTC."}},"required":["id","url","events","games","description","status","disabledAt","disabledReason","failures","lastDeliveryAt","lastStatusCode","createdAt"],"description":"A URL we deliver signed events to."},"Watch":{"type":"object","properties":{"id":{"type":"string","description":"UUID."},"cardId":{"type":"string","description":"The card whose quote is watched."},"source":{"type":"string","enum":["cardmarket","tcgplayer","cardkingdom","manapool"],"description":"The marketplace watched."},"finish":{"type":"string","enum":["normal","foil","etched","reverse-holo","cosmos-holo","cracked-ice","pokeball","masterball","energy-symbol","duskball","loveball","friendball","quickball","team-rocket","staff","prerelease","league","pokemon-center","1st-edition","1st-edition-foil","shadowless","limited"],"description":"The printing watched."},"listType":{"type":"string","enum":["retail","buylist"],"description":"Retail or buylist."},"currency":{"type":"string","enum":["EUR","USD"],"description":"The source's currency, which the threshold is in."},"direction":{"type":"string","enum":["above","below"],"description":"Fire when the price moves above, or below, the threshold."},"thresholdCents":{"type":"integer","description":"The threshold in minor units."},"threshold":{"type":"number","description":"The threshold in major units."},"lastFiredAt":{"type":["string","null"],"description":"The last time the watch fired. ISO 8601 timestamp, UTC."},"createdAt":{"type":"string","description":"ISO 8601 timestamp, UTC."}},"required":["id","cardId","source","finish","listType","currency","direction","thresholdCents","threshold","lastFiredAt","createdAt"],"description":"A price threshold on one quote of one card."},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable and stable. Switch on this."},"message":{"type":"string","description":"For a person. The wording may change."},"details":{"type":"object","additionalProperties":true,"description":"Present on most errors: the offending field, the allowed values, a suggestion, or where to go next."}},"required":["code","message"],"description":"The error."}},"required":["error"],"description":"Every error the REST API returns has this body."}}}}