[{"data":1,"prerenderedAt":2755},["ShallowReactive",2],{"blog-yugioh-price-api-tcgplayer-cardmarket":3,"blog-series-yugioh-price-api-tcgplayer-cardmarket":2744,"blog-related-yugioh-price-api-tcgplayer-cardmarket":2745},{"id":4,"title":5,"author":6,"body":7,"category":2723,"date":2724,"description":2725,"extension":2726,"image":2727,"imageAlt":2728,"imageCredit":6,"meta":2729,"navigation":1407,"path":2730,"readTime":2731,"seo":2732,"stem":2733,"tags":2734,"updatedAt":2742,"__hash__":2743},"content\u002Fblog\u002Fyu-gi-oh\u002F2026\u002F11\u002Fyugioh-price-api-tcgplayer-cardmarket.md","Yu-Gi-Oh! Price API: TCGplayer & Cardmarket in One Call","PokéWallet Team",{"type":8,"value":9,"toc":2693},"minimark",[10,14,29,71,74,95,112,117,199,202,206,216,356,369,389,503,516,546,550,561,604,611,687,694,698,703,727,751,785,788,792,801,858,867,910,923,930,934,955,958,974,1096,1104,1108,1114,1176,1179,1183,1189,1234,1237,1241,1247,1288,1310,1342,1346,1352,1356,1905,1914,1918,2302,2315,2325,2408,2412,2433,2439,2482,2485,2488,2490,2494,2498,2501,2505,2525,2529,2541,2545,2551,2555,2562,2566,2569,2573,2582,2584,2597,2599,2603,2614,2655,2660,2682,2684,2689],[11,12,5],"h1",{"id":13},"yu-gi-oh-price-api-tcgplayer-cardmarket-in-one-call",[15,16,18,19],"div",{"style":17},"background: rgba(14, 165, 233, 0.15); border-left: 4px solid #0ea5e9; padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 4px;","\n  ",[20,21,23,24,28],"p",{"style":22},"margin: 0; font-size: 0.9rem; color: #e0e0e0;","\n    ",[25,26,27],"strong",{},"🔵 IN THIS GUIDE:"," How to pull Yu-Gi-Oh! card data and both marketplace prices (TCGplayer in USD, Cardmarket in EUR) from one REST API. The catalog is free, and whole-set prices and analytics start at Ultra. Every example below comes from a real API response captured on November 7, 2026.\n  ",[30,31,32],"blockquote",{},[20,33,34,37,38,41,42,45,46,50,51,54,55,58,59,62,63,66,67,70],{},[25,35,36],{},"Quick Answer:"," The PokéWallet API returns ",[25,39,40],{},"TCGplayer (USD)"," and ",[25,43,44],{},"Cardmarket (EUR)"," prices for a Yu-Gi-Oh! card in a single response, under ",[47,48,49],"code",{},"\u002Fygo\u002F",", with the same key you use for the other 11 games. The catalog (",[25,52,53],{},"709 sets"," as of November 7, 2026, plus cards, search and images) is free at ",[25,56,57],{},"100 requests\u002Fhour",". Prices for whole sets and the analytics endpoints need ",[25,60,61],{},"Ultra (€29\u002Fmonth)"," or the ",[25,64,65],{},"7-day trial","; Pro is not enough. Prices refresh ",[25,68,69],{},"once a day",".",[20,72,73],{},"Yu-Gi-Oh! prices are split by more than marketplace. The same card can exist as a 1st Edition and an Unlimited print, in several rarities across several sets, and as an Extended Art that costs fifty times the regular one. US players watch TCGplayer, European players watch Cardmarket, and a price tracker that only reads one of them gives half the picture.",[20,75,76,77,80,81,86,87,41,91,70],{},"This guide covers what the ",[47,78,79],{},"ygo"," endpoints return, how to make a first request, what stays free, what needs Ultra, and how to call it from JavaScript and Python. It also covers where YGOPRODeck is the simpler choice. It is the fourth game guide in the series, after ",[82,83,85],"a",{"href":84},"\u002Fblog\u002Friftbound-api-card-prices-tcgplayer-cardmarket","Riftbound",", ",[82,88,90],{"href":89},"\u002Fblog\u002Florcana-api-card-prices-tcgplayer-cardmarket","Disney Lorcana",[82,92,94],{"href":93},"\u002Fblog\u002Fmtg-price-api-tcgplayer-cardmarket","Magic: The Gathering",[20,96,97,98,102,103,107,108,70],{},"The argument isn't \"better than the alternatives\". It's one key and one response shape across twelve games, with two marketplaces side by side. The ",[82,99,101],{"href":100},"\u002Fblog\u002Ftcg-price-api-12-card-games-one-key","multi-game overview"," covers that bigger picture, and the ",[82,104,106],{"href":105},"\u002Fgames","games page"," lists all twelve. The full reference is in the ",[82,109,111],{"href":110},"\u002Fapi-docs\u002Fyugioh","Yu-Gi-Oh! API documentation",[113,114,116],"h2",{"id":115},"key-takeaways","Key Takeaways",[118,119,120,144,154,164,178,185],"ul",{},[121,122,123,124,127,128,86,131,86,134,86,137,41,140,143],"li",{},"🆓 ",[25,125,126],{},"The catalog is free on every plan."," ",[47,129,130],{},"\u002Fygo\u002Fsets",[47,132,133],{},"\u002Fygo\u002Fsets\u002F:set",[47,135,136],{},"\u002Fygo\u002Fcards\u002F:id",[47,138,139],{},"\u002Fygo\u002Fsearch",[47,141,142],{},"\u002Fygo\u002Fimages\u002F:id"," cost nothing beyond the free tier's 100 requests\u002Fhour and 1,000\u002Fday.",[121,145,146,147,150,151,153],{},"💰 ",[25,148,149],{},"A single card or search call already includes prices."," Both return TCGplayer and Cardmarket prices on every plan. The set card list (",[47,152,133],{},") does not.",[121,155,156,157,127,160,163],{},"🔐 ",[25,158,159],{},"Whole-set prices and analytics need Ultra.",[47,161,162],{},"\u002Fygo\u002Fprices\u002F:set",", statistics, completion value, trending sets and top cards require Ultra (€29\u002Fmonth) or the 7-day trial. Pro does not unlock them for Yu-Gi-Oh!.",[121,165,166,167,170,171,86,174,177],{},"📚 ",[25,168,169],{},"Editions and versions are split for you."," TCGplayer prices come per edition (",[47,172,173],{},"1st Edition",[47,175,176],{},"Unlimited","), and each print version (regular, Extended Art, Grand Master Rare) is its own card with its own ID.",[121,179,180,181,184],{},"🌍 ",[25,182,183],{},"Two currencies, never converted."," TCGplayer is USD, Cardmarket is EUR, and the completion-value response says cross-currency comparison isn't available.",[121,186,187,188,191,192,195,196,198],{},"🗓️ ",[25,189,190],{},"New sets appear before release."," Magnificent Maestros (",[47,193,194],{},"MAMS",", out November 13, 2026) is already in ",[47,197,130],{}," with its sealed products; the card list fills in once the cards are listed.",[200,201],"hr",{},[113,203,205],{"id":204},"what-the-api-covers","What the API Covers",[20,207,208,209,211,212,215],{},"Yu-Gi-Oh! sits under the game code ",[47,210,79],{},". The public ",[47,213,214],{},"GET \u002Fgames"," endpoint lists it with its routes:",[217,218,219,235],"table",{},[220,221,222],"thead",{},[223,224,225,229,232],"tr",{},[226,227,228],"th",{},"Route",[226,230,231],{},"What it does",[226,233,234],{},"Plan",[236,237,238,251,262,273,285,296,308,320,332,344],"tbody",{},[223,239,240,245,248],{},[241,242,243],"td",{},[47,244,130],{},[241,246,247],{},"List every set",[241,249,250],{},"Free",[223,252,253,257,260],{},[241,254,255],{},[47,256,133],{},[241,258,259],{},"One set and its cards",[241,261,250],{},[223,263,264,268,271],{},[241,265,266],{},[47,267,136],{},[241,269,270],{},"One card with TCGplayer and Cardmarket prices",[241,272,250],{},[223,274,275,280,283],{},[241,276,277],{},[47,278,279],{},"\u002Fygo\u002Fsearch?q=",[241,281,282],{},"Search cards, prices included",[241,284,250],{},[223,286,287,291,294],{},[241,288,289],{},[47,290,142],{},[241,292,293],{},"Card image",[241,295,250],{},[223,297,298,302,305],{},[241,299,300],{},[47,301,162],{},[241,303,304],{},"Prices for a whole set",[241,306,307],{},"Ultra",[223,309,310,315,318],{},[241,311,312],{},[47,313,314],{},"\u002Fygo\u002Fsets\u002F:set\u002Fstatistics",[241,316,317],{},"Price statistics and rarity breakdown",[241,319,307],{},[223,321,322,327,330],{},[241,323,324],{},[47,325,326],{},"\u002Fygo\u002Fsets\u002F:set\u002Fcompletion-value",[241,328,329],{},"Cost to complete a set",[241,331,307],{},[223,333,334,339,342],{},[241,335,336],{},[47,337,338],{},"\u002Fygo\u002Fsets\u002Ftrending",[241,340,341],{},"Sets moving over 7 days",[241,343,307],{},[223,345,346,351,354],{},[241,347,348],{},[47,349,350],{},"\u002Fygo\u002Fanalytics\u002Ftop-cards",[241,352,353],{},"Top cards by price or growth",[241,355,307],{},[20,357,358,359,361,362,365,366,368],{},"The ",[47,360,105],{}," response files the last five under ",[47,363,364],{},"pro_endpoints",". For the ten games beyond Pokémon and One Piece, those need ",[25,367,307],{}," or the 7-day trial, and Pro does not cover them.",[20,370,371,372,374,375,378,379,378,382,378,385,388],{},"The set list reported ",[25,373,53],{}," on November 7, 2026. Each entry has a ",[47,376,377],{},"set_code",", a ",[47,380,381],{},"set_id",[47,383,384],{},"card_count",[47,386,387],{},"sealed_count",", a language and a release date. Three real entries show the range:",[217,390,391,415],{},[220,392,393],{},[223,394,395,398,402,406,409,412],{},[226,396,397],{},"Set",[226,399,400],{},[47,401,377],{},[226,403,404],{},[47,405,381],{},[226,407,408],{},"Cards",[226,410,411],{},"Sealed",[226,413,414],{},"Release",[236,416,417,439,460,480],{},[223,418,419,422,427,430,433,436],{},[241,420,421],{},"Magnificent Monsters",[241,423,424],{},[47,425,426],{},"MAMO",[241,428,429],{},"24707",[241,431,432],{},"228",[241,434,435],{},"3",[241,437,438],{},"2026-09-04",[223,440,441,444,449,452,455,457],{},[241,442,443],{},"Beyond the Brave",[241,445,446],{},[47,447,448],{},"BETB",[241,450,451],{},"24815",[241,453,454],{},"136",[241,456,435],{},[241,458,459],{},"2026-10-09",[223,461,462,465,469,472,475,477],{},[241,463,464],{},"Magnificent Maestros",[241,466,467],{},[47,468,194],{},[241,470,471],{},"24808",[241,473,474],{},"0",[241,476,435],{},[241,478,479],{},"2026-11-13",[223,481,482,485,490,493,496,498],{},[241,483,484],{},"2-Player Starter Deck Yuya & Declan",[241,486,487],{},[47,488,489],{},"ys15",[241,491,492],{},"-70",[241,494,495],{},"42",[241,497,474],{},[241,499,500],{},[47,501,502],{},"null",[20,504,505,506,508,509,511,512,515],{},"Upcoming sets show up with their sealed products first (Magnificent Maestros has its booster pack, box and display), and a release date can be ",[47,507,502],{},". Negative ",[47,510,381],{}," values are sets that exist on Cardmarket only. The catalog also includes Japanese sets, marked by their ",[47,513,514],{},"language",", so filter on it if you only want English prints.",[20,517,518,519,86,522,86,525,86,528,86,531,86,534,41,537,540,541,41,543,545],{},"Cards carry Yu-Gi-Oh!-specific fields on top of the common ones: ",[47,520,521],{},"attribute",[47,523,524],{},"attack",[47,526,527],{},"defense",[47,529,530],{},"monster_type",[47,532,533],{},"link_rating",[47,535,536],{},"link_arrows",[47,538,539],{},"upc",". ",[47,542,524],{},[47,544,527],{}," arrive as strings (\"2500\", \"2100\"), so convert them before you sort.",[113,547,549],{"id":548},"your-first-request","Your First Request",[20,551,552,553,556,557,560],{},"Every request goes to ",[47,554,555],{},"https:\u002F\u002Fapi.pokewallet.io"," with your key in the ",[47,558,559],{},"X-API-Key"," header. Start with a search:",[562,563,568],"pre",{"className":564,"code":565,"language":566,"meta":567,"style":567},"language-bash shiki shiki-themes github-dark-default","curl -H \"X-API-Key: $POKEWALLET_API_KEY\" \\\n  \"https:\u002F\u002Fapi.pokewallet.io\u002Fygo\u002Fsearch?q=Pharaoh's%20Servant\"\n","bash","",[47,569,570,598],{"__ignoreMap":567},[571,572,575,579,583,587,591,594],"span",{"class":573,"line":574},"line",1,[571,576,578],{"class":577},"sQhOw","curl",[571,580,582],{"class":581},"sFSAA"," -H",[571,584,586],{"class":585},"s9uIt"," \"X-API-Key: ",[571,588,590],{"class":589},"sZEs4","$POKEWALLET_API_KEY",[571,592,593],{"class":585},"\"",[571,595,597],{"class":596},"suJrU"," \\\n",[571,599,601],{"class":573,"line":600},2,[571,602,603],{"class":585},"  \"https:\u002F\u002Fapi.pokewallet.io\u002Fygo\u002Fsearch?q=Pharaoh's%20Servant\"\n",[20,605,606,607,610],{},"The query returned 20 matches. The ",[47,608,609],{},"metadata"," block tells you where the prices came from:",[217,612,613,623],{},[220,614,615],{},[223,616,617,620],{},[226,618,619],{},"Metadata field",[226,621,622],{},"Value",[236,624,625,635,646,657,667,677],{},[223,626,627,632],{},[241,628,629],{},[47,630,631],{},"total_count",[241,633,634],{},"20",[223,636,637,643],{},[241,638,639,642],{},[47,640,641],{},"tcg"," (cards with TCGplayer data)",[241,644,645],{},"15",[223,647,648,654],{},[241,649,650,653],{},[47,651,652],{},"cardmarket"," (cards with Cardmarket data)",[241,655,656],{},"12",[223,658,659,664],{},[241,660,661],{},[47,662,663],{},"both_sources",[241,665,666],{},"7",[223,668,669,674],{},[241,670,671],{},[47,672,673],{},"tcg_only",[241,675,676],{},"8",[223,678,679,684],{},[241,680,681],{},[47,682,683],{},"cardmarket_only",[241,685,686],{},"5",[20,688,689,690,693],{},"Not every card exists on both marketplaces, so handle a missing side. Japanese prints in the results, for example, carry only Cardmarket prices. Broad queries are capped: a search for \"Magician\" reported 300 results with ",[47,691,692],{},"truncated: true",", so narrow the query rather than paging through everything.",[113,695,697],{"id":696},"free-endpoints","Free Endpoints",[699,700,702],"h3",{"id":701},"sets-and-cards","Sets and cards",[20,704,705,708,709,712,713,715,716,62,718,720,721,723,724,726],{},[47,706,707],{},"GET \u002Fygo\u002Fsets\u002F24707"," returns ",[710,711,421],"em",{}," (",[47,714,426],{},"), released September 4, 2026. It accepts either the ",[47,717,381],{},[47,719,377],{},". If a ",[47,722,377],{}," is ambiguous, the API answers with candidates, so prefer the numeric ",[47,725,381],{}," in code you ship.",[20,728,729,730,41,733,736,737,740,741,712,744,747,748,750],{},"The card list is paginated, with ",[47,731,732],{},"total",[47,734,735],{},"total_pages"," in the ",[47,738,739],{},"pagination"," object. Its first card is ",[710,742,743],{},"Dark Magician, the Pharaoh's Servant",[47,745,746],{},"MAMO-EN001",", Ultra Rare, ",[47,749,173],{},"). In the set list the price arrays are empty:",[562,752,756],{"className":753,"code":754,"language":755,"meta":567,"style":567},"language-json shiki shiki-themes github-dark-default","\"tcgplayer\": { \"prices\": [], \"url\": \"https:\u002F\u002Fwww.tcgplayer.com\u002Fproduct\u002F714701\u002Fyugioh-magnificent-monsters-dark-magician-the-pharaohs-servant\" }\n","json",[47,757,758],{"__ignoreMap":567},[571,759,760,763,766,770,773,776,779,782],{"class":573,"line":574},[571,761,762],{"class":585},"\"tcgplayer\"",[571,764,765],{"class":589},": { ",[571,767,769],{"class":768},"sPWt5","\"prices\"",[571,771,772],{"class":589},": [], ",[571,774,775],{"class":768},"\"url\"",[571,777,778],{"class":589},": ",[571,780,781],{"class":585},"\"https:\u002F\u002Fwww.tcgplayer.com\u002Fproduct\u002F714701\u002Fyugioh-magnificent-monsters-dark-magician-the-pharaohs-servant\"",[571,783,784],{"class":589}," }\n",[20,786,787],{},"That is by design: the set card list gives you the card and the marketplace links, not the prices. To get prices, call the single-card endpoint or search, or use the Ultra set-price endpoint below.",[699,789,791],{"id":790},"one-card-both-marketplaces","One card, both marketplaces",[20,793,794,797,798,800],{},[47,795,796],{},"GET \u002Fygo\u002Fcards\u002F:id"," takes the long ID from the set or search results. Here are two versions of the same card from ",[710,799,421],{},", each with its own ID:",[217,802,803,822],{},[220,804,805],{},[223,806,807,810,813,816,819],{},[226,808,809],{},"Version",[226,811,812],{},"TCGplayer market (USD)",[226,814,815],{},"TCGplayer low \u002F high",[226,817,818],{},"Cardmarket trend (EUR)",[226,820,821],{},"Cardmarket avg 30d",[236,823,824,841],{},[223,825,826,829,832,835,838],{},[241,827,828],{},"Dark Magician, the Pharaoh's Servant (Ultra Rare)",[241,830,831],{},"$2.77",[241,833,834],{},"$1.45 \u002F $40.00",[241,836,837],{},"€2.12",[241,839,840],{},"€2.42",[223,842,843,846,849,852,855],{},[241,844,845],{},"Dark Magician, the Pharaoh's Servant (Extended Art)",[241,847,848],{},"$127.19",[241,850,851],{},"$121.18 \u002F $420.00",[241,853,854],{},"€133.54",[241,856,857],{},"€121.15",[20,859,860],{},[710,861,862,863,866],{},"TCGplayer, 1st Edition; Cardmarket, ",[47,864,865],{},"normal",". Both updated November 7, 2026.",[20,868,869,870,873,874,86,877,86,880,86,883,86,886,41,889,892,893,896,897,712,900,903,904,906,907,909],{},"The Extended Art costs about 46 times the regular print on TCGplayer, which is why versions must stay separate in your data. On Cardmarket they are separate products too: the response names them \"V.1 - Ultra Rare\" and \"V.2 - Ultra Rare\" in ",[47,871,872],{},"product_name",", and each carries ",[47,875,876],{},"low",[47,878,879],{},"trend",[47,881,882],{},"avg",[47,884,885],{},"avg1",[47,887,888],{},"avg7",[47,890,891],{},"avg30",". TCGplayer prices come per edition in ",[47,894,895],{},"sub_type_name","; older cards like ",[710,898,899],{},"Pharaoh's Servant",[47,901,902],{},"AST",") return both ",[47,905,173],{}," ($1.76) and ",[47,908,176],{}," ($1.04).",[20,911,912,915,916,919,920,922],{},[47,913,914],{},"updated_at"," marks the last time a price changed, not the time of your request. A Cardmarket ",[47,917,918],{},"foil"," entry that hasn't moved in weeks will keep an older stamp than the ",[47,921,865],{}," one next to it.",[20,924,925,926,929],{},"Plan your request budget before you loop. The free tier is ",[25,927,928],{},"100 requests\u002Fhour and 1,000\u002Fday",", and every call counts, including the card lookups you make after a search.",[113,931,933],{"id":932},"ultra-endpoints-set-wide-prices-analytics","Ultra Endpoints: Set-Wide Prices & Analytics",[20,935,936,937,940,941,944,945,949,950,954],{},"Ultra costs ",[25,938,939],{},"€29\u002Fmonth",", with ",[25,942,943],{},"7,000 requests\u002Fhour and 70,000\u002Fday",". The trial lasts 7 days and you start it from the dashboard after you ",[82,946,948],{"href":947},"\u002Fauth\u002Flogin","log in",". The whole Yu-Gi-Oh! analytics layer sits behind it. See ",[82,951,953],{"href":952},"\u002Fblog\u002Fpokewallet-pro-vs-ultra-which-plan","Pro vs Ultra"," for the plan breakdown.",[699,956,304],{"id":957},"prices-for-a-whole-set",[20,959,960,963,964,967,968,970,971,973],{},[47,961,962],{},"GET \u002Fygo\u002Fprices\u002F24707"," returns one row per card version and edition, with ",[47,965,966],{},"source: \"both\""," and a ",[47,969,732],{}," of 234 rows for ",[710,972,421],{},". Each row has the TCGplayer and Cardmarket figures side by side:",[562,975,977],{"className":753,"code":976,"language":755,"meta":567,"style":567},"{\n  \"card_number\": \"MAMO-EN001\",\n  \"name\": \"Dark Magician, the Pharaoh's Servant (Extended Art)\",\n  \"variant\": \"1st Edition\",\n  \"tcgplayer\": { \"market_price\": 149.33, \"low_price\": 137.99 },\n  \"cardmarket\": { \"trend\": 101.9, \"avg\": 120.19, \"avg30\": 130.47 }\n}\n",[47,978,979,984,997,1010,1023,1052,1090],{"__ignoreMap":567},[571,980,981],{"class":573,"line":574},[571,982,983],{"class":589},"{\n",[571,985,986,989,991,994],{"class":573,"line":600},[571,987,988],{"class":768},"  \"card_number\"",[571,990,778],{"class":589},[571,992,993],{"class":585},"\"MAMO-EN001\"",[571,995,996],{"class":589},",\n",[571,998,1000,1003,1005,1008],{"class":573,"line":999},3,[571,1001,1002],{"class":768},"  \"name\"",[571,1004,778],{"class":589},[571,1006,1007],{"class":585},"\"Dark Magician, the Pharaoh's Servant (Extended Art)\"",[571,1009,996],{"class":589},[571,1011,1013,1016,1018,1021],{"class":573,"line":1012},4,[571,1014,1015],{"class":768},"  \"variant\"",[571,1017,778],{"class":589},[571,1019,1020],{"class":585},"\"1st Edition\"",[571,1022,996],{"class":589},[571,1024,1026,1029,1031,1034,1036,1039,1041,1044,1046,1049],{"class":573,"line":1025},5,[571,1027,1028],{"class":768},"  \"tcgplayer\"",[571,1030,765],{"class":589},[571,1032,1033],{"class":768},"\"market_price\"",[571,1035,778],{"class":589},[571,1037,1038],{"class":581},"149.33",[571,1040,86],{"class":589},[571,1042,1043],{"class":768},"\"low_price\"",[571,1045,778],{"class":589},[571,1047,1048],{"class":581},"137.99",[571,1050,1051],{"class":589}," },\n",[571,1053,1055,1058,1060,1063,1065,1068,1070,1073,1075,1078,1080,1083,1085,1088],{"class":573,"line":1054},6,[571,1056,1057],{"class":768},"  \"cardmarket\"",[571,1059,765],{"class":589},[571,1061,1062],{"class":768},"\"trend\"",[571,1064,778],{"class":589},[571,1066,1067],{"class":581},"101.9",[571,1069,86],{"class":589},[571,1071,1072],{"class":768},"\"avg\"",[571,1074,778],{"class":589},[571,1076,1077],{"class":581},"120.19",[571,1079,86],{"class":589},[571,1081,1082],{"class":768},"\"avg30\"",[571,1084,778],{"class":589},[571,1086,1087],{"class":581},"130.47",[571,1089,784],{"class":589},[571,1091,1093],{"class":573,"line":1092},7,[571,1094,1095],{"class":589},"}\n",[20,1097,1098],{},[710,1099,1100,1101,1103],{},"Trimmed from the response fetched for this guide; the full row also carries mid and high prices, the other Cardmarket averages and ",[47,1102,914],{},". The single-card call above is more recent.",[699,1105,1107],{"id":1106},"statistics","Statistics",[20,1109,1110,1113],{},[47,1111,1112],{},"GET \u002Fygo\u002Fsets\u002F24707\u002Fstatistics"," summarises the set on each marketplace:",[217,1115,1116,1126],{},[220,1117,1118],{},[223,1119,1120,1122,1124],{},[226,1121],{},[226,1123,40],{},[226,1125,44],{},[236,1127,1128,1143,1154,1165],{},[223,1129,1130,1133,1140],{},[241,1131,1132],{},"Average price",[241,1134,1135,1136,1139],{},"66.09 (",[47,1137,1138],{},"avg_market_price",")",[241,1141,1142],{},"252.54",[223,1144,1145,1148,1151],{},[241,1146,1147],{},"Minimum",[241,1149,1150],{},"0.10",[241,1152,1153],{},"0.11",[223,1155,1156,1159,1162],{},[241,1157,1158],{},"Maximum",[241,1160,1161],{},"5,000",[241,1163,1164],{},"15,000",[223,1166,1167,1170,1173],{},[241,1168,1169],{},"Most expensive",[241,1171,1172],{},"Winged Kuriboh Sabatiel LV10 (GMR)",[241,1174,1175],{},"Dark Magician, the Pharaoh's Servant (GMR)",[20,1177,1178],{},"The rarity breakdown splits the set into 138 Ultra Rare, 46 Starlight Rare, 26 Secret Rare and 18 Grand Master Rare cards. The Grand Master Rares pull the averages far above what a typical card costs, so use the median of the set-price rows if you want a \"normal\" card price. Thin markets also produce round, listing-like figures at the top, like the €15,000 here: check how many sales sit behind a number before you display it as a value.",[699,1180,1182],{"id":1181},"completion-value","Completion value",[20,1184,1185,1188],{},[47,1186,1187],{},"GET \u002Fygo\u002Fsets\u002F24707\u002Fcompletion-value"," estimates what one copy of every card costs:",[217,1190,1191,1206],{},[220,1192,1193],{},[223,1194,1195,1197,1200,1203],{},[226,1196],{},[226,1198,1199],{},"Low",[226,1201,1202],{},"Market \u002F avg",[226,1204,1205],{},"High \u002F trend",[236,1207,1208,1221],{},[223,1209,1210,1212,1215,1218],{},[241,1211,40],{},[241,1213,1214],{},"189,772.10",[241,1216,1217],{},"171,007.03 (market)",[241,1219,1220],{},"375,141.96 (high)",[223,1222,1223,1225,1228,1231],{},[241,1224,44],{},[241,1226,1227],{},"118,951.11",[241,1229,1230],{},"101,620.96 (avg)",[241,1232,1233],{},"37,853.28 (trend)",[20,1235,1236],{},"Almost all of that is the Grand Master Rare slot: the response's breakdown by rarity shows how each rarity contributes. The note in the response is explicit that this is one copy per card in the base finish and that USD and EUR can't be compared directly. Use one field consistently: the Cardmarket trend estimate sits far below its average estimate.",[699,1238,1240],{"id":1239},"top-cards-and-trending-sets","Top cards and trending sets",[20,1242,1243,1246],{},[47,1244,1245],{},"GET \u002Fygo\u002Fanalytics\u002Ftop-cards"," defaults to the highest prices from TCGplayer:",[217,1248,1249,1261],{},[220,1250,1251],{},[223,1252,1253,1256,1258],{},[226,1254,1255],{},"Card",[226,1257,397],{},[226,1259,1260],{},"Price",[236,1262,1263,1274],{},[223,1264,1265,1267,1272],{},[241,1266,1172],{},[241,1268,1269,1270,1139],{},"Magnificent Monsters (",[47,1271,426],{},[241,1273,1161],{},[223,1275,1276,1279,1285],{},[241,1277,1278],{},"Black Rose Dragon (Ghost Rare)",[241,1280,1281,1282,1139],{},"Crossroads of Chaos (",[47,1283,1284],{},"CSOC",[241,1286,1287],{},"1,499.09",[20,1289,1290,1291,1294,1295,1298,1299,1302,1303,712,1306,1309],{},"Add ",[47,1292,1293],{},"?metric=growth&source=cm"," to rank by Cardmarket growth instead. The sample returned ",[710,1296,1297],{},"Jerry Beans Man"," (Dark Revelation Volume 4, €134.11, ",[25,1300,1301],{},"+433.9%"," over 7 days) and ",[710,1304,1305],{},"Worm Bait",[25,1307,1308],{},"+402.1%",", €9.69). Growth lists surface low-supply commons and promos, so check the sale volume behind a spike before acting on it.",[20,1311,1312,1315,1316,1319,1320,1323,1324,1319,1327,1330,1331,1334,1335,1338,1339,1341],{},[47,1313,1314],{},"GET \u002Fygo\u002Fsets\u002Ftrending"," covers a 7-day window. ",[710,1317,1318],{},"World Championship 2011 Card Pack"," showed ",[25,1321,1322],{},"+119.9%"," on Cardmarket (average €43.90 to €96.57), and ",[710,1325,1326],{},"Starter Deck: Kaiba",[25,1328,1329],{},"+74.4%"," (€6.08 to €10.61), led by a Blue-Eyes White Dragon print up 165.7%. TCGplayer returned ",[47,1332,1333],{},"work_in_progress"," with the message \"TCGPlayer price history not yet available\". Code defensively: the ",[47,1336,1337],{},"tcgplayer"," key can be ",[47,1340,502],{}," or a status object.",[113,1343,1345],{"id":1344},"code-examples-javascript-python","Code Examples: JavaScript & Python",[20,1347,1348,1349,70],{},"Both examples use only the routes, parameters and fields shown above. Set your key as ",[47,1350,1351],{},"POKEWALLET_API_KEY",[699,1353,1355],{"id":1354},"javascript-node-18-search-then-compare-marketplaces","JavaScript (Node 18+): search, then compare marketplaces",[562,1357,1361],{"className":1358,"code":1359,"language":1360,"meta":567,"style":567},"language-javascript shiki shiki-themes github-dark-default","const BASE = \"https:\u002F\u002Fapi.pokewallet.io\";\nconst headers = { \"X-API-Key\": process.env.POKEWALLET_API_KEY };\n\nasync function get(path) {\n  const res = await fetch(`${BASE}${path}`, { headers });\n  if (!res.ok) {\n    throw new Error(`${path} failed: HTTP ${res.status}`);\n  }\n  return res.json();\n}\n\nconst q = encodeURIComponent(\"Pharaoh's Servant\");\nconst { results } = await get(`\u002Fygo\u002Fsearch?q=${q}`);\n\nfor (const card of results) {\n  const { name, set_code, rarity } = card.card_info;\n\n  const tcg = (card.tcgplayer?.prices ?? []).map(\n    (p) => `${p.sub_type_name} $${p.market_price}`\n  );\n  const cm = (card.cardmarket?.prices ?? [])\n    .filter((p) => p.trend !== null)\n    .map((p) => `${p.variant_type} €${p.trend}`);\n\n  console.log(`${name} (${set_code}, ${rarity ?? \"no rarity\"})`);\n  console.log(\"  TCGplayer market:\", tcg.join(\", \") || \"no data\");\n  console.log(\"  Cardmarket trend:\", cm.join(\", \") || \"no data\");\n}\n","javascript",[47,1362,1363,1380,1403,1409,1430,1465,1478,1511,1517,1531,1536,1541,1561,1593,1598,1617,1643,1648,1673,1709,1715,1733,1763,1800,1805,1838,1871,1900],{"__ignoreMap":567},[571,1364,1365,1368,1371,1374,1377],{"class":573,"line":574},[571,1366,1367],{"class":596},"const",[571,1369,1370],{"class":581}," BASE",[571,1372,1373],{"class":596}," =",[571,1375,1376],{"class":585}," \"https:\u002F\u002Fapi.pokewallet.io\"",[571,1378,1379],{"class":589},";\n",[571,1381,1382,1384,1387,1389,1392,1395,1398,1400],{"class":573,"line":600},[571,1383,1367],{"class":596},[571,1385,1386],{"class":581}," headers",[571,1388,1373],{"class":596},[571,1390,1391],{"class":589}," { ",[571,1393,1394],{"class":585},"\"X-API-Key\"",[571,1396,1397],{"class":589},": process.env.",[571,1399,1351],{"class":581},[571,1401,1402],{"class":589}," };\n",[571,1404,1405],{"class":573,"line":999},[571,1406,1408],{"emptyLinePlaceholder":1407},true,"\n",[571,1410,1411,1414,1417,1421,1424,1427],{"class":573,"line":1012},[571,1412,1413],{"class":596},"async",[571,1415,1416],{"class":596}," function",[571,1418,1420],{"class":1419},"sc3cj"," get",[571,1422,1423],{"class":589},"(",[571,1425,1426],{"class":577},"path",[571,1428,1429],{"class":589},") {\n",[571,1431,1432,1435,1438,1440,1443,1446,1448,1451,1454,1457,1459,1462],{"class":573,"line":1025},[571,1433,1434],{"class":596},"  const",[571,1436,1437],{"class":581}," res",[571,1439,1373],{"class":596},[571,1441,1442],{"class":596}," await",[571,1444,1445],{"class":1419}," fetch",[571,1447,1423],{"class":589},[571,1449,1450],{"class":585},"`${",[571,1452,1453],{"class":581},"BASE",[571,1455,1456],{"class":585},"}${",[571,1458,1426],{"class":589},[571,1460,1461],{"class":585},"}`",[571,1463,1464],{"class":589},", { headers });\n",[571,1466,1467,1470,1472,1475],{"class":573,"line":1054},[571,1468,1469],{"class":596},"  if",[571,1471,712],{"class":589},[571,1473,1474],{"class":596},"!",[571,1476,1477],{"class":589},"res.ok) {\n",[571,1479,1480,1483,1486,1489,1491,1493,1495,1498,1501,1503,1506,1508],{"class":573,"line":1092},[571,1481,1482],{"class":596},"    throw",[571,1484,1485],{"class":596}," new",[571,1487,1488],{"class":1419}," Error",[571,1490,1423],{"class":589},[571,1492,1450],{"class":585},[571,1494,1426],{"class":589},[571,1496,1497],{"class":585},"} failed: HTTP ${",[571,1499,1500],{"class":589},"res",[571,1502,70],{"class":585},[571,1504,1505],{"class":589},"status",[571,1507,1461],{"class":585},[571,1509,1510],{"class":589},");\n",[571,1512,1514],{"class":573,"line":1513},8,[571,1515,1516],{"class":589},"  }\n",[571,1518,1520,1523,1526,1528],{"class":573,"line":1519},9,[571,1521,1522],{"class":596},"  return",[571,1524,1525],{"class":589}," res.",[571,1527,755],{"class":1419},[571,1529,1530],{"class":589},"();\n",[571,1532,1534],{"class":573,"line":1533},10,[571,1535,1095],{"class":589},[571,1537,1539],{"class":573,"line":1538},11,[571,1540,1408],{"emptyLinePlaceholder":1407},[571,1542,1544,1546,1549,1551,1554,1556,1559],{"class":573,"line":1543},12,[571,1545,1367],{"class":596},[571,1547,1548],{"class":581}," q",[571,1550,1373],{"class":596},[571,1552,1553],{"class":1419}," encodeURIComponent",[571,1555,1423],{"class":589},[571,1557,1558],{"class":585},"\"Pharaoh's Servant\"",[571,1560,1510],{"class":589},[571,1562,1564,1566,1568,1571,1574,1577,1579,1581,1583,1586,1589,1591],{"class":573,"line":1563},13,[571,1565,1367],{"class":596},[571,1567,1391],{"class":589},[571,1569,1570],{"class":581},"results",[571,1572,1573],{"class":589}," } ",[571,1575,1576],{"class":596},"=",[571,1578,1442],{"class":596},[571,1580,1420],{"class":1419},[571,1582,1423],{"class":589},[571,1584,1585],{"class":585},"`\u002Fygo\u002Fsearch?q=${",[571,1587,1588],{"class":589},"q",[571,1590,1461],{"class":585},[571,1592,1510],{"class":589},[571,1594,1596],{"class":573,"line":1595},14,[571,1597,1408],{"emptyLinePlaceholder":1407},[571,1599,1601,1604,1606,1608,1611,1614],{"class":573,"line":1600},15,[571,1602,1603],{"class":596},"for",[571,1605,712],{"class":589},[571,1607,1367],{"class":596},[571,1609,1610],{"class":581}," card",[571,1612,1613],{"class":596}," of",[571,1615,1616],{"class":589}," results) {\n",[571,1618,1620,1622,1624,1627,1629,1631,1633,1636,1638,1640],{"class":573,"line":1619},16,[571,1621,1434],{"class":596},[571,1623,1391],{"class":589},[571,1625,1626],{"class":581},"name",[571,1628,86],{"class":589},[571,1630,377],{"class":581},[571,1632,86],{"class":589},[571,1634,1635],{"class":581},"rarity",[571,1637,1573],{"class":589},[571,1639,1576],{"class":596},[571,1641,1642],{"class":589}," card.card_info;\n",[571,1644,1646],{"class":573,"line":1645},17,[571,1647,1408],{"emptyLinePlaceholder":1407},[571,1649,1651,1653,1656,1658,1661,1664,1667,1670],{"class":573,"line":1650},18,[571,1652,1434],{"class":596},[571,1654,1655],{"class":581}," tcg",[571,1657,1373],{"class":596},[571,1659,1660],{"class":589}," (card.tcgplayer?.prices ",[571,1662,1663],{"class":596},"??",[571,1665,1666],{"class":589}," []).",[571,1668,1669],{"class":1419},"map",[571,1671,1672],{"class":589},"(\n",[571,1674,1676,1679,1681,1684,1687,1690,1692,1694,1696,1699,1701,1703,1706],{"class":573,"line":1675},19,[571,1677,1678],{"class":589},"    (",[571,1680,20],{"class":577},[571,1682,1683],{"class":589},") ",[571,1685,1686],{"class":596},"=>",[571,1688,1689],{"class":585}," `${",[571,1691,20],{"class":589},[571,1693,70],{"class":585},[571,1695,895],{"class":589},[571,1697,1698],{"class":585},"} $${",[571,1700,20],{"class":589},[571,1702,70],{"class":585},[571,1704,1705],{"class":589},"market_price",[571,1707,1708],{"class":585},"}`\n",[571,1710,1712],{"class":573,"line":1711},20,[571,1713,1714],{"class":589},"  );\n",[571,1716,1718,1720,1723,1725,1728,1730],{"class":573,"line":1717},21,[571,1719,1434],{"class":596},[571,1721,1722],{"class":581}," cm",[571,1724,1373],{"class":596},[571,1726,1727],{"class":589}," (card.cardmarket?.prices ",[571,1729,1663],{"class":596},[571,1731,1732],{"class":589}," [])\n",[571,1734,1736,1739,1742,1745,1747,1749,1751,1754,1757,1760],{"class":573,"line":1735},22,[571,1737,1738],{"class":589},"    .",[571,1740,1741],{"class":1419},"filter",[571,1743,1744],{"class":589},"((",[571,1746,20],{"class":577},[571,1748,1683],{"class":589},[571,1750,1686],{"class":596},[571,1752,1753],{"class":589}," p.trend ",[571,1755,1756],{"class":596},"!==",[571,1758,1759],{"class":581}," null",[571,1761,1762],{"class":589},")\n",[571,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1787,1790,1792,1794,1796,1798],{"class":573,"line":1765},23,[571,1767,1738],{"class":589},[571,1769,1669],{"class":1419},[571,1771,1744],{"class":589},[571,1773,20],{"class":577},[571,1775,1683],{"class":589},[571,1777,1686],{"class":596},[571,1779,1689],{"class":585},[571,1781,20],{"class":589},[571,1783,70],{"class":585},[571,1785,1786],{"class":589},"variant_type",[571,1788,1789],{"class":585},"} €${",[571,1791,20],{"class":589},[571,1793,70],{"class":585},[571,1795,879],{"class":589},[571,1797,1461],{"class":585},[571,1799,1510],{"class":589},[571,1801,1803],{"class":573,"line":1802},24,[571,1804,1408],{"emptyLinePlaceholder":1407},[571,1806,1808,1811,1814,1816,1818,1820,1823,1825,1828,1830,1833,1836],{"class":573,"line":1807},25,[571,1809,1810],{"class":589},"  console.",[571,1812,1813],{"class":1419},"log",[571,1815,1423],{"class":589},[571,1817,1450],{"class":585},[571,1819,1626],{"class":589},[571,1821,1822],{"class":585},"} (${",[571,1824,377],{"class":589},[571,1826,1827],{"class":585},"}, ${",[571,1829,1635],{"class":589},[571,1831,1832],{"class":596}," ??",[571,1834,1835],{"class":585}," \"no rarity\"})`",[571,1837,1510],{"class":589},[571,1839,1841,1843,1845,1847,1850,1853,1856,1858,1861,1863,1866,1869],{"class":573,"line":1840},26,[571,1842,1810],{"class":589},[571,1844,1813],{"class":1419},[571,1846,1423],{"class":589},[571,1848,1849],{"class":585},"\"  TCGplayer market:\"",[571,1851,1852],{"class":589},", tcg.",[571,1854,1855],{"class":1419},"join",[571,1857,1423],{"class":589},[571,1859,1860],{"class":585},"\", \"",[571,1862,1683],{"class":589},[571,1864,1865],{"class":596},"||",[571,1867,1868],{"class":585}," \"no data\"",[571,1870,1510],{"class":589},[571,1872,1874,1876,1878,1880,1883,1886,1888,1890,1892,1894,1896,1898],{"class":573,"line":1873},27,[571,1875,1810],{"class":589},[571,1877,1813],{"class":1419},[571,1879,1423],{"class":589},[571,1881,1882],{"class":585},"\"  Cardmarket trend:\"",[571,1884,1885],{"class":589},", cm.",[571,1887,1855],{"class":1419},[571,1889,1423],{"class":589},[571,1891,1860],{"class":585},[571,1893,1683],{"class":589},[571,1895,1865],{"class":596},[571,1897,1868],{"class":585},[571,1899,1510],{"class":589},[571,1901,1903],{"class":573,"line":1902},28,[571,1904,1095],{"class":589},[20,1906,1907,1908,1910,1911,1913],{},"The optional chaining covers the cards that exist on only one marketplace, and ",[47,1909,1635],{}," can be ",[47,1912,502],{}," on promos.",[699,1915,1917],{"id":1916},"python-ultra-set-prices-most-expensive-first","Python: Ultra set prices, most expensive first",[562,1919,1923],{"className":1920,"code":1921,"language":1922,"meta":567,"style":567},"language-python shiki shiki-themes github-dark-default","import os\nimport requests\n\nBASE = \"https:\u002F\u002Fapi.pokewallet.io\"\nHEADERS = {\"X-API-Key\": os.environ[\"POKEWALLET_API_KEY\"]}\n\n\ndef get(path: str) -> dict:\n    res = requests.get(f\"{BASE}{path}\", headers=HEADERS, timeout=30)\n    res.raise_for_status()\n    return res.json()\n\n\npayload = get(\"\u002Fygo\u002Fprices\u002F24707\")  # Ultra or trial required\n\nrows = [\n    {\n        \"number\": row[\"card_number\"],\n        \"name\": row[\"name\"],\n        \"edition\": row[\"variant\"],\n        \"usd\": row[\"tcgplayer\"][\"market_price\"],\n        \"eur_trend\": row[\"cardmarket\"][\"trend\"],\n    }\n    for row in payload[\"data\"]\n    if row.get(\"tcgplayer\") and row.get(\"cardmarket\")\n]\n\nfor row in sorted(rows, key=lambda r: r[\"usd\"] or 0, reverse=True)[:10]:\n    print(row)\n","python",[47,1924,1925,1933,1940,1944,1953,1974,1978,1982,2004,2055,2060,2068,2072,2076,2096,2100,2110,2115,2129,2141,2153,2169,2185,2190,2210,2231,2235,2239,2293],{"__ignoreMap":567},[571,1926,1927,1930],{"class":573,"line":574},[571,1928,1929],{"class":596},"import",[571,1931,1932],{"class":589}," os\n",[571,1934,1935,1937],{"class":573,"line":600},[571,1936,1929],{"class":596},[571,1938,1939],{"class":589}," requests\n",[571,1941,1942],{"class":573,"line":999},[571,1943,1408],{"emptyLinePlaceholder":1407},[571,1945,1946,1948,1950],{"class":573,"line":1012},[571,1947,1453],{"class":581},[571,1949,1373],{"class":596},[571,1951,1952],{"class":585}," \"https:\u002F\u002Fapi.pokewallet.io\"\n",[571,1954,1955,1958,1960,1963,1965,1968,1971],{"class":573,"line":1025},[571,1956,1957],{"class":581},"HEADERS",[571,1959,1373],{"class":596},[571,1961,1962],{"class":589}," {",[571,1964,1394],{"class":585},[571,1966,1967],{"class":589},": os.environ[",[571,1969,1970],{"class":585},"\"POKEWALLET_API_KEY\"",[571,1972,1973],{"class":589},"]}\n",[571,1975,1976],{"class":573,"line":1054},[571,1977,1408],{"emptyLinePlaceholder":1407},[571,1979,1980],{"class":573,"line":1092},[571,1981,1408],{"emptyLinePlaceholder":1407},[571,1983,1984,1987,1989,1992,1995,1998,2001],{"class":573,"line":1513},[571,1985,1986],{"class":596},"def",[571,1988,1420],{"class":1419},[571,1990,1991],{"class":589},"(path: ",[571,1993,1994],{"class":581},"str",[571,1996,1997],{"class":589},") -> ",[571,1999,2000],{"class":581},"dict",[571,2002,2003],{"class":589},":\n",[571,2005,2006,2009,2011,2014,2017,2019,2022,2024,2027,2029,2032,2034,2036,2039,2041,2043,2045,2048,2050,2053],{"class":573,"line":1519},[571,2007,2008],{"class":589},"    res ",[571,2010,1576],{"class":596},[571,2012,2013],{"class":589}," requests.get(",[571,2015,2016],{"class":596},"f",[571,2018,593],{"class":585},[571,2020,2021],{"class":596},"{",[571,2023,1453],{"class":581},[571,2025,2026],{"class":596},"}{",[571,2028,1426],{"class":589},[571,2030,2031],{"class":596},"}",[571,2033,593],{"class":585},[571,2035,86],{"class":589},[571,2037,2038],{"class":577},"headers",[571,2040,1576],{"class":596},[571,2042,1957],{"class":581},[571,2044,86],{"class":589},[571,2046,2047],{"class":577},"timeout",[571,2049,1576],{"class":596},[571,2051,2052],{"class":581},"30",[571,2054,1762],{"class":589},[571,2056,2057],{"class":573,"line":1533},[571,2058,2059],{"class":589},"    res.raise_for_status()\n",[571,2061,2062,2065],{"class":573,"line":1538},[571,2063,2064],{"class":596},"    return",[571,2066,2067],{"class":589}," res.json()\n",[571,2069,2070],{"class":573,"line":1543},[571,2071,1408],{"emptyLinePlaceholder":1407},[571,2073,2074],{"class":573,"line":1563},[571,2075,1408],{"emptyLinePlaceholder":1407},[571,2077,2078,2081,2083,2086,2089,2092],{"class":573,"line":1595},[571,2079,2080],{"class":589},"payload ",[571,2082,1576],{"class":596},[571,2084,2085],{"class":589}," get(",[571,2087,2088],{"class":585},"\"\u002Fygo\u002Fprices\u002F24707\"",[571,2090,2091],{"class":589},")  ",[571,2093,2095],{"class":2094},"sH3jZ","# Ultra or trial required\n",[571,2097,2098],{"class":573,"line":1600},[571,2099,1408],{"emptyLinePlaceholder":1407},[571,2101,2102,2105,2107],{"class":573,"line":1619},[571,2103,2104],{"class":589},"rows ",[571,2106,1576],{"class":596},[571,2108,2109],{"class":589}," [\n",[571,2111,2112],{"class":573,"line":1645},[571,2113,2114],{"class":589},"    {\n",[571,2116,2117,2120,2123,2126],{"class":573,"line":1650},[571,2118,2119],{"class":585},"        \"number\"",[571,2121,2122],{"class":589},": row[",[571,2124,2125],{"class":585},"\"card_number\"",[571,2127,2128],{"class":589},"],\n",[571,2130,2131,2134,2136,2139],{"class":573,"line":1675},[571,2132,2133],{"class":585},"        \"name\"",[571,2135,2122],{"class":589},[571,2137,2138],{"class":585},"\"name\"",[571,2140,2128],{"class":589},[571,2142,2143,2146,2148,2151],{"class":573,"line":1711},[571,2144,2145],{"class":585},"        \"edition\"",[571,2147,2122],{"class":589},[571,2149,2150],{"class":585},"\"variant\"",[571,2152,2128],{"class":589},[571,2154,2155,2158,2160,2162,2165,2167],{"class":573,"line":1717},[571,2156,2157],{"class":585},"        \"usd\"",[571,2159,2122],{"class":589},[571,2161,762],{"class":585},[571,2163,2164],{"class":589},"][",[571,2166,1033],{"class":585},[571,2168,2128],{"class":589},[571,2170,2171,2174,2176,2179,2181,2183],{"class":573,"line":1735},[571,2172,2173],{"class":585},"        \"eur_trend\"",[571,2175,2122],{"class":589},[571,2177,2178],{"class":585},"\"cardmarket\"",[571,2180,2164],{"class":589},[571,2182,1062],{"class":585},[571,2184,2128],{"class":589},[571,2186,2187],{"class":573,"line":1765},[571,2188,2189],{"class":589},"    }\n",[571,2191,2192,2195,2198,2201,2204,2207],{"class":573,"line":1802},[571,2193,2194],{"class":596},"    for",[571,2196,2197],{"class":589}," row ",[571,2199,2200],{"class":596},"in",[571,2202,2203],{"class":589}," payload[",[571,2205,2206],{"class":585},"\"data\"",[571,2208,2209],{"class":589},"]\n",[571,2211,2212,2215,2218,2220,2222,2225,2227,2229],{"class":573,"line":1807},[571,2213,2214],{"class":596},"    if",[571,2216,2217],{"class":589}," row.get(",[571,2219,762],{"class":585},[571,2221,1683],{"class":589},[571,2223,2224],{"class":596},"and",[571,2226,2217],{"class":589},[571,2228,2178],{"class":585},[571,2230,1762],{"class":589},[571,2232,2233],{"class":573,"line":1840},[571,2234,2209],{"class":589},[571,2236,2237],{"class":573,"line":1873},[571,2238,1408],{"emptyLinePlaceholder":1407},[571,2240,2241,2243,2245,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2276,2279,2281,2284,2287,2290],{"class":573,"line":1902},[571,2242,1603],{"class":596},[571,2244,2197],{"class":589},[571,2246,2200],{"class":596},[571,2248,2249],{"class":581}," sorted",[571,2251,2252],{"class":589},"(rows, ",[571,2254,2255],{"class":577},"key",[571,2257,2258],{"class":596},"=lambda",[571,2260,2261],{"class":589}," r: r[",[571,2263,2264],{"class":585},"\"usd\"",[571,2266,2267],{"class":589},"] ",[571,2269,2270],{"class":596},"or",[571,2272,2273],{"class":581}," 0",[571,2275,86],{"class":589},[571,2277,2278],{"class":577},"reverse",[571,2280,1576],{"class":596},[571,2282,2283],{"class":581},"True",[571,2285,2286],{"class":589},")[:",[571,2288,2289],{"class":581},"10",[571,2291,2292],{"class":589},"]:\n",[571,2294,2296,2299],{"class":573,"line":2295},29,[571,2297,2298],{"class":581},"    print",[571,2300,2301],{"class":589},"(row)\n",[20,2303,2304,2305,2309,2310,2314],{},"Without Ultra, this call fails, so catch the error and fall back to the single-card endpoint. There are also an ",[82,2306,2308],{"href":2307},"\u002Fdevelopers\u002Fsdk","official TypeScript and Python SDK",", with typed results and automatic pagination, and a ",[82,2311,2313],{"href":2312},"\u002Fdevelopers\u002Fmcp","hosted MCP server"," if you'd rather ask an AI client for prices.",[20,2316,2317,2320,2321,2324],{},[47,2318,2319],{},"card_text"," can contain HTML ",[47,2322,2323],{},"\u003Cbr>"," tags and Windows line endings, so strip them before rendering:",[562,2326,2328],{"className":1358,"code":2327,"language":1360,"meta":567,"style":567},"const clean = (text) => text?.replace(\u002F\u003Cbr>\\s*\u002Fg, \"\\n\").replace(\u002F\\r\u002Fg, \"\").trim();\n",[47,2329,2330],{"__ignoreMap":567},[571,2331,2332,2334,2337,2339,2341,2344,2346,2348,2351,2354,2356,2359,2362,2365,2368,2371,2373,2375,2378,2380,2383,2385,2387,2389,2392,2394,2396,2398,2401,2403,2406],{"class":573,"line":574},[571,2333,1367],{"class":596},[571,2335,2336],{"class":1419}," clean",[571,2338,1373],{"class":596},[571,2340,712],{"class":589},[571,2342,2343],{"class":577},"text",[571,2345,1683],{"class":589},[571,2347,1686],{"class":596},[571,2349,2350],{"class":589}," text?.",[571,2352,2353],{"class":1419},"replace",[571,2355,1423],{"class":589},[571,2357,2358],{"class":585},"\u002F\u003Cbr>",[571,2360,2361],{"class":581},"\\s",[571,2363,2364],{"class":596},"*",[571,2366,2367],{"class":585},"\u002F",[571,2369,2370],{"class":596},"g",[571,2372,86],{"class":589},[571,2374,593],{"class":585},[571,2376,2377],{"class":596},"\\n",[571,2379,593],{"class":585},[571,2381,2382],{"class":589},").",[571,2384,2353],{"class":1419},[571,2386,1423],{"class":589},[571,2388,2367],{"class":585},[571,2390,2391],{"class":581},"\\r",[571,2393,2367],{"class":585},[571,2395,2370],{"class":596},[571,2397,86],{"class":589},[571,2399,2400],{"class":585},"\"\"",[571,2402,2382],{"class":589},[571,2404,2405],{"class":1419},"trim",[571,2407,1530],{"class":589},[113,2409,2411],{"id":2410},"how-it-compares-to-ygoprodeck","How It Compares to YGOPRODeck",[20,2413,2414,2417,2418,2424,2425,2428,2429,2432],{},[25,2415,2416],{},"YGOPRODeck"," is the obvious comparison, and a good one. According to its ",[82,2419,2423],{"href":2420,"rel":2421},"https:\u002F\u002Fygoprodeck.com\u002Fapi-guide\u002F",[2422],"nofollow","API guide"," (checked November 7, 2026), the API is free and needs no key, its ",[47,2426,2427],{},"cardinfo.php"," endpoint covers the full card database, and each card's ",[47,2430,2431],{},"card_prices"," lists Cardmarket (€), TCGplayer ($), eBay ($), Amazon ($) and CoolStuffInc ($). It also states the rules: 20 requests per second (going over blocks you for an hour), card data cached on its side for two days, and images that you should download once and host yourself rather than hotlink. If you build a deck tool or a card database for one game, it may be all you need.",[20,2434,2435,2436,2438],{},"The guide also says each price in ",[47,2437,2431],{}," is the lowest found across that card's versions. That is the main difference for a price tracker. PokéWallet, which is our product, works differently:",[118,2440,2441,2450,2469],{},[121,2442,2443,2446,2447,2449],{},[25,2444,2445],{},"Prices per version and edition."," The regular and the Extended Art ",[710,2448,743],{}," are separate cards ($2.77 and $127.19 on TCGplayer), and TCGplayer prices come per edition, with low, mid, high and market for each.",[121,2451,2452,2455,2456,86,2458,86,2460,86,2462,86,2464,41,2466,2468],{},[25,2453,2454],{},"Cardmarket's own averages."," Each Cardmarket price carries ",[47,2457,876],{},[47,2459,879],{},[47,2461,882],{},[47,2463,885],{},[47,2465,888],{},[47,2467,891],{},", so you can smooth a spike without storing history yourself.",[121,2470,2471,2474,2475,2477,2478,2481],{},[25,2472,2473],{},"One key, twelve games."," The same ",[47,2476,559],{}," and the same response shape cover Pokémon, One Piece, Magic, Lorcana, Riftbound and ",[82,2479,2480],{"href":105},"the rest",". If your product spans several games, you write one client.",[20,2483,2484],{},"What it does not do: no eBay or Amazon prices, no grading data and no price history for Yu-Gi-Oh!. History exists only for Pokémon. Prices are daily snapshots, so don't use them for second-by-second arbitrage. And unlike YGOPRODeck, PokéWallet needs a key, with a free tier of 1,000 requests a day.",[20,2486,2487],{},"My recommendation: if you need card data and a single price per card, YGOPRODeck is free and fine. If you need prices per print and edition, Cardmarket and TCGplayer side by side, or a second game, use one multi-game key from day one and skip the rewrite later.",[200,2489],{},[113,2491,2493],{"id":2492},"frequently-asked-questions","Frequently Asked Questions",[699,2495,2497],{"id":2496},"is-there-a-free-yu-gi-oh-price-api","Is there a free Yu-Gi-Oh! price API?",[20,2499,2500],{},"Yes. The PokéWallet free tier gives you 100 requests\u002Fhour and 1,000\u002Fday with no credit card, and single-card and search responses include TCGplayer and Cardmarket prices. YGOPRODeck is free too and needs no key. Whole-set prices and analytics on PokéWallet require Ultra or the 7-day trial.",[699,2502,2504],{"id":2503},"does-the-api-have-cardmarket-prices-for-yu-gi-oh","Does the API have Cardmarket prices for Yu-Gi-Oh!?",[20,2506,2507,2508,41,2510,940,2512,86,2514,86,2516,86,2518,86,2520,41,2522,2524],{},"Yes. Each card carries Cardmarket prices in EUR, split into ",[47,2509,865],{},[47,2511,918],{},[47,2513,876],{},[47,2515,879],{},[47,2517,882],{},[47,2519,885],{},[47,2521,888],{},[47,2523,891],{},". Each print version, such as V.1 and V.2 of the same card, is a separate product with its own prices.",[699,2526,2528],{"id":2527},"can-i-get-1st-edition-and-unlimited-prices-separately","Can I get 1st Edition and Unlimited prices separately?",[20,2530,2531,2532,2534,2535,2537,2538,2540],{},"Yes. TCGplayer prices come per edition in ",[47,2533,895],{},", so a card printed in both returns one entry for ",[47,2536,173],{}," and one for ",[47,2539,176],{},", each with low, mid, high and market prices.",[699,2542,2544],{"id":2543},"how-often-are-yu-gi-oh-prices-updated","How often are Yu-Gi-Oh! prices updated?",[20,2546,2547,2548,2550],{},"TCGplayer and Cardmarket prices refresh once a day. The ",[47,2549,914],{}," field on each price shows the last time that price changed, not the time you made the request.",[699,2552,2554],{"id":2553},"how-many-yu-gi-oh-sets-does-the-api-cover","How many Yu-Gi-Oh! sets does the API cover?",[20,2556,2557,2558,2561],{},"The set list reported 709 sets on November 7, 2026, including promo sets, Cardmarket-only sets and Japanese sets. ",[47,2559,2560],{},"GET \u002Fygo\u002Fsets"," returns them all with card counts, sealed counts, language and release date.",[699,2563,2565],{"id":2564},"do-i-need-ultra-to-get-yu-gi-oh-prices","Do I need Ultra to get Yu-Gi-Oh! prices?",[20,2567,2568],{},"Not for individual cards. Card lookups and search include prices on every plan. You need Ultra (€29\u002Fmonth) or the 7-day trial for prices of whole sets, statistics, completion value, trending sets and top cards. Pro is not enough for Yu-Gi-Oh!.",[699,2570,2572],{"id":2571},"can-i-use-one-api-key-for-yu-gi-oh-and-other-card-games","Can I use one API key for Yu-Gi-Oh! and other card games?",[20,2574,2575,2576,2578,2579,70],{},"Yes. One key covers twelve games, from Pokémon and One Piece to Magic, Yu-Gi-Oh!, Lorcana and Riftbound, each under its own path such as ",[47,2577,49],{}," or ",[47,2580,2581],{},"\u002Fmtg\u002F",[200,2583],{},[15,2585,18,2587],{"style":2586},"background: rgba(107, 76, 154, 0.12); border-left: 4px solid #6B4C9A; padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 4px;",[20,2588,23,2590,2593,2594,2596],{"style":2589},"margin: 0; font-size: 0.85rem; color: #e0e0e0;",[25,2591,2592],{},"💬 Price disclaimer:"," All figures come from PokéWallet API responses captured on November 7, 2026. TCGplayer prices are in USD and Cardmarket prices are in EUR; each carries its own ",[47,2595,914],{}," stamp. They are daily snapshots, not quotes, and not financial advice.\n  ",[200,2598],{},[113,2600,2602],{"id":2601},"start-building-with-the-pokéwallet-api","Start Building with the PokéWallet API",[20,2604,2605,2606,2609,2610,2613],{},"Everything in this guide runs on the free tier up to the Ultra sections, and the same key works across the other eleven games. Get a key, search a card, and see both marketplaces in one response. Our ",[82,2607,2608],{"href":100},"multi-game API overview"," shows the rest of the catalog, and the ",[82,2611,2612],{"href":110},"Yu-Gi-Oh! docs"," cover every parameter.",[118,2615,2616,2623,2630,2636,2643],{},[121,2617,2618,2619,2622],{},"🔑 ",[25,2620,2621],{},"One API key for 12 trading card games"," — Pokémon, One Piece, Magic, Yu-Gi-Oh!, Lorcana, Riftbound and more",[121,2624,2625,2626,2629],{},"📊 ",[25,2627,2628],{},"TCGplayer & Cardmarket prices"," for every card, refreshed daily",[121,2631,123,2632,2635],{},[25,2633,2634],{},"Free plan"," with 1,000 requests a day — sets, cards, search and images on every game",[121,2637,2638,2639,2642],{},"⚡ ",[25,2640,2641],{},"Ultra unlocks set-wide prices and analytics for every game"," — try it free for 7 days from your dashboard",[121,2644,2645,2646,2649,2650],{},"💬 ",[25,2647,2648],{},"Developer support"," in our ",[82,2651,2654],{"href":2652,"rel":2653},"https:\u002F\u002Fdiscord.gg\u002FznDxEjmDVP",[2422],"Discord",[20,2656,2657],{},[25,2658,2659],{},"Get Started:",[118,2661,2662,2669,2675],{},[121,2663,2664,2665],{},"🚀 ",[82,2666,2668],{"href":2667},"\u002Fauth\u002Flogin?signup=1","Get a free API key",[121,2670,2671,2672],{},"📖 Read the ",[82,2673,2674],{"href":110},"API documentation",[121,2676,2677,2678],{},"💳 Compare plans on the ",[82,2679,2681],{"href":2680},"\u002Fpricing","pricing page",[200,2683],{},[20,2685,2686],{},[710,2687,2688],{},"This article is for informational purposes only and is not financial advice. Details reflect information available at the time of writing; release dates, pricing and set contents are subject to change. Card prices are volatile — always verify current market pricing before buying or selling.",[2690,2691,2692],"style",{},"html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html pre.shiki code .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}html pre.shiki code .suJrU, html code.shiki .suJrU{--shiki-default:#FF7B72}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sPWt5, html code.shiki .sPWt5{--shiki-default:#7EE787}html pre.shiki code .sc3cj, html code.shiki .sc3cj{--shiki-default:#D2A8FF}html pre.shiki code .sH3jZ, html code.shiki .sH3jZ{--shiki-default:#8B949E}",{"title":567,"searchDepth":600,"depth":600,"links":2694},[2695,2696,2697,2698,2702,2708,2712,2713,2722],{"id":115,"depth":600,"text":116},{"id":204,"depth":600,"text":205},{"id":548,"depth":600,"text":549},{"id":696,"depth":600,"text":697,"children":2699},[2700,2701],{"id":701,"depth":999,"text":702},{"id":790,"depth":999,"text":791},{"id":932,"depth":600,"text":933,"children":2703},[2704,2705,2706,2707],{"id":957,"depth":999,"text":304},{"id":1106,"depth":999,"text":1107},{"id":1181,"depth":999,"text":1182},{"id":1239,"depth":999,"text":1240},{"id":1344,"depth":600,"text":1345,"children":2709},[2710,2711],{"id":1354,"depth":999,"text":1355},{"id":1916,"depth":999,"text":1917},{"id":2410,"depth":600,"text":2411},{"id":2492,"depth":600,"text":2493,"children":2714},[2715,2716,2717,2718,2719,2720,2721],{"id":2496,"depth":999,"text":2497},{"id":2503,"depth":999,"text":2504},{"id":2527,"depth":999,"text":2528},{"id":2543,"depth":999,"text":2544},{"id":2553,"depth":999,"text":2554},{"id":2564,"depth":999,"text":2565},{"id":2571,"depth":999,"text":2572},{"id":2601,"depth":600,"text":2602},"Developers","2026-11-11","Yu-Gi-Oh! price API with TCGplayer USD and Cardmarket EUR prices in one call. 709 sets, free catalog, set prices and analytics on Ultra. One key, 12 games.","md","\u002Fblog\u002Fyu-gi-oh\u002F2026\u002F11\u002Fyugioh-price-api-tcgplayer-cardmarket.webp","Dark Magician in his purple armor and pointed helmet raising his staff beside a roaring Blue-Eyes White Dragon with glowing blue eyes, above a developer desk where Yu-Gi-Oh! cards are fanned next to a laptop, in cool violet and teal light.",{},"\u002Fblog\u002Fyu-gi-oh\u002F2026\u002F11\u002Fyugioh-price-api-tcgplayer-cardmarket","12 min read",{"title":5,"description":2725},"blog\u002Fyu-gi-oh\u002F2026\u002F11\u002Fyugioh-price-api-tcgplayer-cardmarket",[2735,2736,2737,2738,2739,2740,2741],"yugioh price api","yu-gi-oh card price api","cardmarket api yugioh","yugioh card database api","yugioh card prices api","tcgplayer api yugioh","tcg api",null,"i92FtFcKGqRpDFccspaWW7ZerxOLdJFvrkOxQw0rGLc",[],[2746,2749,2752],{"path":2747,"title":2748},"\u002Fblog\u002Fmagic\u002F2026\u002F11\u002Fmtg-price-api-tcgplayer-cardmarket","MTG Price API: TCGplayer & CardMarket in One Call",{"path":2750,"title":2751},"\u002Fblog\u002Fpokemon\u002F2026\u002F10\u002Fpokemon-tcg-api-comparison-pokewallet-tcgdex-pokemontcgio","Pokémon TCG API Comparison: PokémonTCG.io Alternatives",{"path":2753,"title":2754},"\u002Fblog\u002Florcana\u002F2026\u002F10\u002Florcana-api-card-prices-tcgplayer-cardmarket","Disney Lorcana API: Card Prices from TCGplayer & CardMarket",1794382468679]