[{"data":1,"prerenderedAt":2049},["ShallowReactive",2],{"blog-build-pokemon-card-price-tracker-pokewallet-api-tutorial":3,"blog-related-build-pokemon-card-price-tracker-pokewallet-api-tutorial":2039},{"id":4,"title":5,"author":6,"body":7,"category":2015,"date":2016,"description":2017,"extension":2018,"image":2019,"imageAlt":2020,"imageCredit":6,"meta":2021,"navigation":547,"path":2022,"readTime":2023,"seo":2024,"stem":2025,"tags":2026,"updatedAt":2037,"__hash__":2038},"content\u002Fblog\u002Fpokemon\u002F2026\u002F03\u002Fbuild-pokemon-card-price-tracker-pokewallet-api-tutorial.md","How to Build a Pokémon Card Price Tracker with PokéWallet API: Step-by-Step","PokéWallet Team",{"type":8,"value":9,"toc":1992},"minimark",[10,14,29,67,76,83,86,91,127,130,161,163,168,171,189,193,259,261,265,268,287,308,319,321,325,331,335,338,359,364,502,504,508,515,1247,1249,1253,1259,1725,1727,1731,1739,1783,1785,1789,1797,1805,1809,1820,1824,1834,1838,1844,1848,1867,1871,1881,1883,1887,1893,1896,1901,1944,1949,1982,1988],[11,12,5],"h1",{"id":13},"how-to-build-a-pokémon-card-price-tracker-with-pokéwallet-api-step-by-step",[15,16,18,19],"div",{"style":17},"background: rgba(107, 76, 154, 0.15); border-left: 4px solid #6B4C9A; 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",{},"💻 BUILDER'S GUIDE:"," Stop manually checking prices. In this tutorial, we'll build a functional price tracking dashboard that monitors high-value cards and alerts you when they hit your \"Buy\" price. We'll use JavaScript (Node.js) and the PokéWallet API for unified market data.\n  ",[30,31,32],"blockquote",{},[20,33,34,37,38,41,42,46,47,50,51,54,55,58,59,62,63,66],{},[25,35,36],{},"Quick Answer:"," To build a Pokémon card price tracker, you need an API that provides ",[25,39,40],{},"unified marketplace data"," (like PokéWallet API). Start by (1) generating your production API key (",[43,44,45],"code",{},"pk_live_...","), (2) fetching card data via the ",[43,48,49],{},"\u002Fcards\u002F:id"," endpoint, (3) accessing the ",[43,52,53],{},"tcgplayer"," or ",[43,56,57],{},"cardmarket"," price arrays, and (4) running a periodic check to compare current rates against your targets. This tutorial provides the full code for both ",[25,60,61],{},"JavaScript"," and ",[25,64,65],{},"Python"," implementations.",[20,68,69,70,75],{},"Tracking Pokémon card prices in 2026 requires precision. With the market moving faster than a Quick Attack—especially with the recent launch of ",[71,72,74],"a",{"href":73},"\u002Fblog\u002Fmega-evolution-ascended-heroes-release-guide","Ascended Heroes","—manual tracking is a recipe for missing the best deals.",[20,77,78,79,82],{},"Whether you're building a personal dashboard or a high-traffic collection app, the foundation is the same: ",[25,80,81],{},"reliable data infrastructure",".",[20,84,85],{},"In this guide, we'll walk through building a \"Sniper Dashboard\" that watches the market for you.",[87,88,90],"h3",{"id":89},"what-youll-build","What You'll Build",[92,93,94,106,113],"ul",{},[95,96,97,98,101,102,105],"li",{},"📡 ",[25,99,100],{},"Real-time monitor"," for specific cards using unified ",[43,103,104],{},"pk_"," identifiers.",[95,107,108,109,112],{},"📊 ",[25,110,111],{},"Detailed Price Analysis"," supporting multiple variants (Normal, Holofoil, Reverse Holo).",[95,114,115,116,119,120,123,124,82],{},"🔔 ",[25,117,118],{},"Automated Alert System"," that logs a notification when prices drop based on TCGPlayer ",[43,121,122],{},"market_price"," or CardMarket ",[43,125,126],{},"trend",[128,129],"hr",{},[15,131,18,133,18,137],{"style":132},"background: linear-gradient(135deg, rgba(107, 76, 154, 0.1), rgba(107, 76, 154, 0.05)); border: 1px solid rgba(107, 76, 154, 0.3); border-radius: 8px; padding: 1.5rem; margin: 2rem 0; text-align: center;",[20,134,136],{"style":135},"margin: 0 0 1rem 0; font-weight: 600; font-size: 1.1rem; color: #e0e0e0;","⚡ Tutorial Steps",[15,138,23,140,23,145,23,149,23,153,23,157,18],{"style":139},"display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center;",[71,141,144],{"href":142,"style":143},"#step-1-setup-and-prerequisites","background: rgba(107, 76, 154, 0.2); color: #B794F6; padding: 0.5rem 1rem; border-radius: 6px; text-decoration: none; font-size: 0.9rem; border: 1px solid rgba(107, 76, 154, 0.4);","Step 1: Setup",[71,146,148],{"href":147,"style":143},"#step-2-authentication-and-keys","Step 2: Auth",[71,150,152],{"href":151,"style":143},"#step-3-understanding-the-data-structure","Step 3: Data Structure",[71,154,156],{"href":155,"style":143},"#step-4-the-tracker-code","Step 4: The Code",[71,158,160],{"href":159,"style":143},"#python-bonus-the-data-scientist-approach","Python Version",[128,162],{},[164,165,167],"h2",{"id":166},"step-1-setup-and-prerequisites","Step 1: Setup and Prerequisites",[20,169,170],{},"Before we write code, ensure you have the following ready:",[172,173,174,183],"ol",{},[95,175,176,54,179,182],{},[25,177,178],{},"Node.js (v18+)",[25,180,181],{},"Python (3.9+)"," installed.",[95,184,185,188],{},[25,186,187],{},"Code Editor:"," VS Code is recommended.",[87,190,192],{"id":191},"project-structure-nodejs","Project Structure (Node.js)",[194,195,200],"pre",{"className":196,"code":197,"language":198,"meta":199,"style":199},"language-bash shiki shiki-themes github-dark-default","mkdir poke-price-tracker\ncd poke-price-tracker\nnpm init -y\nnpm install dotenv\ntouch index.js .env\n","bash","",[43,201,202,215,224,236,247],{"__ignoreMap":199},[203,204,207,211],"span",{"class":205,"line":206},"line",1,[203,208,210],{"class":209},"sQhOw","mkdir",[203,212,214],{"class":213},"s9uIt"," poke-price-tracker\n",[203,216,218,222],{"class":205,"line":217},2,[203,219,221],{"class":220},"sFSAA","cd",[203,223,214],{"class":213},[203,225,227,230,233],{"class":205,"line":226},3,[203,228,229],{"class":209},"npm",[203,231,232],{"class":213}," init",[203,234,235],{"class":220}," -y\n",[203,237,239,241,244],{"class":205,"line":238},4,[203,240,229],{"class":209},[203,242,243],{"class":213}," install",[203,245,246],{"class":213}," dotenv\n",[203,248,250,253,256],{"class":205,"line":249},5,[203,251,252],{"class":209},"touch",[203,254,255],{"class":213}," index.js",[203,257,258],{"class":213}," .env\n",[128,260],{},[164,262,264],{"id":263},"step-2-authentication-and-keys","Step 2: Authentication and Keys",[20,266,267],{},"The PokéWallet API uses two environments:",[92,269,270,279],{},[95,271,272,275,276,82],{},[25,273,274],{},"Production:"," Keys starting with ",[43,277,278],{},"pk_live_",[95,280,281,275,284,82],{},[25,282,283],{},"Development:",[43,285,286],{},"pk_test_",[172,288,289,298,301],{},[95,290,291,292,82],{},"Go to ",[71,293,297],{"href":294,"rel":295},"https:\u002F\u002Fwww.pokewallet.io\u002Fauth\u002Flogin",[296],"nofollow","PokéWallet Dashboard",[95,299,300],{},"Generate an API Key.",[95,302,303,304,307],{},"Add it to your ",[43,305,306],{},".env"," file:",[194,309,313],{"className":310,"code":311,"language":312,"meta":199,"style":199},"language-env shiki shiki-themes github-dark-default","POKEWALLET_API_KEY=pk_live_your_key_here\n","env",[43,314,315],{"__ignoreMap":199},[203,316,317],{"class":205,"line":206},[203,318,311],{},[128,320],{},[164,322,324],{"id":323},"step-3-understanding-the-data-structure","Step 3: Understanding the Data Structure",[20,326,327,328,330],{},"The PokéWallet API provides a unified response. When you query ",[43,329,49],{},", you get a structured JSON object.",[87,332,334],{"id":333},"tcgplayer-vs-cardmarket-prices","TCGPlayer vs CardMarket Prices",[20,336,337],{},"The API handles variants differently for each market:",[92,339,340,350],{},[95,341,342,345,346,349],{},[25,343,344],{},"TCGPlayer:"," Uses ",[43,347,348],{},"sub_type_name"," (Normal, Holofoil, Reverse Holofoil, 1st Edition).",[95,351,352,345,355,358],{},[25,353,354],{},"CardMarket:",[43,356,357],{},"variant_type"," (normal, holo).",[20,360,361],{},[25,362,363],{},"Simplified Response Schema:",[194,365,369],{"className":366,"code":367,"language":368,"meta":199,"style":199},"language-json shiki shiki-themes github-dark-default","{\n  \"id\": \"pk_xxx\",\n  \"card_info\": { \"name\": \"Charizard VMAX\" },\n  \"tcgplayer\": {\n    \"prices\": [{ \"sub_type_name\": \"Normal\", \"market_price\": 285.00 }]\n  },\n  \"cardmarket\": {\n    \"prices\": [{ \"variant_type\": \"normal\", \"avg30\": 280.50 }]\n  }\n}\n","json",[43,370,371,377,392,411,419,449,455,463,490,496],{"__ignoreMap":199},[203,372,373],{"class":205,"line":206},[203,374,376],{"class":375},"sZEs4","{\n",[203,378,379,383,386,389],{"class":205,"line":217},[203,380,382],{"class":381},"sPWt5","  \"id\"",[203,384,385],{"class":375},": ",[203,387,388],{"class":213},"\"pk_xxx\"",[203,390,391],{"class":375},",\n",[203,393,394,397,400,403,405,408],{"class":205,"line":226},[203,395,396],{"class":381},"  \"card_info\"",[203,398,399],{"class":375},": { ",[203,401,402],{"class":381},"\"name\"",[203,404,385],{"class":375},[203,406,407],{"class":213},"\"Charizard VMAX\"",[203,409,410],{"class":375}," },\n",[203,412,413,416],{"class":205,"line":238},[203,414,415],{"class":381},"  \"tcgplayer\"",[203,417,418],{"class":375},": {\n",[203,420,421,424,427,430,432,435,438,441,443,446],{"class":205,"line":249},[203,422,423],{"class":381},"    \"prices\"",[203,425,426],{"class":375},": [{ ",[203,428,429],{"class":381},"\"sub_type_name\"",[203,431,385],{"class":375},[203,433,434],{"class":213},"\"Normal\"",[203,436,437],{"class":375},", ",[203,439,440],{"class":381},"\"market_price\"",[203,442,385],{"class":375},[203,444,445],{"class":220},"285.00",[203,447,448],{"class":375}," }]\n",[203,450,452],{"class":205,"line":451},6,[203,453,454],{"class":375},"  },\n",[203,456,458,461],{"class":205,"line":457},7,[203,459,460],{"class":381},"  \"cardmarket\"",[203,462,418],{"class":375},[203,464,466,468,470,473,475,478,480,483,485,488],{"class":205,"line":465},8,[203,467,423],{"class":381},[203,469,426],{"class":375},[203,471,472],{"class":381},"\"variant_type\"",[203,474,385],{"class":375},[203,476,477],{"class":213},"\"normal\"",[203,479,437],{"class":375},[203,481,482],{"class":381},"\"avg30\"",[203,484,385],{"class":375},[203,486,487],{"class":220},"280.50",[203,489,448],{"class":375},[203,491,493],{"class":205,"line":492},9,[203,494,495],{"class":375},"  }\n",[203,497,499],{"class":205,"line":498},10,[203,500,501],{"class":375},"}\n",[128,503],{},[164,505,507],{"id":506},"step-4-the-tracker-code-javascript","Step 4: The Tracker Code (JavaScript)",[20,509,510,511,514],{},"We'll use the native ",[43,512,513],{},"fetch"," API (available in Node.js 18+). This script watches the marketplace and logs alerts when a \"buy\" price is hit.",[194,516,520],{"className":517,"code":518,"language":519,"meta":199,"style":199},"language-javascript shiki shiki-themes github-dark-default","require('dotenv').config();\n\nconst API_KEY = process.env.POKEWALLET_API_KEY;\nconst BASE_URL = 'https:\u002F\u002Fapi.pokewallet.io';\n\n\u002F\u002F Configuration: IDs with 'pk_' prefix for TCG cards\nconst WATCHLIST = [\n  { id: 'pk_720461...', target: 120.00, variant: 'Normal' },\n  { id: 'pk_982341...', target: 85.00,  variant: 'Holofoil' },\n];\n\nasync function getPrice(cardId, preferredVariant) {\n  try {\n    const response = await fetch(`${BASE_URL}\u002Fcards\u002F${cardId}`, {\n      headers: { 'X-API-Key': API_KEY }\n    });\n\n    if (!response.ok) throw new Error(`API Error: ${response.status}`);\n\n    const data = await response.json();\n    \n    \u002F\u002F Find the specific variant in TCGPlayer prices\n    const priceObj = data.tcgplayer.prices.find(p => p.sub_type_name === preferredVariant);\n    \n    return {\n      name: data.card_info.name,\n      price: priceObj ? priceObj.market_price : null\n    };\n  } catch (err) {\n    console.error(`Error tracking ${cardId}:`, err.message);\n    return null;\n  }\n}\n\nasync function runTracker() {\n  console.log(`[${new Date().toISOString()}] Checking Market...`);\n  \n  for (const item of WATCHLIST) {\n    const result = await getPrice(item.id, item.variant);\n    \n    if (result && result.price \u003C= item.target) {\n      console.log(`🚨 DEAL: ${result.name} (${item.variant}) is $${result.price}!`);\n    } else if (result) {\n      console.log(`⌛ ${result.name}: $${result.price} (Target: $${item.target})`);\n    }\n  }\n}\n\n\u002F\u002F Track every hour\nsetInterval(runTracker, 60 * 60 * 1000);\nrunTracker();\n","javascript",[43,521,522,543,549,570,584,588,594,606,628,648,653,658,683,692,728,745,751,756,798,803,822,828,834,866,871,879,885,903,909,921,943,953,958,963,968,981,1015,1021,1041,1058,1063,1083,1130,1145,1187,1193,1198,1203,1208,1214,1239],{"__ignoreMap":199},[203,523,524,528,531,534,537,540],{"class":205,"line":206},[203,525,527],{"class":526},"sc3cj","require",[203,529,530],{"class":375},"(",[203,532,533],{"class":213},"'dotenv'",[203,535,536],{"class":375},").",[203,538,539],{"class":526},"config",[203,541,542],{"class":375},"();\n",[203,544,545],{"class":205,"line":217},[203,546,548],{"emptyLinePlaceholder":547},true,"\n",[203,550,551,555,558,561,564,567],{"class":205,"line":226},[203,552,554],{"class":553},"suJrU","const",[203,556,557],{"class":220}," API_KEY",[203,559,560],{"class":553}," =",[203,562,563],{"class":375}," process.env.",[203,565,566],{"class":220},"POKEWALLET_API_KEY",[203,568,569],{"class":375},";\n",[203,571,572,574,577,579,582],{"class":205,"line":238},[203,573,554],{"class":553},[203,575,576],{"class":220}," BASE_URL",[203,578,560],{"class":553},[203,580,581],{"class":213}," 'https:\u002F\u002Fapi.pokewallet.io'",[203,583,569],{"class":375},[203,585,586],{"class":205,"line":249},[203,587,548],{"emptyLinePlaceholder":547},[203,589,590],{"class":205,"line":451},[203,591,593],{"class":592},"sH3jZ","\u002F\u002F Configuration: IDs with 'pk_' prefix for TCG cards\n",[203,595,596,598,601,603],{"class":205,"line":457},[203,597,554],{"class":553},[203,599,600],{"class":220}," WATCHLIST",[203,602,560],{"class":553},[203,604,605],{"class":375}," [\n",[203,607,608,611,614,617,620,623,626],{"class":205,"line":465},[203,609,610],{"class":375},"  { id: ",[203,612,613],{"class":213},"'pk_720461...'",[203,615,616],{"class":375},", target: ",[203,618,619],{"class":220},"120.00",[203,621,622],{"class":375},", variant: ",[203,624,625],{"class":213},"'Normal'",[203,627,410],{"class":375},[203,629,630,632,635,637,640,643,646],{"class":205,"line":492},[203,631,610],{"class":375},[203,633,634],{"class":213},"'pk_982341...'",[203,636,616],{"class":375},[203,638,639],{"class":220},"85.00",[203,641,642],{"class":375},",  variant: ",[203,644,645],{"class":213},"'Holofoil'",[203,647,410],{"class":375},[203,649,650],{"class":205,"line":498},[203,651,652],{"class":375},"];\n",[203,654,656],{"class":205,"line":655},11,[203,657,548],{"emptyLinePlaceholder":547},[203,659,661,664,667,670,672,675,677,680],{"class":205,"line":660},12,[203,662,663],{"class":553},"async",[203,665,666],{"class":553}," function",[203,668,669],{"class":526}," getPrice",[203,671,530],{"class":375},[203,673,674],{"class":209},"cardId",[203,676,437],{"class":375},[203,678,679],{"class":209},"preferredVariant",[203,681,682],{"class":375},") {\n",[203,684,686,689],{"class":205,"line":685},13,[203,687,688],{"class":553},"  try",[203,690,691],{"class":375}," {\n",[203,693,695,698,701,703,706,709,711,714,717,720,722,725],{"class":205,"line":694},14,[203,696,697],{"class":553},"    const",[203,699,700],{"class":220}," response",[203,702,560],{"class":553},[203,704,705],{"class":553}," await",[203,707,708],{"class":526}," fetch",[203,710,530],{"class":375},[203,712,713],{"class":213},"`${",[203,715,716],{"class":220},"BASE_URL",[203,718,719],{"class":213},"}\u002Fcards\u002F${",[203,721,674],{"class":375},[203,723,724],{"class":213},"}`",[203,726,727],{"class":375},", {\n",[203,729,731,734,737,739,742],{"class":205,"line":730},15,[203,732,733],{"class":375},"      headers: { ",[203,735,736],{"class":213},"'X-API-Key'",[203,738,385],{"class":375},[203,740,741],{"class":220},"API_KEY",[203,743,744],{"class":375}," }\n",[203,746,748],{"class":205,"line":747},16,[203,749,750],{"class":375},"    });\n",[203,752,754],{"class":205,"line":753},17,[203,755,548],{"emptyLinePlaceholder":547},[203,757,759,762,765,768,771,774,777,780,782,785,788,790,793,795],{"class":205,"line":758},18,[203,760,761],{"class":553},"    if",[203,763,764],{"class":375}," (",[203,766,767],{"class":553},"!",[203,769,770],{"class":375},"response.ok) ",[203,772,773],{"class":553},"throw",[203,775,776],{"class":553}," new",[203,778,779],{"class":526}," Error",[203,781,530],{"class":375},[203,783,784],{"class":213},"`API Error: ${",[203,786,787],{"class":375},"response",[203,789,82],{"class":213},[203,791,792],{"class":375},"status",[203,794,724],{"class":213},[203,796,797],{"class":375},");\n",[203,799,801],{"class":205,"line":800},19,[203,802,548],{"emptyLinePlaceholder":547},[203,804,806,808,811,813,815,818,820],{"class":205,"line":805},20,[203,807,697],{"class":553},[203,809,810],{"class":220}," data",[203,812,560],{"class":553},[203,814,705],{"class":553},[203,816,817],{"class":375}," response.",[203,819,368],{"class":526},[203,821,542],{"class":375},[203,823,825],{"class":205,"line":824},21,[203,826,827],{"class":375},"    \n",[203,829,831],{"class":205,"line":830},22,[203,832,833],{"class":592},"    \u002F\u002F Find the specific variant in TCGPlayer prices\n",[203,835,837,839,842,844,847,850,852,854,857,860,863],{"class":205,"line":836},23,[203,838,697],{"class":553},[203,840,841],{"class":220}," priceObj",[203,843,560],{"class":553},[203,845,846],{"class":375}," data.tcgplayer.prices.",[203,848,849],{"class":526},"find",[203,851,530],{"class":375},[203,853,20],{"class":209},[203,855,856],{"class":553}," =>",[203,858,859],{"class":375}," p.sub_type_name ",[203,861,862],{"class":553},"===",[203,864,865],{"class":375}," preferredVariant);\n",[203,867,869],{"class":205,"line":868},24,[203,870,827],{"class":375},[203,872,874,877],{"class":205,"line":873},25,[203,875,876],{"class":553},"    return",[203,878,691],{"class":375},[203,880,882],{"class":205,"line":881},26,[203,883,884],{"class":375},"      name: data.card_info.name,\n",[203,886,888,891,894,897,900],{"class":205,"line":887},27,[203,889,890],{"class":375},"      price: priceObj ",[203,892,893],{"class":553},"?",[203,895,896],{"class":375}," priceObj.market_price ",[203,898,899],{"class":553},":",[203,901,902],{"class":220}," null\n",[203,904,906],{"class":205,"line":905},28,[203,907,908],{"class":375},"    };\n",[203,910,912,915,918],{"class":205,"line":911},29,[203,913,914],{"class":375},"  } ",[203,916,917],{"class":553},"catch",[203,919,920],{"class":375}," (err) {\n",[203,922,924,927,930,932,935,937,940],{"class":205,"line":923},30,[203,925,926],{"class":375},"    console.",[203,928,929],{"class":526},"error",[203,931,530],{"class":375},[203,933,934],{"class":213},"`Error tracking ${",[203,936,674],{"class":375},[203,938,939],{"class":213},"}:`",[203,941,942],{"class":375},", err.message);\n",[203,944,946,948,951],{"class":205,"line":945},31,[203,947,876],{"class":553},[203,949,950],{"class":220}," null",[203,952,569],{"class":375},[203,954,956],{"class":205,"line":955},32,[203,957,495],{"class":375},[203,959,961],{"class":205,"line":960},33,[203,962,501],{"class":375},[203,964,966],{"class":205,"line":965},34,[203,967,548],{"emptyLinePlaceholder":547},[203,969,971,973,975,978],{"class":205,"line":970},35,[203,972,663],{"class":553},[203,974,666],{"class":553},[203,976,977],{"class":526}," runTracker",[203,979,980],{"class":375},"() {\n",[203,982,984,987,990,992,995,998,1001,1004,1007,1010,1013],{"class":205,"line":983},36,[203,985,986],{"class":375},"  console.",[203,988,989],{"class":526},"log",[203,991,530],{"class":375},[203,993,994],{"class":213},"`[${",[203,996,997],{"class":553},"new",[203,999,1000],{"class":526}," Date",[203,1002,1003],{"class":213},"().",[203,1005,1006],{"class":526},"toISOString",[203,1008,1009],{"class":213},"()",[203,1011,1012],{"class":213},"}] Checking Market...`",[203,1014,797],{"class":375},[203,1016,1018],{"class":205,"line":1017},37,[203,1019,1020],{"class":375},"  \n",[203,1022,1024,1027,1029,1031,1034,1037,1039],{"class":205,"line":1023},38,[203,1025,1026],{"class":553},"  for",[203,1028,764],{"class":375},[203,1030,554],{"class":553},[203,1032,1033],{"class":220}," item",[203,1035,1036],{"class":553}," of",[203,1038,600],{"class":220},[203,1040,682],{"class":375},[203,1042,1044,1046,1049,1051,1053,1055],{"class":205,"line":1043},39,[203,1045,697],{"class":553},[203,1047,1048],{"class":220}," result",[203,1050,560],{"class":553},[203,1052,705],{"class":553},[203,1054,669],{"class":526},[203,1056,1057],{"class":375},"(item.id, item.variant);\n",[203,1059,1061],{"class":205,"line":1060},40,[203,1062,827],{"class":375},[203,1064,1066,1068,1071,1074,1077,1080],{"class":205,"line":1065},41,[203,1067,761],{"class":553},[203,1069,1070],{"class":375}," (result ",[203,1072,1073],{"class":553},"&&",[203,1075,1076],{"class":375}," result.price ",[203,1078,1079],{"class":553},"\u003C=",[203,1081,1082],{"class":375}," item.target) {\n",[203,1084,1086,1089,1091,1093,1096,1099,1101,1104,1107,1110,1112,1115,1118,1120,1122,1125,1128],{"class":205,"line":1085},42,[203,1087,1088],{"class":375},"      console.",[203,1090,989],{"class":526},[203,1092,530],{"class":375},[203,1094,1095],{"class":213},"`🚨 DEAL: ${",[203,1097,1098],{"class":375},"result",[203,1100,82],{"class":213},[203,1102,1103],{"class":375},"name",[203,1105,1106],{"class":213},"} (${",[203,1108,1109],{"class":375},"item",[203,1111,82],{"class":213},[203,1113,1114],{"class":375},"variant",[203,1116,1117],{"class":213},"}) is $${",[203,1119,1098],{"class":375},[203,1121,82],{"class":213},[203,1123,1124],{"class":375},"price",[203,1126,1127],{"class":213},"}!`",[203,1129,797],{"class":375},[203,1131,1133,1136,1139,1142],{"class":205,"line":1132},43,[203,1134,1135],{"class":375},"    } ",[203,1137,1138],{"class":553},"else",[203,1140,1141],{"class":553}," if",[203,1143,1144],{"class":375}," (result) {\n",[203,1146,1148,1150,1152,1154,1157,1159,1161,1163,1166,1168,1170,1172,1175,1177,1179,1182,1185],{"class":205,"line":1147},44,[203,1149,1088],{"class":375},[203,1151,989],{"class":526},[203,1153,530],{"class":375},[203,1155,1156],{"class":213},"`⌛ ${",[203,1158,1098],{"class":375},[203,1160,82],{"class":213},[203,1162,1103],{"class":375},[203,1164,1165],{"class":213},"}: $${",[203,1167,1098],{"class":375},[203,1169,82],{"class":213},[203,1171,1124],{"class":375},[203,1173,1174],{"class":213},"} (Target: $${",[203,1176,1109],{"class":375},[203,1178,82],{"class":213},[203,1180,1181],{"class":375},"target",[203,1183,1184],{"class":213},"})`",[203,1186,797],{"class":375},[203,1188,1190],{"class":205,"line":1189},45,[203,1191,1192],{"class":375},"    }\n",[203,1194,1196],{"class":205,"line":1195},46,[203,1197,495],{"class":375},[203,1199,1201],{"class":205,"line":1200},47,[203,1202,501],{"class":375},[203,1204,1206],{"class":205,"line":1205},48,[203,1207,548],{"emptyLinePlaceholder":547},[203,1209,1211],{"class":205,"line":1210},49,[203,1212,1213],{"class":592},"\u002F\u002F Track every hour\n",[203,1215,1217,1220,1223,1226,1229,1232,1234,1237],{"class":205,"line":1216},50,[203,1218,1219],{"class":526},"setInterval",[203,1221,1222],{"class":375},"(runTracker, ",[203,1224,1225],{"class":220},"60",[203,1227,1228],{"class":553}," *",[203,1230,1231],{"class":220}," 60",[203,1233,1228],{"class":553},[203,1235,1236],{"class":220}," 1000",[203,1238,797],{"class":375},[203,1240,1242,1245],{"class":205,"line":1241},51,[203,1243,1244],{"class":526},"runTracker",[203,1246,542],{"class":375},[128,1248],{},[164,1250,1252],{"id":1251},"python-bonus-the-data-scientist-approach","Python Bonus: The Data Scientist Approach",[20,1254,1255,1256,82],{},"Python is excellent for more complex data analysis. Here is the implementation using ",[43,1257,1258],{},"requests",[194,1260,1264],{"className":1261,"code":1262,"language":1263,"meta":199,"style":199},"language-python shiki shiki-themes github-dark-default","import os\nimport requests\nimport time\nfrom dotenv import load_dotenv\n\nload_dotenv()\n\nAPI_KEY = os.getenv('POKEWALLET_API_KEY')\nBASE_URL = \"https:\u002F\u002Fapi.pokewallet.io\"\n\ndef check_card(card_id, target_price, variant=\"Normal\"):\n    headers = {\"X-API-Key\": API_KEY}\n    response = requests.get(f\"{BASE_URL}\u002Fcards\u002F{card_id}\", headers=headers)\n    \n    if response.status_code == 200:\n        data = response.json()\n        name = data['card_info']['name']\n        \n        # Extract market price for the specific variant\n        prices = data['tcgplayer']['prices']\n        current = next((p['market_price'] for p in prices if p['sub_type_name'] == variant), None)\n        \n        if current and current \u003C= target_price:\n            print(f\"💰 DEAL FOUND: {name} is ${current}!\")\n        else:\n            print(f\"⌛ {name}: ${current} (Waiting for ${target_price})\")\n    else:\n        print(f\"Error {response.status_code}: {response.text}\")\n\n# Check Charizard VMAX\ncheck_card('pk_xxx', 280.00)\n","python",[43,1265,1266,1274,1281,1288,1301,1305,1310,1314,1329,1338,1342,1361,1380,1426,1430,1446,1456,1478,1483,1488,1507,1559,1563,1581,1614,1621,1662,1669,1701,1705,1710],{"__ignoreMap":199},[203,1267,1268,1271],{"class":205,"line":206},[203,1269,1270],{"class":553},"import",[203,1272,1273],{"class":375}," os\n",[203,1275,1276,1278],{"class":205,"line":217},[203,1277,1270],{"class":553},[203,1279,1280],{"class":375}," requests\n",[203,1282,1283,1285],{"class":205,"line":226},[203,1284,1270],{"class":553},[203,1286,1287],{"class":375}," time\n",[203,1289,1290,1293,1296,1298],{"class":205,"line":238},[203,1291,1292],{"class":553},"from",[203,1294,1295],{"class":375}," dotenv ",[203,1297,1270],{"class":553},[203,1299,1300],{"class":375}," load_dotenv\n",[203,1302,1303],{"class":205,"line":249},[203,1304,548],{"emptyLinePlaceholder":547},[203,1306,1307],{"class":205,"line":451},[203,1308,1309],{"class":375},"load_dotenv()\n",[203,1311,1312],{"class":205,"line":457},[203,1313,548],{"emptyLinePlaceholder":547},[203,1315,1316,1318,1320,1323,1326],{"class":205,"line":465},[203,1317,741],{"class":220},[203,1319,560],{"class":553},[203,1321,1322],{"class":375}," os.getenv(",[203,1324,1325],{"class":213},"'POKEWALLET_API_KEY'",[203,1327,1328],{"class":375},")\n",[203,1330,1331,1333,1335],{"class":205,"line":492},[203,1332,716],{"class":220},[203,1334,560],{"class":553},[203,1336,1337],{"class":213}," \"https:\u002F\u002Fapi.pokewallet.io\"\n",[203,1339,1340],{"class":205,"line":498},[203,1341,548],{"emptyLinePlaceholder":547},[203,1343,1344,1347,1350,1353,1356,1358],{"class":205,"line":655},[203,1345,1346],{"class":553},"def",[203,1348,1349],{"class":526}," check_card",[203,1351,1352],{"class":375},"(card_id, target_price, variant",[203,1354,1355],{"class":553},"=",[203,1357,434],{"class":213},[203,1359,1360],{"class":375},"):\n",[203,1362,1363,1366,1368,1371,1374,1376,1378],{"class":205,"line":660},[203,1364,1365],{"class":375},"    headers ",[203,1367,1355],{"class":553},[203,1369,1370],{"class":375}," {",[203,1372,1373],{"class":213},"\"X-API-Key\"",[203,1375,385],{"class":375},[203,1377,741],{"class":220},[203,1379,501],{"class":375},[203,1381,1382,1385,1387,1390,1393,1396,1399,1401,1404,1407,1409,1412,1414,1416,1418,1421,1423],{"class":205,"line":685},[203,1383,1384],{"class":375},"    response ",[203,1386,1355],{"class":553},[203,1388,1389],{"class":375}," requests.get(",[203,1391,1392],{"class":553},"f",[203,1394,1395],{"class":213},"\"",[203,1397,1398],{"class":553},"{",[203,1400,716],{"class":220},[203,1402,1403],{"class":553},"}",[203,1405,1406],{"class":213},"\u002Fcards\u002F",[203,1408,1398],{"class":553},[203,1410,1411],{"class":375},"card_id",[203,1413,1403],{"class":553},[203,1415,1395],{"class":213},[203,1417,437],{"class":375},[203,1419,1420],{"class":209},"headers",[203,1422,1355],{"class":553},[203,1424,1425],{"class":375},"headers)\n",[203,1427,1428],{"class":205,"line":694},[203,1429,827],{"class":375},[203,1431,1432,1434,1437,1440,1443],{"class":205,"line":730},[203,1433,761],{"class":553},[203,1435,1436],{"class":375}," response.status_code ",[203,1438,1439],{"class":553},"==",[203,1441,1442],{"class":220}," 200",[203,1444,1445],{"class":375},":\n",[203,1447,1448,1451,1453],{"class":205,"line":747},[203,1449,1450],{"class":375},"        data ",[203,1452,1355],{"class":553},[203,1454,1455],{"class":375}," response.json()\n",[203,1457,1458,1461,1463,1466,1469,1472,1475],{"class":205,"line":753},[203,1459,1460],{"class":375},"        name ",[203,1462,1355],{"class":553},[203,1464,1465],{"class":375}," data[",[203,1467,1468],{"class":213},"'card_info'",[203,1470,1471],{"class":375},"][",[203,1473,1474],{"class":213},"'name'",[203,1476,1477],{"class":375},"]\n",[203,1479,1480],{"class":205,"line":758},[203,1481,1482],{"class":375},"        \n",[203,1484,1485],{"class":205,"line":800},[203,1486,1487],{"class":592},"        # Extract market price for the specific variant\n",[203,1489,1490,1493,1495,1497,1500,1502,1505],{"class":205,"line":805},[203,1491,1492],{"class":375},"        prices ",[203,1494,1355],{"class":553},[203,1496,1465],{"class":375},[203,1498,1499],{"class":213},"'tcgplayer'",[203,1501,1471],{"class":375},[203,1503,1504],{"class":213},"'prices'",[203,1506,1477],{"class":375},[203,1508,1509,1512,1514,1517,1520,1523,1526,1529,1532,1535,1538,1541,1544,1547,1549,1551,1554,1557],{"class":205,"line":824},[203,1510,1511],{"class":375},"        current ",[203,1513,1355],{"class":553},[203,1515,1516],{"class":220}," next",[203,1518,1519],{"class":375},"((p[",[203,1521,1522],{"class":213},"'market_price'",[203,1524,1525],{"class":375},"] ",[203,1527,1528],{"class":553},"for",[203,1530,1531],{"class":375}," p ",[203,1533,1534],{"class":553},"in",[203,1536,1537],{"class":375}," prices ",[203,1539,1540],{"class":553},"if",[203,1542,1543],{"class":375}," p[",[203,1545,1546],{"class":213},"'sub_type_name'",[203,1548,1525],{"class":375},[203,1550,1439],{"class":553},[203,1552,1553],{"class":375}," variant), ",[203,1555,1556],{"class":220},"None",[203,1558,1328],{"class":375},[203,1560,1561],{"class":205,"line":830},[203,1562,1482],{"class":375},[203,1564,1565,1568,1571,1574,1576,1578],{"class":205,"line":836},[203,1566,1567],{"class":553},"        if",[203,1569,1570],{"class":375}," current ",[203,1572,1573],{"class":553},"and",[203,1575,1570],{"class":375},[203,1577,1079],{"class":553},[203,1579,1580],{"class":375}," target_price:\n",[203,1582,1583,1586,1588,1590,1593,1595,1597,1599,1602,1604,1607,1609,1612],{"class":205,"line":868},[203,1584,1585],{"class":220},"            print",[203,1587,530],{"class":375},[203,1589,1392],{"class":553},[203,1591,1592],{"class":213},"\"💰 DEAL FOUND: ",[203,1594,1398],{"class":553},[203,1596,1103],{"class":375},[203,1598,1403],{"class":553},[203,1600,1601],{"class":213}," is $",[203,1603,1398],{"class":553},[203,1605,1606],{"class":375},"current",[203,1608,1403],{"class":553},[203,1610,1611],{"class":213},"!\"",[203,1613,1328],{"class":375},[203,1615,1616,1619],{"class":205,"line":873},[203,1617,1618],{"class":553},"        else",[203,1620,1445],{"class":375},[203,1622,1623,1625,1627,1629,1632,1634,1636,1638,1641,1643,1645,1647,1650,1652,1655,1657,1660],{"class":205,"line":881},[203,1624,1585],{"class":220},[203,1626,530],{"class":375},[203,1628,1392],{"class":553},[203,1630,1631],{"class":213},"\"⌛ ",[203,1633,1398],{"class":553},[203,1635,1103],{"class":375},[203,1637,1403],{"class":553},[203,1639,1640],{"class":213},": $",[203,1642,1398],{"class":553},[203,1644,1606],{"class":375},[203,1646,1403],{"class":553},[203,1648,1649],{"class":213}," (Waiting for $",[203,1651,1398],{"class":553},[203,1653,1654],{"class":375},"target_price",[203,1656,1403],{"class":553},[203,1658,1659],{"class":213},")\"",[203,1661,1328],{"class":375},[203,1663,1664,1667],{"class":205,"line":887},[203,1665,1666],{"class":553},"    else",[203,1668,1445],{"class":375},[203,1670,1671,1674,1676,1678,1681,1683,1686,1688,1690,1692,1695,1697,1699],{"class":205,"line":905},[203,1672,1673],{"class":220},"        print",[203,1675,530],{"class":375},[203,1677,1392],{"class":553},[203,1679,1680],{"class":213},"\"Error ",[203,1682,1398],{"class":553},[203,1684,1685],{"class":375},"response.status_code",[203,1687,1403],{"class":553},[203,1689,385],{"class":213},[203,1691,1398],{"class":553},[203,1693,1694],{"class":375},"response.text",[203,1696,1403],{"class":553},[203,1698,1395],{"class":213},[203,1700,1328],{"class":375},[203,1702,1703],{"class":205,"line":911},[203,1704,548],{"emptyLinePlaceholder":547},[203,1706,1707],{"class":205,"line":923},[203,1708,1709],{"class":592},"# Check Charizard VMAX\n",[203,1711,1712,1715,1718,1720,1723],{"class":205,"line":945},[203,1713,1714],{"class":375},"check_card(",[203,1716,1717],{"class":213},"'pk_xxx'",[203,1719,437],{"class":375},[203,1721,1722],{"class":220},"280.00",[203,1724,1328],{"class":375},[128,1726],{},[164,1728,1730],{"id":1729},"best-practices-for-price-tracking","Best Practices for Price Tracking",[20,1732,1733,1734,1738],{},"As discussed in our ",[71,1735,1737],{"href":1736},"\u002Fblog\u002Fpokemon-tcg-api-usability-developer-guide","API Usability Guide",", following these best practices will ensure your tracker remains reliable:",[172,1740,1741,1750,1763,1769],{},[95,1742,1743,1746,1747,1749],{},[25,1744,1745],{},"Use Environment Variables:"," Never hardcode your ",[43,1748,278],{}," keys in your script.",[95,1751,1752,1755,1756,62,1759,1762],{},[25,1753,1754],{},"Handle Rate Limits:"," The free tier allows 100 requests per hour and 1,000 per day. Monitor the ",[43,1757,1758],{},"X-RateLimit-Remaining-Hour",[43,1760,1761],{},"X-RateLimit-Remaining-Day"," headers in your app to avoid 429 errors.",[95,1764,1765,1768],{},[25,1766,1767],{},"Cache Results:"," If you are building a dashboard for others, cache price results for 15-30 minutes. Pokémon prices rarely swing within seconds.",[95,1770,1771,1774,1775,1778,1779,1782],{},[25,1772,1773],{},"Batch by Set:"," Instead of querying every card ID, search by set code (",[43,1776,1777],{},"\u002Fsearch?q=SV1&limit=100",") to get up to 100 cards with their prices per request. On Pro, ",[43,1780,1781],{},"\u002Fprices\u002F:setCode"," returns the prices of an entire set in one call.",[128,1784],{},[164,1786,1788],{"id":1787},"frequently-asked-questions","Frequently Asked Questions",[87,1790,1792,1793,62,1795,893],{"id":1791},"what-is-the-difference-between-market_price-and-trend","What is the difference between ",[43,1794,122],{},[43,1796,126],{},[20,1798,1799,1801,1802,1804],{},[43,1800,122],{}," (TCGPlayer) is the current estimated value based on recent sales. ",[43,1803,126],{}," (CardMarket) is a weighted average that accounts for current listings and sales velocity. For accurate tracking, verify both.",[87,1806,1808],{"id":1807},"how-do-i-find-the-correct-card-id","How do I find the correct Card ID?",[20,1810,1811,1812,1815,1816,1819],{},"Use the ",[43,1813,1814],{},"\u002Fsearch?q=charizard"," endpoint. Cards synchronized with TCGPlayer will have IDs like ",[43,1817,1818],{},"pk_abcdef123...",". CardMarket-exclusive items will have a hexadecimal hash.",[87,1821,1823],{"id":1822},"can-i-track-prices-in-euro","Can I track prices in Euro?",[20,1825,1826,1827,54,1830,1833],{},"Yes! Access ",[43,1828,1829],{},"data.cardmarket.prices[0].avg",[43,1831,1832],{},"avg30"," to get European market averages in EUR.",[87,1835,1837],{"id":1836},"is-the-pokéwallet-api-free","Is the PokéWallet API free?",[20,1839,1840,1843],{},[25,1841,1842],{},"Yes."," Our free tier includes 100 requests\u002Fhour and 1,000 requests\u002Fday, forever, with real-time pricing from both TCGPlayer and CardMarket. Perfect for hobbyist trackers and learning.",[87,1845,1847],{"id":1846},"what-languages-can-i-use","What languages can I use?",[20,1849,1850,1851,1854,1855,764,1860,437,1863,1866],{},"Anything that supports HTTP requests! The docs include examples in ",[25,1852,1853],{},"JavaScript, Python, Node.js, and Go",", and there are official ",[71,1856,1859],{"href":1857,"rel":1858},"https:\u002F\u002Fpokewallet.io\u002Fdevelopers\u002Fsdk",[296],"TypeScript and Python SDKs",[43,1861,1862],{},"npm install @pokewallet\u002Fsdk",[43,1864,1865],{},"pip install pokewallet",") if you'd rather not write the HTTP calls yourself.",[87,1868,1870],{"id":1869},"how-do-i-avoid-getting-rate-limited","How do I avoid getting rate-limited?",[20,1872,1873,1874,1877,1878,1880],{},"(1) Cache data locally if you need to display it frequently. (2) Search by set code with ",[43,1875,1876],{},"limit=100"," to fetch many cards in a single request, or use ",[43,1879,1781],{}," on Pro. (3) Upgrade to a Pro plan for higher throughput.",[128,1882],{},[164,1884,1886],{"id":1885},"conclusion-data-is-your-best-card","Conclusion: Data is Your Best Card",[20,1888,1889,1890,82],{},"Building a price tracker is the first step toward professional-grade collecting. By automating the \"grunt work\" of price verification, you free up your time to focus on what actually matters: ",[25,1891,1892],{},"the cards",[20,1894,1895],{},"Ready to take it to the next level?",[20,1897,1898],{},[25,1899,1900],{},"Start using PokéWallet API today — free, no credit card required:",[92,1902,1903,1910,1917,1924,1930,1937],{},[95,1904,1905,1906,1909],{},"⚡ ",[25,1907,1908],{},"Full TCGPlayer & CardMarket integration"," in a single endpoint",[95,1911,1912,1913,1916],{},"🎯 ",[25,1914,1915],{},"Unified Card Identifiers"," across all modern sets",[95,1918,1919,1920,1923],{},"⏱️ ",[25,1921,1922],{},"\u003C100ms response times"," for snappy, responsive dashboards",[95,1925,108,1926,1929],{},[25,1927,1928],{},"Historical price endpoints"," for trend analysis (Pro, 7-day free trial)",[95,1931,1932,1933,1936],{},"🆓 ",[25,1934,1935],{},"100 requests\u002Fhour and 1,000\u002Fday free"," for developers",[95,1938,1939,1940,1943],{},"📚 ",[25,1941,1942],{},"Comprehensive documentation"," and community support",[20,1945,1946],{},[25,1947,1948],{},"Get Started:",[92,1950,1951,1960,1967,1975],{},[95,1952,1953,1954],{},"🚀 ",[25,1955,1956],{},[71,1957,1959],{"href":294,"rel":1958},[296],"Register for API Access",[95,1961,1939,1962],{},[71,1963,1966],{"href":1964,"rel":1965},"https:\u002F\u002Fwww.pokewallet.io\u002Fapi-docs",[296],"Read the Full API Docs",[95,1968,1969,1970],{},"💬 ",[71,1971,1974],{"href":1972,"rel":1973},"https:\u002F\u002Fdiscord.gg\u002FznDxEjmDVP",[296],"Join our Dev Community on Discord",[95,1976,1977,1978],{},"🛒 ",[71,1979,1981],{"href":1980},"\u002Fblog\u002Fwhere-to-buy-sell-pokemon-cards-online-best-marketplaces","Explore our Marketplace Guide",[20,1983,1984],{},[1985,1986,1987],"em",{},"Built by collectors, for developers. Track real-time prices and secure your piece of Pokémon history.",[1989,1990,1991],"style",{},"html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}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 .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}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 .suJrU, html code.shiki .suJrU{--shiki-default:#FF7B72}html pre.shiki code .sH3jZ, html code.shiki .sH3jZ{--shiki-default:#8B949E}",{"title":199,"searchDepth":217,"depth":217,"links":1993},[1994,1995,1998,1999,2002,2003,2004,2005,2014],{"id":89,"depth":226,"text":90},{"id":166,"depth":217,"text":167,"children":1996},[1997],{"id":191,"depth":226,"text":192},{"id":263,"depth":217,"text":264},{"id":323,"depth":217,"text":324,"children":2000},[2001],{"id":333,"depth":226,"text":334},{"id":506,"depth":217,"text":507},{"id":1251,"depth":217,"text":1252},{"id":1729,"depth":217,"text":1730},{"id":1787,"depth":217,"text":1788,"children":2006},[2007,2009,2010,2011,2012,2013],{"id":1791,"depth":226,"text":2008},"What is the difference between market_price and trend?",{"id":1807,"depth":226,"text":1808},{"id":1822,"depth":226,"text":1823},{"id":1836,"depth":226,"text":1837},{"id":1846,"depth":226,"text":1847},{"id":1869,"depth":226,"text":1870},{"id":1885,"depth":217,"text":1886},"Developers","2026-03-06","Learn how to build a custom Pokémon card price tracker in 2026. This step-by-step tutorial uses PokéWallet API's unified data to fetch real-time market data, monitor price fluctuations, and set up automated alerts.","md","\u002Fblog\u002Fpokemon\u002F2026\u002F03\u002Fbuild-pokemon-card-price-tracker-pokewallet-api-tutorial.webp","Developer building a real-time Pokémon card price monitoring dashboard using PokéWallet API",{},"\u002Fblog\u002Fpokemon\u002F2026\u002F03\u002Fbuild-pokemon-card-price-tracker-pokewallet-api-tutorial","18 min read",{"title":5,"description":2017},"blog\u002Fpokemon\u002F2026\u002F03\u002Fbuild-pokemon-card-price-tracker-pokewallet-api-tutorial",[2027,2028,2029,2030,2031,2032,2033,2034,2035,2036],"Build Pokemon App","Price Tracker Tutorial","Pokemon API","Javascript Tutorial","Python Pokemon API","Real-time Prices","TCG Development","Marketplace API","PokéWallet","2026",null,"xyfzhAHRAC1f0Q5orx4vK7BCmpKYuszfIL7j-QTaGQE",[2040,2043,2046],{"path":2041,"title":2042},"\u002Fblog\u002Fpokemon\u002F2026\u002F10\u002Fpokemon-delta-reign-best-cards-to-invest-chase-cards","Delta Reign Chase Cards: Best Cards to Invest In, Ranked Pre-Launch",{"path":2044,"title":2045},"\u002Fblog\u002Fpokemon\u002F2026\u002F10\u002Fpokemon-delta-reign-pre-order-guide-mega-rayquaza-ex","Delta Reign Pre-Order Guide: Mega Rayquaza ex, Prices & Where to Buy",{"path":2047,"title":2048},"\u002Fblog\u002Fpokemon\u002F2026\u002F09\u002Fday-zero-pokewallet-ships-pokemon-sets-release-day","Day Zero: How PokéWallet Ships a Pokémon Set the Day It Drops",1792618414307]