[{"data":1,"prerenderedAt":2512},["ShallowReactive",2],{"blog-one-piece-card-game-api-guide-real-time-prices":3},{"id":4,"title":5,"author":6,"body":7,"category":2491,"date":2492,"description":2493,"extension":2494,"image":2495,"imageAlt":2496,"imageCredit":6,"meta":2497,"navigation":153,"path":2498,"readTime":2499,"seo":2500,"stem":2501,"tags":2502,"__hash__":2511},"content\u002Fblog\u002Fone-piece\u002F2026\u002F05\u002Fone-piece-card-game-api-guide-real-time-prices.md","One Piece Card Game API: How to Fetch Real-Time OPCG Card Prices","PokéWallet Team",{"type":8,"value":9,"toc":2460},"minimark",[10,14,33,47,50,55,75,82,85,87,91,96,104,111,115,118,172,176,183,191,193,197,201,212,237,242,441,452,454,458,461,481,506,519,523,1012,1033,1035,1039,1046,1066,1079,1081,1085,1105,1115,1119,1364,1374,1376,1380,1387,1407,1417,1421,1785,1794,1796,1800,1803,2038,2040,2044,2062,2074,2123,2136,2138,2142,2145,2220,2223,2229,2231,2235,2239,2242,2246,2293,2297,2312,2316,2331,2335,2345,2349,2363,2367,2384,2388,2394,2398,2411,2415,2422,2424,2428,2446,2456],[11,12,5],"h1",{"id":13},"one-piece-card-game-api-how-to-fetch-real-time-opcg-card-prices",[15,16,18,19],"div",{"style":17},"background: rgba(204, 0, 0, 0.1); border-left: 4px solid #CC0000; padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 4px;","\n  ",[20,21,23,24,28,29,32],"p",{"style":22},"margin: 0; font-size: 0.9rem; color: #e0e0e0;","\n    ",[25,26,27],"strong",{},"⚓ DEVELOPER GUIDE:"," ",[25,30,31],{},"BerryWallet"," is the One Piece Card Game API by PokéWallet — named after the Berry, the currency of the One Piece world. This guide walks you through fetching real-time card prices, browsing sets, and building price trackers — all with the same API key you already use for Pokémon TCG.\n  ",[20,34,35,36,39,40,46],{},"If you're building a ",[25,37,38],{},"One Piece Card Game price tracker",", a collection app, or any tool that needs real-time OPCG market data, this guide covers everything you need to know about ",[25,41,42],{},[43,44,31],"a",{"href":45},"\u002Fberrywallet",", the One Piece Card Game API.",[48,49],"hr",{},[51,52,54],"h2",{"id":53},"why-build-with-berrywallet","Why Build with BerryWallet?",[20,56,57,58,62,63,66,67,70,71,74],{},"The OPCG market has grown dramatically since its international release in 2022. Sets like ",[59,60,61],"em",{},"Romance Dawn"," (OP01), ",[59,64,65],{},"Paramount War"," (OP02), and the newer releases generate significant secondary market activity on both ",[25,68,69],{},"TCGPlayer"," (USD) and ",[25,72,73],{},"CardMarket"," (EUR).",[20,76,77,78,81],{},"Most developers trying to build OPCG tools run into the same problem: ",[25,79,80],{},"there's no reliable, free API for One Piece card prices",". Scrapers break with every site update, and manual data collection doesn't scale.",[20,83,84],{},"That's what we built BerryWallet for. Just as PokéWallet tracks the value of Pokémon collections, BerryWallet does the same for the One Piece Card Game — with the same infrastructure, the same API key, and dual-market coverage from day one.",[48,86],{},[51,88,90],{"id":89},"getting-started","Getting Started",[92,93,95],"h3",{"id":94},"_1-get-your-api-key","1. Get Your API Key",[20,97,98,99,103],{},"Sign up at ",[43,100,102],{"href":101},"\u002Fdashboard","pokewallet.io\u002Fdashboard"," to get a free API key. No credit card required.",[20,105,106,107,110],{},"BerryWallet shares the same API key as PokéWallet — ",[25,108,109],{},"one key for both Pokémon TCG and One Piece endpoints",". No separate signup needed.",[92,112,114],{"id":113},"_2-authentication","2. Authentication",[20,116,117],{},"Pass your key as an HTTP header on every request. Both methods work:",[119,120,125],"pre",{"className":121,"code":122,"language":123,"meta":124,"style":124},"language-bash shiki shiki-themes github-light github-dark","# Recommended\nX-API-Key: your_api_key_here\n\n# Also accepted\nAuthorization: Bearer your_api_key_here\n","bash","",[126,127,128,137,148,155,161],"code",{"__ignoreMap":124},[129,130,133],"span",{"class":131,"line":132},"line",1,[129,134,136],{"class":135},"sJ8bj","# Recommended\n",[129,138,140,144],{"class":131,"line":139},2,[129,141,143],{"class":142},"sScJk","X-API-Key:",[129,145,147],{"class":146},"sZZnC"," your_api_key_here\n",[129,149,151],{"class":131,"line":150},3,[129,152,154],{"emptyLinePlaceholder":153},true,"\n",[129,156,158],{"class":131,"line":157},4,[129,159,160],{"class":135},"# Also accepted\n",[129,162,164,167,170],{"class":131,"line":163},5,[129,165,166],{"class":142},"Authorization:",[129,168,169],{"class":146}," Bearer",[129,171,147],{"class":146},[92,173,175],{"id":174},"_3-base-url","3. Base URL",[20,177,178,179,182],{},"All One Piece endpoints live under the ",[126,180,181],{},"\u002Fop\u002F"," prefix:",[119,184,189],{"className":185,"code":187,"language":188},[186],"language-text","https:\u002F\u002Fapi.pokewallet.io\n","text",[126,190,187],{"__ignoreMap":124},[48,192],{},[51,194,196],{"id":195},"core-endpoints","Core Endpoints",[92,198,200],{"id":199},"list-all-one-piece-sets","List All One Piece Sets",[20,202,203,204,207,208,211],{},"Returns all One Piece sets ordered by release date. You can filter by language (",[126,205,206],{},"en"," or ",[126,209,210],{},"jp",").",[119,213,215],{"className":121,"code":214,"language":123,"meta":124,"style":124},"curl -H \"X-API-Key: your_api_key\" \\\n     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsets?language=en\"\n",[126,216,217,232],{"__ignoreMap":124},[129,218,219,222,226,229],{"class":131,"line":132},[129,220,221],{"class":142},"curl",[129,223,225],{"class":224},"sj4cs"," -H",[129,227,228],{"class":146}," \"X-API-Key: your_api_key\"",[129,230,231],{"class":224}," \\\n",[129,233,234],{"class":131,"line":139},[129,235,236],{"class":146},"     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsets?language=en\"\n",[20,238,239],{},[25,240,241],{},"Response:",[119,243,247],{"className":244,"code":245,"language":246,"meta":124,"style":124},"language-json shiki shiki-themes github-light github-dark","{\n  \"success\": true,\n  \"data\": [\n    {\n      \"name\": \"Romance Dawn\",\n      \"set_code\": \"OP01\",\n      \"set_id\": \"3188\",\n      \"language\": \"en\",\n      \"release_date\": \"2022-12-02\"\n    },\n    {\n      \"name\": \"Paramount War\",\n      \"set_code\": \"OP02\",\n      \"set_id\": \"3189\",\n      \"language\": \"en\",\n      \"release_date\": \"2023-03-10\"\n    }\n  ],\n  \"total\": 100\n}\n","json",[126,248,249,255,269,277,282,294,307,320,333,344,350,355,367,379,391,402,412,418,424,435],{"__ignoreMap":124},[129,250,251],{"class":131,"line":132},[129,252,254],{"class":253},"sVt8B","{\n",[129,256,257,260,263,266],{"class":131,"line":139},[129,258,259],{"class":224},"  \"success\"",[129,261,262],{"class":253},": ",[129,264,265],{"class":224},"true",[129,267,268],{"class":253},",\n",[129,270,271,274],{"class":131,"line":150},[129,272,273],{"class":224},"  \"data\"",[129,275,276],{"class":253},": [\n",[129,278,279],{"class":131,"line":157},[129,280,281],{"class":253},"    {\n",[129,283,284,287,289,292],{"class":131,"line":163},[129,285,286],{"class":224},"      \"name\"",[129,288,262],{"class":253},[129,290,291],{"class":146},"\"Romance Dawn\"",[129,293,268],{"class":253},[129,295,297,300,302,305],{"class":131,"line":296},6,[129,298,299],{"class":224},"      \"set_code\"",[129,301,262],{"class":253},[129,303,304],{"class":146},"\"OP01\"",[129,306,268],{"class":253},[129,308,310,313,315,318],{"class":131,"line":309},7,[129,311,312],{"class":224},"      \"set_id\"",[129,314,262],{"class":253},[129,316,317],{"class":146},"\"3188\"",[129,319,268],{"class":253},[129,321,323,326,328,331],{"class":131,"line":322},8,[129,324,325],{"class":224},"      \"language\"",[129,327,262],{"class":253},[129,329,330],{"class":146},"\"en\"",[129,332,268],{"class":253},[129,334,336,339,341],{"class":131,"line":335},9,[129,337,338],{"class":224},"      \"release_date\"",[129,340,262],{"class":253},[129,342,343],{"class":146},"\"2022-12-02\"\n",[129,345,347],{"class":131,"line":346},10,[129,348,349],{"class":253},"    },\n",[129,351,353],{"class":131,"line":352},11,[129,354,281],{"class":253},[129,356,358,360,362,365],{"class":131,"line":357},12,[129,359,286],{"class":224},[129,361,262],{"class":253},[129,363,364],{"class":146},"\"Paramount War\"",[129,366,268],{"class":253},[129,368,370,372,374,377],{"class":131,"line":369},13,[129,371,299],{"class":224},[129,373,262],{"class":253},[129,375,376],{"class":146},"\"OP02\"",[129,378,268],{"class":253},[129,380,382,384,386,389],{"class":131,"line":381},14,[129,383,312],{"class":224},[129,385,262],{"class":253},[129,387,388],{"class":146},"\"3189\"",[129,390,268],{"class":253},[129,392,394,396,398,400],{"class":131,"line":393},15,[129,395,325],{"class":224},[129,397,262],{"class":253},[129,399,330],{"class":146},[129,401,268],{"class":253},[129,403,405,407,409],{"class":131,"line":404},16,[129,406,338],{"class":224},[129,408,262],{"class":253},[129,410,411],{"class":146},"\"2023-03-10\"\n",[129,413,415],{"class":131,"line":414},17,[129,416,417],{"class":253},"    }\n",[129,419,421],{"class":131,"line":420},18,[129,422,423],{"class":253},"  ],\n",[129,425,427,430,432],{"class":131,"line":426},19,[129,428,429],{"class":224},"  \"total\"",[129,431,262],{"class":253},[129,433,434],{"class":224},"100\n",[129,436,438],{"class":131,"line":437},20,[129,439,440],{"class":253},"}\n",[20,442,443,444,447,448,451],{},"Note: ",[126,445,446],{},"set_id"," maps to the internal ",[126,449,450],{},"group_id",". Positive values are TCG sets (available on both TCGPlayer and CardMarket); negative values are CM-only sets with no TCGPlayer data. Set images are not available for One Piece sets.",[48,453],{},[92,455,457],{"id":456},"get-all-cards-and-prices-for-a-set","Get All Cards and Prices for a Set",[20,459,460],{},"This is the most useful endpoint for collection trackers. It returns a paginated card list for a specific set with both TCGPlayer and CardMarket prices:",[119,462,464],{"className":121,"code":463,"language":123,"meta":124,"style":124},"curl -H \"X-API-Key: your_api_key\" \\\n     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsets\u002FOP01?page=1&limit=50\"\n",[126,465,466,476],{"__ignoreMap":124},[129,467,468,470,472,474],{"class":131,"line":132},[129,469,221],{"class":142},[129,471,225],{"class":224},[129,473,228],{"class":146},[129,475,231],{"class":224},[129,477,478],{"class":131,"line":139},[129,479,480],{"class":146},"     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsets\u002FOP01?page=1&limit=50\"\n",[20,482,483,484,487,488,491,492,494,495,498,499,502,503,211],{},"The ",[126,485,486],{},":setCode"," path parameter accepts ",[126,489,490],{},"OP01",", a numeric ",[126,493,450],{}," like ",[126,496,497],{},"3188",", or a fuzzy variant like ",[126,500,501],{},"EB01"," (automatically tries ",[126,504,505],{},"EB-01",[20,507,508,28,511,514,515,518],{},[25,509,510],{},"Query parameters:",[126,512,513],{},"page"," (default: 1) and ",[126,516,517],{},"limit"," (default: 50, max: 200).",[20,520,521],{},[25,522,241],{},[119,524,526],{"className":244,"code":525,"language":246,"meta":124,"style":124},"{\n  \"success\": true,\n  \"set\": {\n    \"set_code\": \"OP01\",\n    \"set_id\": \"3188\",\n    \"name\": \"Romance Dawn\",\n    \"language\": \"en\",\n    \"release_date\": \"2022-12-02\"\n  },\n  \"total\": 50,\n  \"page\": 1,\n  \"limit\": 50,\n  \"data\": [\n    {\n      \"id\": \"op_3f8a12c4e9b7d02f...\",\n      \"card_number\": \"OP01-001\",\n      \"name\": \"Roronoa Zoro\",\n      \"clean_name\": \"Roronoa Zoro\",\n      \"sub_type_name\": \"Normal\",\n      \"rarity\": \"L\",\n      \"card_type\": \"Leader\",\n      \"ext_color\": \"Red\",\n      \"ext_cost\": null,\n      \"ext_power\": \"5000\",\n      \"ext_life\": \"5\",\n      \"ext_subtypes\": \"Straw Hat Crew;Supernovas\",\n      \"ext_attribute\": \"Slash\",\n      \"ext_counterplus\": null,\n      \"ext_description\": \"[DON!! x1] ...\",\n      \"tcgplayer\": {\n        \"url\": \"https:\u002F\u002Fwww.tcgplayer.com\u002Fproduct\u002F...\",\n        \"prices\": {\n          \"low_price\": 1.20,\n          \"market_price\": 1.76,\n          \"high_price\": 3.50\n        }\n      },\n      \"cardmarket\": {\n        \"product_name\": \"Roronoa Zoro (OP01-001)\",\n        \"product_url\": \"https:\u002F\u002Fwww.cardmarket.com\u002F...\",\n        \"prices\": { \"avg\": 1.64, \"low\": 0.50, \"trend\": 1.70 }\n      }\n    }\n  ]\n}\n",[126,527,528,532,542,550,561,572,583,594,603,608,619,631,642,648,652,664,676,687,698,710,722,735,748,761,774,787,800,813,825,838,846,859,867,880,893,904,910,916,924,937,950,990,996,1001,1007],{"__ignoreMap":124},[129,529,530],{"class":131,"line":132},[129,531,254],{"class":253},[129,533,534,536,538,540],{"class":131,"line":139},[129,535,259],{"class":224},[129,537,262],{"class":253},[129,539,265],{"class":224},[129,541,268],{"class":253},[129,543,544,547],{"class":131,"line":150},[129,545,546],{"class":224},"  \"set\"",[129,548,549],{"class":253},": {\n",[129,551,552,555,557,559],{"class":131,"line":157},[129,553,554],{"class":224},"    \"set_code\"",[129,556,262],{"class":253},[129,558,304],{"class":146},[129,560,268],{"class":253},[129,562,563,566,568,570],{"class":131,"line":163},[129,564,565],{"class":224},"    \"set_id\"",[129,567,262],{"class":253},[129,569,317],{"class":146},[129,571,268],{"class":253},[129,573,574,577,579,581],{"class":131,"line":296},[129,575,576],{"class":224},"    \"name\"",[129,578,262],{"class":253},[129,580,291],{"class":146},[129,582,268],{"class":253},[129,584,585,588,590,592],{"class":131,"line":309},[129,586,587],{"class":224},"    \"language\"",[129,589,262],{"class":253},[129,591,330],{"class":146},[129,593,268],{"class":253},[129,595,596,599,601],{"class":131,"line":322},[129,597,598],{"class":224},"    \"release_date\"",[129,600,262],{"class":253},[129,602,343],{"class":146},[129,604,605],{"class":131,"line":335},[129,606,607],{"class":253},"  },\n",[129,609,610,612,614,617],{"class":131,"line":346},[129,611,429],{"class":224},[129,613,262],{"class":253},[129,615,616],{"class":224},"50",[129,618,268],{"class":253},[129,620,621,624,626,629],{"class":131,"line":352},[129,622,623],{"class":224},"  \"page\"",[129,625,262],{"class":253},[129,627,628],{"class":224},"1",[129,630,268],{"class":253},[129,632,633,636,638,640],{"class":131,"line":357},[129,634,635],{"class":224},"  \"limit\"",[129,637,262],{"class":253},[129,639,616],{"class":224},[129,641,268],{"class":253},[129,643,644,646],{"class":131,"line":369},[129,645,273],{"class":224},[129,647,276],{"class":253},[129,649,650],{"class":131,"line":381},[129,651,281],{"class":253},[129,653,654,657,659,662],{"class":131,"line":393},[129,655,656],{"class":224},"      \"id\"",[129,658,262],{"class":253},[129,660,661],{"class":146},"\"op_3f8a12c4e9b7d02f...\"",[129,663,268],{"class":253},[129,665,666,669,671,674],{"class":131,"line":404},[129,667,668],{"class":224},"      \"card_number\"",[129,670,262],{"class":253},[129,672,673],{"class":146},"\"OP01-001\"",[129,675,268],{"class":253},[129,677,678,680,682,685],{"class":131,"line":414},[129,679,286],{"class":224},[129,681,262],{"class":253},[129,683,684],{"class":146},"\"Roronoa Zoro\"",[129,686,268],{"class":253},[129,688,689,692,694,696],{"class":131,"line":420},[129,690,691],{"class":224},"      \"clean_name\"",[129,693,262],{"class":253},[129,695,684],{"class":146},[129,697,268],{"class":253},[129,699,700,703,705,708],{"class":131,"line":426},[129,701,702],{"class":224},"      \"sub_type_name\"",[129,704,262],{"class":253},[129,706,707],{"class":146},"\"Normal\"",[129,709,268],{"class":253},[129,711,712,715,717,720],{"class":131,"line":437},[129,713,714],{"class":224},"      \"rarity\"",[129,716,262],{"class":253},[129,718,719],{"class":146},"\"L\"",[129,721,268],{"class":253},[129,723,725,728,730,733],{"class":131,"line":724},21,[129,726,727],{"class":224},"      \"card_type\"",[129,729,262],{"class":253},[129,731,732],{"class":146},"\"Leader\"",[129,734,268],{"class":253},[129,736,738,741,743,746],{"class":131,"line":737},22,[129,739,740],{"class":224},"      \"ext_color\"",[129,742,262],{"class":253},[129,744,745],{"class":146},"\"Red\"",[129,747,268],{"class":253},[129,749,751,754,756,759],{"class":131,"line":750},23,[129,752,753],{"class":224},"      \"ext_cost\"",[129,755,262],{"class":253},[129,757,758],{"class":224},"null",[129,760,268],{"class":253},[129,762,764,767,769,772],{"class":131,"line":763},24,[129,765,766],{"class":224},"      \"ext_power\"",[129,768,262],{"class":253},[129,770,771],{"class":146},"\"5000\"",[129,773,268],{"class":253},[129,775,777,780,782,785],{"class":131,"line":776},25,[129,778,779],{"class":224},"      \"ext_life\"",[129,781,262],{"class":253},[129,783,784],{"class":146},"\"5\"",[129,786,268],{"class":253},[129,788,790,793,795,798],{"class":131,"line":789},26,[129,791,792],{"class":224},"      \"ext_subtypes\"",[129,794,262],{"class":253},[129,796,797],{"class":146},"\"Straw Hat Crew;Supernovas\"",[129,799,268],{"class":253},[129,801,803,806,808,811],{"class":131,"line":802},27,[129,804,805],{"class":224},"      \"ext_attribute\"",[129,807,262],{"class":253},[129,809,810],{"class":146},"\"Slash\"",[129,812,268],{"class":253},[129,814,816,819,821,823],{"class":131,"line":815},28,[129,817,818],{"class":224},"      \"ext_counterplus\"",[129,820,262],{"class":253},[129,822,758],{"class":224},[129,824,268],{"class":253},[129,826,828,831,833,836],{"class":131,"line":827},29,[129,829,830],{"class":224},"      \"ext_description\"",[129,832,262],{"class":253},[129,834,835],{"class":146},"\"[DON!! x1] ...\"",[129,837,268],{"class":253},[129,839,841,844],{"class":131,"line":840},30,[129,842,843],{"class":224},"      \"tcgplayer\"",[129,845,549],{"class":253},[129,847,849,852,854,857],{"class":131,"line":848},31,[129,850,851],{"class":224},"        \"url\"",[129,853,262],{"class":253},[129,855,856],{"class":146},"\"https:\u002F\u002Fwww.tcgplayer.com\u002Fproduct\u002F...\"",[129,858,268],{"class":253},[129,860,862,865],{"class":131,"line":861},32,[129,863,864],{"class":224},"        \"prices\"",[129,866,549],{"class":253},[129,868,870,873,875,878],{"class":131,"line":869},33,[129,871,872],{"class":224},"          \"low_price\"",[129,874,262],{"class":253},[129,876,877],{"class":224},"1.20",[129,879,268],{"class":253},[129,881,883,886,888,891],{"class":131,"line":882},34,[129,884,885],{"class":224},"          \"market_price\"",[129,887,262],{"class":253},[129,889,890],{"class":224},"1.76",[129,892,268],{"class":253},[129,894,896,899,901],{"class":131,"line":895},35,[129,897,898],{"class":224},"          \"high_price\"",[129,900,262],{"class":253},[129,902,903],{"class":224},"3.50\n",[129,905,907],{"class":131,"line":906},36,[129,908,909],{"class":253},"        }\n",[129,911,913],{"class":131,"line":912},37,[129,914,915],{"class":253},"      },\n",[129,917,919,922],{"class":131,"line":918},38,[129,920,921],{"class":224},"      \"cardmarket\"",[129,923,549],{"class":253},[129,925,927,930,932,935],{"class":131,"line":926},39,[129,928,929],{"class":224},"        \"product_name\"",[129,931,262],{"class":253},[129,933,934],{"class":146},"\"Roronoa Zoro (OP01-001)\"",[129,936,268],{"class":253},[129,938,940,943,945,948],{"class":131,"line":939},40,[129,941,942],{"class":224},"        \"product_url\"",[129,944,262],{"class":253},[129,946,947],{"class":146},"\"https:\u002F\u002Fwww.cardmarket.com\u002F...\"",[129,949,268],{"class":253},[129,951,953,955,958,961,963,966,969,972,974,977,979,982,984,987],{"class":131,"line":952},41,[129,954,864],{"class":224},[129,956,957],{"class":253},": { ",[129,959,960],{"class":224},"\"avg\"",[129,962,262],{"class":253},[129,964,965],{"class":224},"1.64",[129,967,968],{"class":253},", ",[129,970,971],{"class":224},"\"low\"",[129,973,262],{"class":253},[129,975,976],{"class":224},"0.50",[129,978,968],{"class":253},[129,980,981],{"class":224},"\"trend\"",[129,983,262],{"class":253},[129,985,986],{"class":224},"1.70",[129,988,989],{"class":253}," }\n",[129,991,993],{"class":131,"line":992},42,[129,994,995],{"class":253},"      }\n",[129,997,999],{"class":131,"line":998},43,[129,1000,417],{"class":253},[129,1002,1004],{"class":131,"line":1003},44,[129,1005,1006],{"class":253},"  ]\n",[129,1008,1010],{"class":131,"line":1009},45,[129,1011,440],{"class":253},[20,1013,1014,1015,1017,1018,1021,1022,1025,1026,1028,1029,1032],{},"Cards from CM-only sets (negative ",[126,1016,450],{},") have ",[126,1019,1020],{},"tcgplayer: null"," and all ",[126,1023,1024],{},"ext_*"," fields are ",[126,1027,758],{},". The ",[126,1030,1031],{},"total"," field is the full card count for the set, not just the current page.",[48,1034],{},[92,1036,1038],{"id":1037},"get-a-single-card-by-id","Get a Single Card by ID",[20,1040,1041,1042,1045],{},"Once you have a card ",[126,1043,1044],{},"id"," from a set or search response, fetch its full details directly:",[119,1047,1049],{"className":121,"code":1048,"language":123,"meta":124,"style":124},"curl -H \"X-API-Key: your_api_key\" \\\n     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fcards\u002Fop_3f8a12c4e9b7d02f...\"\n",[126,1050,1051,1061],{"__ignoreMap":124},[129,1052,1053,1055,1057,1059],{"class":131,"line":132},[129,1054,221],{"class":142},[129,1056,225],{"class":224},[129,1058,228],{"class":146},[129,1060,231],{"class":224},[129,1062,1063],{"class":131,"line":139},[129,1064,1065],{"class":146},"     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fcards\u002Fop_3f8a12c4e9b7d02f...\"\n",[20,1067,483,1068,1070,1071,1074,1075,1078],{},[126,1069,1044],{}," must include the ",[126,1072,1073],{},"op_"," prefix. The response structure matches the card objects returned by ",[126,1076,1077],{},"\u002Fop\u002Fsets\u002F:setCode",".",[48,1080],{},[92,1082,1084],{"id":1083},"search-cards-by-name","Search Cards by Name",[119,1086,1088],{"className":121,"code":1087,"language":123,"meta":124,"style":124},"curl -H \"X-API-Key: your_api_key\" \\\n     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsearch?q=zoro&page=1&limit=20\"\n",[126,1089,1090,1100],{"__ignoreMap":124},[129,1091,1092,1094,1096,1098],{"class":131,"line":132},[129,1093,221],{"class":142},[129,1095,225],{"class":224},[129,1097,228],{"class":146},[129,1099,231],{"class":224},[129,1101,1102],{"class":131,"line":139},[129,1103,1104],{"class":146},"     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsearch?q=zoro&page=1&limit=20\"\n",[20,1106,1107,1108,1111,1112,1114],{},"Full-text search on card name and card number (",[126,1109,1110],{},"ILIKE %q%","). The ",[126,1113,517],{}," parameter defaults to 20, max 100.",[20,1116,1117],{},[25,1118,241],{},[119,1120,1122],{"className":244,"code":1121,"language":246,"meta":124,"style":124},"{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": \"op_3f8a12c4e9b7d02f...\",\n      \"card_number\": \"OP01-001\",\n      \"name\": \"Roronoa Zoro\",\n      \"sub_type_name\": \"Normal\",\n      \"rarity\": \"L\",\n      \"card_type\": \"Leader\",\n      \"tcgplayer\": {\n        \"url\": \"https:\u002F\u002Fwww.tcgplayer.com\u002Fproduct\u002F...\",\n        \"prices\": { \"low_price\": 1.20, \"market_price\": 1.76, \"high_price\": 3.50 }\n      },\n      \"cardmarket\": {\n        \"product_name\": \"Roronoa Zoro (OP01-001)\",\n        \"product_url\": \"https:\u002F\u002Fwww.cardmarket.com\u002F...\",\n        \"prices\": { \"avg\": 1.64, \"low\": 0.50, \"trend\": 1.70 }\n      }\n    }\n  ],\n  \"total\": 12,\n  \"page\": 1,\n  \"limit\": 20\n}\n",[126,1123,1124,1128,1138,1144,1148,1158,1168,1178,1188,1198,1208,1214,1224,1258,1262,1268,1278,1288,1318,1322,1326,1330,1341,1351,1360],{"__ignoreMap":124},[129,1125,1126],{"class":131,"line":132},[129,1127,254],{"class":253},[129,1129,1130,1132,1134,1136],{"class":131,"line":139},[129,1131,259],{"class":224},[129,1133,262],{"class":253},[129,1135,265],{"class":224},[129,1137,268],{"class":253},[129,1139,1140,1142],{"class":131,"line":150},[129,1141,273],{"class":224},[129,1143,276],{"class":253},[129,1145,1146],{"class":131,"line":157},[129,1147,281],{"class":253},[129,1149,1150,1152,1154,1156],{"class":131,"line":163},[129,1151,656],{"class":224},[129,1153,262],{"class":253},[129,1155,661],{"class":146},[129,1157,268],{"class":253},[129,1159,1160,1162,1164,1166],{"class":131,"line":296},[129,1161,668],{"class":224},[129,1163,262],{"class":253},[129,1165,673],{"class":146},[129,1167,268],{"class":253},[129,1169,1170,1172,1174,1176],{"class":131,"line":309},[129,1171,286],{"class":224},[129,1173,262],{"class":253},[129,1175,684],{"class":146},[129,1177,268],{"class":253},[129,1179,1180,1182,1184,1186],{"class":131,"line":322},[129,1181,702],{"class":224},[129,1183,262],{"class":253},[129,1185,707],{"class":146},[129,1187,268],{"class":253},[129,1189,1190,1192,1194,1196],{"class":131,"line":335},[129,1191,714],{"class":224},[129,1193,262],{"class":253},[129,1195,719],{"class":146},[129,1197,268],{"class":253},[129,1199,1200,1202,1204,1206],{"class":131,"line":346},[129,1201,727],{"class":224},[129,1203,262],{"class":253},[129,1205,732],{"class":146},[129,1207,268],{"class":253},[129,1209,1210,1212],{"class":131,"line":352},[129,1211,843],{"class":224},[129,1213,549],{"class":253},[129,1215,1216,1218,1220,1222],{"class":131,"line":357},[129,1217,851],{"class":224},[129,1219,262],{"class":253},[129,1221,856],{"class":146},[129,1223,268],{"class":253},[129,1225,1226,1228,1230,1233,1235,1237,1239,1242,1244,1246,1248,1251,1253,1256],{"class":131,"line":369},[129,1227,864],{"class":224},[129,1229,957],{"class":253},[129,1231,1232],{"class":224},"\"low_price\"",[129,1234,262],{"class":253},[129,1236,877],{"class":224},[129,1238,968],{"class":253},[129,1240,1241],{"class":224},"\"market_price\"",[129,1243,262],{"class":253},[129,1245,890],{"class":224},[129,1247,968],{"class":253},[129,1249,1250],{"class":224},"\"high_price\"",[129,1252,262],{"class":253},[129,1254,1255],{"class":224},"3.50",[129,1257,989],{"class":253},[129,1259,1260],{"class":131,"line":381},[129,1261,915],{"class":253},[129,1263,1264,1266],{"class":131,"line":393},[129,1265,921],{"class":224},[129,1267,549],{"class":253},[129,1269,1270,1272,1274,1276],{"class":131,"line":404},[129,1271,929],{"class":224},[129,1273,262],{"class":253},[129,1275,934],{"class":146},[129,1277,268],{"class":253},[129,1279,1280,1282,1284,1286],{"class":131,"line":414},[129,1281,942],{"class":224},[129,1283,262],{"class":253},[129,1285,947],{"class":146},[129,1287,268],{"class":253},[129,1289,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316],{"class":131,"line":420},[129,1291,864],{"class":224},[129,1293,957],{"class":253},[129,1295,960],{"class":224},[129,1297,262],{"class":253},[129,1299,965],{"class":224},[129,1301,968],{"class":253},[129,1303,971],{"class":224},[129,1305,262],{"class":253},[129,1307,976],{"class":224},[129,1309,968],{"class":253},[129,1311,981],{"class":224},[129,1313,262],{"class":253},[129,1315,986],{"class":224},[129,1317,989],{"class":253},[129,1319,1320],{"class":131,"line":426},[129,1321,995],{"class":253},[129,1323,1324],{"class":131,"line":437},[129,1325,417],{"class":253},[129,1327,1328],{"class":131,"line":724},[129,1329,423],{"class":253},[129,1331,1332,1334,1336,1339],{"class":131,"line":737},[129,1333,429],{"class":224},[129,1335,262],{"class":253},[129,1337,1338],{"class":224},"12",[129,1340,268],{"class":253},[129,1342,1343,1345,1347,1349],{"class":131,"line":750},[129,1344,623],{"class":224},[129,1346,262],{"class":253},[129,1348,628],{"class":224},[129,1350,268],{"class":253},[129,1352,1353,1355,1357],{"class":131,"line":763},[129,1354,635],{"class":224},[129,1356,262],{"class":253},[129,1358,1359],{"class":224},"20\n",[129,1361,1362],{"class":131,"line":776},[129,1363,440],{"class":253},[20,1365,1366,1369,1370,1373],{},[25,1367,1368],{},"Known limitations:"," queries containing apostrophes (e.g. ",[126,1371,1372],{},"d'artagnan",") return 0 results. CM-only cards are not indexed — only TCG cards appear in search results.",[48,1375],{},[92,1377,1379],{"id":1378},"bulk-prices-for-a-set-pro","Bulk Prices for a Set (Pro)",[20,1381,1382,1383,1386],{},"If you only need raw prices for an entire set, the ",[126,1384,1385],{},"\u002Fop\u002Fprices"," endpoint returns all variants (Normal and Foil as separate rows) without pagination:",[119,1388,1390],{"className":121,"code":1389,"language":123,"meta":124,"style":124},"curl -H \"X-API-Key: your_api_key\" \\\n     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fprices?set_code=OP01\"\n",[126,1391,1392,1402],{"__ignoreMap":124},[129,1393,1394,1396,1398,1400],{"class":131,"line":132},[129,1395,221],{"class":142},[129,1397,225],{"class":224},[129,1399,228],{"class":146},[129,1401,231],{"class":224},[129,1403,1404],{"class":131,"line":139},[129,1405,1406],{"class":146},"     \"https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fprices?set_code=OP01\"\n",[20,1408,1409,1410,207,1413,1416],{},"You can use ",[126,1411,1412],{},"set_code=OP01",[126,1414,1415],{},"group_id=3188"," (at least one is required).",[20,1418,1419],{},[25,1420,241],{},[119,1422,1424],{"className":244,"code":1423,"language":246,"meta":124,"style":124},"{\n  \"success\": true,\n  \"group_id\": \"3188\",\n  \"total\": 159,\n  \"data\": [\n    {\n      \"card_number\": \"OP01-001\",\n      \"name\": \"Roronoa Zoro (001)\",\n      \"variant\": \"Normal\",\n      \"tcgplayer\": {\n        \"low_price\": 1.20,\n        \"market_price\": 1.76,\n        \"high_price\": 3.50,\n        \"mid_price\": 2.10,\n        \"direct_low_price\": 1.50,\n        \"updated_at\": \"2026-05-14T00:00:00Z\"\n      },\n      \"cardmarket\": {\n        \"avg\": 1.64,\n        \"low\": 0.50,\n        \"trend\": 1.70,\n        \"avg1\": 1.60,\n        \"avg7\": 1.65,\n        \"avg30\": 1.70,\n        \"updated_at\": \"2026-05-14T00:00:00Z\"\n      }\n    },\n    {\n      \"card_number\": \"OP01-001\",\n      \"name\": \"Roronoa Zoro (001) (Foil)\",\n      \"variant\": \"Foil\",\n      \"tcgplayer\": { \"low_price\": 3.50, \"market_price\": 4.20, \"high_price\": 6.00 },\n      \"cardmarket\": { \"avg\": 3.80, \"low\": 2.50, \"trend\": 3.90 }\n    }\n  ]\n}\n",[126,1425,1426,1430,1440,1451,1462,1468,1472,1482,1493,1504,1510,1521,1532,1543,1555,1567,1577,1581,1587,1598,1609,1620,1632,1644,1655,1663,1667,1671,1675,1685,1696,1707,1740,1773,1777,1781],{"__ignoreMap":124},[129,1427,1428],{"class":131,"line":132},[129,1429,254],{"class":253},[129,1431,1432,1434,1436,1438],{"class":131,"line":139},[129,1433,259],{"class":224},[129,1435,262],{"class":253},[129,1437,265],{"class":224},[129,1439,268],{"class":253},[129,1441,1442,1445,1447,1449],{"class":131,"line":150},[129,1443,1444],{"class":224},"  \"group_id\"",[129,1446,262],{"class":253},[129,1448,317],{"class":146},[129,1450,268],{"class":253},[129,1452,1453,1455,1457,1460],{"class":131,"line":157},[129,1454,429],{"class":224},[129,1456,262],{"class":253},[129,1458,1459],{"class":224},"159",[129,1461,268],{"class":253},[129,1463,1464,1466],{"class":131,"line":163},[129,1465,273],{"class":224},[129,1467,276],{"class":253},[129,1469,1470],{"class":131,"line":296},[129,1471,281],{"class":253},[129,1473,1474,1476,1478,1480],{"class":131,"line":309},[129,1475,668],{"class":224},[129,1477,262],{"class":253},[129,1479,673],{"class":146},[129,1481,268],{"class":253},[129,1483,1484,1486,1488,1491],{"class":131,"line":322},[129,1485,286],{"class":224},[129,1487,262],{"class":253},[129,1489,1490],{"class":146},"\"Roronoa Zoro (001)\"",[129,1492,268],{"class":253},[129,1494,1495,1498,1500,1502],{"class":131,"line":335},[129,1496,1497],{"class":224},"      \"variant\"",[129,1499,262],{"class":253},[129,1501,707],{"class":146},[129,1503,268],{"class":253},[129,1505,1506,1508],{"class":131,"line":346},[129,1507,843],{"class":224},[129,1509,549],{"class":253},[129,1511,1512,1515,1517,1519],{"class":131,"line":352},[129,1513,1514],{"class":224},"        \"low_price\"",[129,1516,262],{"class":253},[129,1518,877],{"class":224},[129,1520,268],{"class":253},[129,1522,1523,1526,1528,1530],{"class":131,"line":357},[129,1524,1525],{"class":224},"        \"market_price\"",[129,1527,262],{"class":253},[129,1529,890],{"class":224},[129,1531,268],{"class":253},[129,1533,1534,1537,1539,1541],{"class":131,"line":369},[129,1535,1536],{"class":224},"        \"high_price\"",[129,1538,262],{"class":253},[129,1540,1255],{"class":224},[129,1542,268],{"class":253},[129,1544,1545,1548,1550,1553],{"class":131,"line":381},[129,1546,1547],{"class":224},"        \"mid_price\"",[129,1549,262],{"class":253},[129,1551,1552],{"class":224},"2.10",[129,1554,268],{"class":253},[129,1556,1557,1560,1562,1565],{"class":131,"line":393},[129,1558,1559],{"class":224},"        \"direct_low_price\"",[129,1561,262],{"class":253},[129,1563,1564],{"class":224},"1.50",[129,1566,268],{"class":253},[129,1568,1569,1572,1574],{"class":131,"line":404},[129,1570,1571],{"class":224},"        \"updated_at\"",[129,1573,262],{"class":253},[129,1575,1576],{"class":146},"\"2026-05-14T00:00:00Z\"\n",[129,1578,1579],{"class":131,"line":414},[129,1580,915],{"class":253},[129,1582,1583,1585],{"class":131,"line":420},[129,1584,921],{"class":224},[129,1586,549],{"class":253},[129,1588,1589,1592,1594,1596],{"class":131,"line":426},[129,1590,1591],{"class":224},"        \"avg\"",[129,1593,262],{"class":253},[129,1595,965],{"class":224},[129,1597,268],{"class":253},[129,1599,1600,1603,1605,1607],{"class":131,"line":437},[129,1601,1602],{"class":224},"        \"low\"",[129,1604,262],{"class":253},[129,1606,976],{"class":224},[129,1608,268],{"class":253},[129,1610,1611,1614,1616,1618],{"class":131,"line":724},[129,1612,1613],{"class":224},"        \"trend\"",[129,1615,262],{"class":253},[129,1617,986],{"class":224},[129,1619,268],{"class":253},[129,1621,1622,1625,1627,1630],{"class":131,"line":737},[129,1623,1624],{"class":224},"        \"avg1\"",[129,1626,262],{"class":253},[129,1628,1629],{"class":224},"1.60",[129,1631,268],{"class":253},[129,1633,1634,1637,1639,1642],{"class":131,"line":750},[129,1635,1636],{"class":224},"        \"avg7\"",[129,1638,262],{"class":253},[129,1640,1641],{"class":224},"1.65",[129,1643,268],{"class":253},[129,1645,1646,1649,1651,1653],{"class":131,"line":763},[129,1647,1648],{"class":224},"        \"avg30\"",[129,1650,262],{"class":253},[129,1652,986],{"class":224},[129,1654,268],{"class":253},[129,1656,1657,1659,1661],{"class":131,"line":776},[129,1658,1571],{"class":224},[129,1660,262],{"class":253},[129,1662,1576],{"class":146},[129,1664,1665],{"class":131,"line":789},[129,1666,995],{"class":253},[129,1668,1669],{"class":131,"line":802},[129,1670,349],{"class":253},[129,1672,1673],{"class":131,"line":815},[129,1674,281],{"class":253},[129,1676,1677,1679,1681,1683],{"class":131,"line":827},[129,1678,668],{"class":224},[129,1680,262],{"class":253},[129,1682,673],{"class":146},[129,1684,268],{"class":253},[129,1686,1687,1689,1691,1694],{"class":131,"line":840},[129,1688,286],{"class":224},[129,1690,262],{"class":253},[129,1692,1693],{"class":146},"\"Roronoa Zoro (001) (Foil)\"",[129,1695,268],{"class":253},[129,1697,1698,1700,1702,1705],{"class":131,"line":848},[129,1699,1497],{"class":224},[129,1701,262],{"class":253},[129,1703,1704],{"class":146},"\"Foil\"",[129,1706,268],{"class":253},[129,1708,1709,1711,1713,1715,1717,1719,1721,1723,1725,1728,1730,1732,1734,1737],{"class":131,"line":861},[129,1710,843],{"class":224},[129,1712,957],{"class":253},[129,1714,1232],{"class":224},[129,1716,262],{"class":253},[129,1718,1255],{"class":224},[129,1720,968],{"class":253},[129,1722,1241],{"class":224},[129,1724,262],{"class":253},[129,1726,1727],{"class":224},"4.20",[129,1729,968],{"class":253},[129,1731,1250],{"class":224},[129,1733,262],{"class":253},[129,1735,1736],{"class":224},"6.00",[129,1738,1739],{"class":253}," },\n",[129,1741,1742,1744,1746,1748,1750,1753,1755,1757,1759,1762,1764,1766,1768,1771],{"class":131,"line":869},[129,1743,921],{"class":224},[129,1745,957],{"class":253},[129,1747,960],{"class":224},[129,1749,262],{"class":253},[129,1751,1752],{"class":224},"3.80",[129,1754,968],{"class":253},[129,1756,971],{"class":224},[129,1758,262],{"class":253},[129,1760,1761],{"class":224},"2.50",[129,1763,968],{"class":253},[129,1765,981],{"class":224},[129,1767,262],{"class":253},[129,1769,1770],{"class":224},"3.90",[129,1772,989],{"class":253},[129,1774,1775],{"class":131,"line":882},[129,1776,417],{"class":253},[129,1778,1779],{"class":131,"line":895},[129,1780,1006],{"class":253},[129,1782,1783],{"class":131,"line":906},[129,1784,440],{"class":253},[1786,1787,1788],"blockquote",{},[20,1789,1790,1793],{},[25,1791,1792],{},"Pro feature"," — a 7-day free trial is available from your dashboard. Ideal for building a collection value calculator: fetch once per day and cache.",[48,1795],{},[51,1797,1799],{"id":1798},"building-a-price-tracker-in-javascript","Building a Price Tracker in JavaScript",[20,1801,1802],{},"Here's a minimal example that fetches the top 10 most expensive cards from any OPCG set by TCGPlayer market price:",[119,1804,1808],{"className":1805,"code":1806,"language":1807,"meta":124,"style":124},"language-javascript shiki shiki-themes github-light github-dark","async function getTopOPCards(setCode, apiKey) {\n  const res = await fetch(\n    `https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsets\u002F${setCode}?limit=200`,\n    { headers: { 'X-API-Key': apiKey } }\n  );\n  const data = await res.json();\n\n  return data.data\n    .sort((a, b) =>\n      (b.tcgplayer?.prices?.market_price ?? 0) -\n      (a.tcgplayer?.prices?.market_price ?? 0)\n    )\n    .slice(0, 10);\n}\n\nconst top10 = await getTopOPCards('OP01', 'your_api_key');\nconsole.log(top10);\n","javascript",[126,1809,1810,1837,1857,1869,1880,1885,1904,1908,1916,1940,1956,1968,1973,1993,1997,2001,2027],{"__ignoreMap":124},[129,1811,1812,1816,1819,1822,1825,1829,1831,1834],{"class":131,"line":132},[129,1813,1815],{"class":1814},"szBVR","async",[129,1817,1818],{"class":1814}," function",[129,1820,1821],{"class":142}," getTopOPCards",[129,1823,1824],{"class":253},"(",[129,1826,1828],{"class":1827},"s4XuR","setCode",[129,1830,968],{"class":253},[129,1832,1833],{"class":1827},"apiKey",[129,1835,1836],{"class":253},") {\n",[129,1838,1839,1842,1845,1848,1851,1854],{"class":131,"line":139},[129,1840,1841],{"class":1814},"  const",[129,1843,1844],{"class":224}," res",[129,1846,1847],{"class":1814}," =",[129,1849,1850],{"class":1814}," await",[129,1852,1853],{"class":142}," fetch",[129,1855,1856],{"class":253},"(\n",[129,1858,1859,1862,1864,1867],{"class":131,"line":150},[129,1860,1861],{"class":146},"    `https:\u002F\u002Fapi.pokewallet.io\u002Fop\u002Fsets\u002F${",[129,1863,1828],{"class":253},[129,1865,1866],{"class":146},"}?limit=200`",[129,1868,268],{"class":253},[129,1870,1871,1874,1877],{"class":131,"line":157},[129,1872,1873],{"class":253},"    { headers: { ",[129,1875,1876],{"class":146},"'X-API-Key'",[129,1878,1879],{"class":253},": apiKey } }\n",[129,1881,1882],{"class":131,"line":163},[129,1883,1884],{"class":253},"  );\n",[129,1886,1887,1889,1892,1894,1896,1899,1901],{"class":131,"line":296},[129,1888,1841],{"class":1814},[129,1890,1891],{"class":224}," data",[129,1893,1847],{"class":1814},[129,1895,1850],{"class":1814},[129,1897,1898],{"class":253}," res.",[129,1900,246],{"class":142},[129,1902,1903],{"class":253},"();\n",[129,1905,1906],{"class":131,"line":309},[129,1907,154],{"emptyLinePlaceholder":153},[129,1909,1910,1913],{"class":131,"line":322},[129,1911,1912],{"class":1814},"  return",[129,1914,1915],{"class":253}," data.data\n",[129,1917,1918,1921,1924,1927,1929,1931,1934,1937],{"class":131,"line":335},[129,1919,1920],{"class":253},"    .",[129,1922,1923],{"class":142},"sort",[129,1925,1926],{"class":253},"((",[129,1928,43],{"class":1827},[129,1930,968],{"class":253},[129,1932,1933],{"class":1827},"b",[129,1935,1936],{"class":253},") ",[129,1938,1939],{"class":1814},"=>\n",[129,1941,1942,1945,1948,1951,1953],{"class":131,"line":346},[129,1943,1944],{"class":253},"      (b.tcgplayer?.prices?.market_price ",[129,1946,1947],{"class":1814},"??",[129,1949,1950],{"class":224}," 0",[129,1952,1936],{"class":253},[129,1954,1955],{"class":1814},"-\n",[129,1957,1958,1961,1963,1965],{"class":131,"line":352},[129,1959,1960],{"class":253},"      (a.tcgplayer?.prices?.market_price ",[129,1962,1947],{"class":1814},[129,1964,1950],{"class":224},[129,1966,1967],{"class":253},")\n",[129,1969,1970],{"class":131,"line":357},[129,1971,1972],{"class":253},"    )\n",[129,1974,1975,1977,1980,1982,1985,1987,1990],{"class":131,"line":369},[129,1976,1920],{"class":253},[129,1978,1979],{"class":142},"slice",[129,1981,1824],{"class":253},[129,1983,1984],{"class":224},"0",[129,1986,968],{"class":253},[129,1988,1989],{"class":224},"10",[129,1991,1992],{"class":253},");\n",[129,1994,1995],{"class":131,"line":381},[129,1996,440],{"class":253},[129,1998,1999],{"class":131,"line":393},[129,2000,154],{"emptyLinePlaceholder":153},[129,2002,2003,2006,2009,2011,2013,2015,2017,2020,2022,2025],{"class":131,"line":404},[129,2004,2005],{"class":1814},"const",[129,2007,2008],{"class":224}," top10",[129,2010,1847],{"class":1814},[129,2012,1850],{"class":1814},[129,2014,1821],{"class":142},[129,2016,1824],{"class":253},[129,2018,2019],{"class":146},"'OP01'",[129,2021,968],{"class":253},[129,2023,2024],{"class":146},"'your_api_key'",[129,2026,1992],{"class":253},[129,2028,2029,2032,2035],{"class":131,"line":414},[129,2030,2031],{"class":253},"console.",[129,2033,2034],{"class":142},"log",[129,2036,2037],{"class":253},"(top10);\n",[48,2039],{},[51,2041,2043],{"id":2042},"normal-vs-foil-how-opcg-pricing-works","Normal vs. Foil — How OPCG Pricing Works",[20,2045,2046,2047,2050,2051,2053,2054,2057,2058,207,2060,211],{},"In the One Piece Card Game, ",[25,2048,2049],{},"Normal and Foil variants are distinct products"," on both TCGPlayer and CardMarket. The ",[126,2052,1385],{}," endpoint reflects this directly — each variant appears as a separate row with its own ",[126,2055,2056],{},"variant"," field (",[126,2059,707],{},[126,2061,1704],{},[20,2063,483,2064,2066,2067,2070,2071,1078],{},[126,2065,1077],{}," endpoint returns the card's primary variant (usually Normal) with prices nested inside ",[126,2068,2069],{},"tcgplayer.prices"," and ",[126,2072,2073],{},"cardmarket.prices",[2075,2076,2077,2090],"table",{},[2078,2079,2080],"thead",{},[2081,2082,2083,2087],"tr",{},[2084,2085,2086],"th",{},"Endpoint",[2084,2088,2089],{},"Foil handling",[2091,2092,2093,2104],"tbody",{},[2081,2094,2095,2101],{},[2096,2097,2098],"td",{},[126,2099,2100],{},"GET \u002Fop\u002Fsets\u002F:setCode",[2096,2102,2103],{},"Primary variant per card (Normal by default)",[2081,2105,2106,2114],{},[2096,2107,2108,28,2111],{},[126,2109,2110],{},"GET \u002Fop\u002Fprices",[59,2112,2113],{},"(Pro)",[2096,2115,2116,2117,2070,2120],{},"Separate rows per variant — ",[126,2118,2119],{},"variant: \"Normal\"",[126,2121,2122],{},"variant: \"Foil\"",[20,2124,2125,2126,2128,2129,207,2132,2135],{},"A ",[126,2127,758],{}," value on ",[126,2130,2131],{},"tcgplayer",[126,2133,2134],{},"cardmarket"," means no market data is available for that source.",[48,2137],{},[51,2139,2141],{"id":2140},"rate-limits","Rate Limits",[20,2143,2144],{},"Rate limits are shared across Pokémon and One Piece endpoints and apply both hourly and daily:",[2075,2146,2147,2163],{},[2078,2148,2149],{},[2081,2150,2151,2154,2157,2160],{},[2084,2152,2153],{},"Plan",[2084,2155,2156],{},"Hourly limit",[2084,2158,2159],{},"Daily limit",[2084,2161,2162],{},"Price",[2091,2164,2165,2179,2193,2207],{},[2081,2166,2167,2170,2173,2176],{},[2096,2168,2169],{},"Free",[2096,2171,2172],{},"100 requests",[2096,2174,2175],{},"1,000 requests",[2096,2177,2178],{},"$0\u002Fmonth",[2081,2180,2181,2184,2187,2190],{},[2096,2182,2183],{},"Coffee ☕",[2096,2185,2186],{},"1,000+ requests",[2096,2188,2189],{},"10,000+ requests",[2096,2191,2192],{},"Buy a coffee on Ko-fi",[2081,2194,2195,2198,2201,2204],{},[2096,2196,2197],{},"Pro",[2096,2199,2200],{},"5,000 requests",[2096,2202,2203],{},"50,000 requests",[2096,2205,2206],{},"€20\u002Fmonth",[2081,2208,2209,2212,2215,2217],{},[2096,2210,2211],{},"Business",[2096,2213,2214],{},"Custom",[2096,2216,2214],{},[2096,2218,2219],{},"Contact us",[20,2221,2222],{},"Every API response includes rate limit headers so you can track usage:",[119,2224,2227],{"className":2225,"code":2226,"language":188},[186],"X-RateLimit-Limit-Hour: 100\nX-RateLimit-Remaining-Hour: 95\nX-RateLimit-Limit-Day: 1000\nX-RateLimit-Remaining-Day: 823\n",[126,2228,2226],{"__ignoreMap":124},[48,2230],{},[51,2232,2234],{"id":2233},"frequently-asked-questions","Frequently Asked Questions",[92,2236,2238],{"id":2237},"is-there-a-free-one-piece-card-game-api","Is there a free One Piece Card Game API?",[20,2240,2241],{},"BerryWallet offers a free tier that requires no credit card and provides 100 requests per hour and 1,000 requests per day. Developers can fetch real-time OPCG card prices, browse all sets, and search by card name without spending anything. Paid plans start at €20\u002Fmonth (Pro: 5,000 requests\u002Fhour, 50,000\u002Fday).",[92,2243,2245],{"id":2244},"what-one-piece-card-price-data-does-berrywallet-return","What One Piece card price data does BerryWallet return?",[20,2247,2248,2249,2251,2252,2254,2255,968,2258,2261,2262,2265,2266,968,2269,2261,2272,2275,2276,2278,2279,968,2282,968,2285,2288,2289,2292],{},"BerryWallet returns real-time prices from two sources for every card: ",[25,2250,69],{}," (USD, North American market) and ",[25,2253,73],{}," (EUR, European market). TCGPlayer prices include ",[126,2256,2257],{},"low_price",[126,2259,2260],{},"market_price",", and ",[126,2263,2264],{},"high_price",". CardMarket prices include ",[126,2267,2268],{},"avg",[126,2270,2271],{},"low",[126,2273,2274],{},"trend",". The Pro ",[126,2277,1385],{}," endpoint additionally returns historical averages (",[126,2280,2281],{},"avg1",[126,2283,2284],{},"avg7",[126,2286,2287],{},"avg30",") and ",[126,2290,2291],{},"direct_low_price"," from TCGPlayer Direct.",[92,2294,2296],{"id":2295},"does-berrywallet-support-european-prices-in-eur","Does BerryWallet support European prices in EUR?",[20,2298,2299,2300,2302,2303,2305,2306,2308,2309,2311],{},"BerryWallet returns CardMarket EUR prices for every card that has European market data. The ",[126,2301,2073],{}," object includes ",[126,2304,2268],{}," (average sale price in EUR), ",[126,2307,2271],{}," (lowest listed price), and ",[126,2310,2274],{}," (7-day trend price). European developers can use these fields directly without any currency conversion. CardMarket covers all major European markets including Germany, France, Italy, Spain, and the Netherlands.",[92,2313,2315],{"id":2314},"does-berrywallet-support-japanese-one-piece-cards","Does BerryWallet support Japanese One Piece cards?",[20,2317,2318,2319,2322,2323,2326,2327,2330],{},"BerryWallet indexes both English and Japanese One Piece Card Game sets. Pass ",[126,2320,2321],{},"language=jp"," to ",[126,2324,2325],{},"GET \u002Fop\u002Fsets"," to retrieve only Japanese sets, or ",[126,2328,2329],{},"language=en"," for English. Japanese sets return the same price structure — TCGPlayer USD and CardMarket EUR — where marketplace data is available.",[92,2332,2334],{"id":2333},"which-one-piece-sets-are-available-in-berrywallet","Which One Piece sets are available in BerryWallet?",[20,2336,2337,2338,2341,2342,2344],{},"BerryWallet covers every released One Piece Card Game set starting from ",[25,2339,2340],{},"OP01 Romance Dawn"," (December 2022) through the latest releases, including Extra Booster sets (EB series) in both English and Japanese. Call ",[126,2343,2325],{}," to retrieve the complete list with set codes, release dates, and language tags.",[92,2346,2348],{"id":2347},"how-often-does-berrywallet-update-prices","How often does BerryWallet update prices?",[20,2350,2351,2352,2355,2356,2358,2359,2362],{},"BerryWallet updates card prices from both TCGPlayer and CardMarket ",[25,2353,2354],{},"once per day",". Every price object returned by ",[126,2357,1385],{}," includes an ",[126,2360,2361],{},"updated_at"," ISO timestamp. The recommended usage pattern is to fetch prices once daily and cache the response locally.",[92,2364,2366],{"id":2365},"what-is-the-difference-between-tcgplayer-and-cardmarket-prices-in-berrywallet","What is the difference between TCGPlayer and CardMarket prices in BerryWallet?",[20,2368,2369,2370,2372,2373,2376,2377,2379,2380,2383],{},"TCGPlayer and CardMarket are separate secondary marketplaces that reflect distinct regional demand. ",[25,2371,69],{}," serves the United States and Canada market and prices are denominated in ",[25,2374,2375],{},"USD",". ",[25,2378,73],{}," serves the European market and prices are denominated in ",[25,2381,2382],{},"EUR",". The same One Piece card regularly trades at different price points across the two platforms. BerryWallet returns both in a single response so applications can display the correct regional price without additional API calls.",[92,2385,2387],{"id":2386},"do-i-need-a-separate-api-key-for-berrywallet-and-pokéwallet","Do I need a separate API key for BerryWallet and PokéWallet?",[20,2389,2390,2391,2393],{},"BerryWallet and PokéWallet share a single API key. The same key authenticates requests to both the One Piece (",[126,2392,181],{},") and Pokémon TCG endpoints, and the rate limit quota is shared across both. There is no separate signup or additional cost to access BerryWallet data.",[92,2395,2397],{"id":2396},"can-i-retrieve-one-piece-card-images-through-berrywallet","Can I retrieve One Piece card images through BerryWallet?",[20,2399,483,2400,2403,2404,2406,2407,2410],{},[126,2401,2402],{},"GET \u002Fimages\u002F:id"," endpoint serves One Piece card images via CDN. The ",[126,2405,1044],{}," path parameter accepts the card's number (e.g. ",[126,2408,2409],{},"OP01-001","). Images are returned as binary content and can be embedded directly in any web or mobile application.",[92,2412,2414],{"id":2413},"which-programming-languages-work-with-berrywallet","Which programming languages work with BerryWallet?",[20,2416,2417,2418,2421],{},"BerryWallet is a standard REST API that works with any language capable of making HTTP GET requests: JavaScript, Python, PHP, Ruby, Go, Swift, Kotlin, Java, Rust, and others. Authentication requires only the ",[126,2419,2420],{},"X-API-Key"," header. No SDK or client library is needed.",[48,2423],{},[51,2425,2427],{"id":2426},"start-building-with-berrywallet","Start Building with BerryWallet",[20,2429,2430,2431,2434,2435,2438,2439,2441,2442,1078],{},"BerryWallet is ",[25,2432,2433],{},"live and free to use",". Visit ",[43,2436,2437],{"href":45},"pokewallet.io\u002Fberrywallet"," to get started, grab your API key at ",[43,2440,102],{"href":101},", and check the full endpoint reference at ",[43,2443,2445],{"href":2444},"\u002Fberrywallet-docs","pokewallet.io\u002Fberrywallet-docs",[20,2447,2448,2449,2455],{},"Questions? Join the ",[43,2450,2454],{"href":2451,"rel":2452},"https:\u002F\u002Fdiscord.gg\u002FznDxEjmDVP",[2453],"nofollow","Discord community"," — we're happy to help.",[2457,2458,2459],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":124,"searchDepth":139,"depth":139,"links":2461},[2462,2463,2468,2475,2476,2477,2478,2490],{"id":53,"depth":139,"text":54},{"id":89,"depth":139,"text":90,"children":2464},[2465,2466,2467],{"id":94,"depth":150,"text":95},{"id":113,"depth":150,"text":114},{"id":174,"depth":150,"text":175},{"id":195,"depth":139,"text":196,"children":2469},[2470,2471,2472,2473,2474],{"id":199,"depth":150,"text":200},{"id":456,"depth":150,"text":457},{"id":1037,"depth":150,"text":1038},{"id":1083,"depth":150,"text":1084},{"id":1378,"depth":150,"text":1379},{"id":1798,"depth":139,"text":1799},{"id":2042,"depth":139,"text":2043},{"id":2140,"depth":139,"text":2141},{"id":2233,"depth":139,"text":2234,"children":2479},[2480,2481,2482,2483,2484,2485,2486,2487,2488,2489],{"id":2237,"depth":150,"text":2238},{"id":2244,"depth":150,"text":2245},{"id":2295,"depth":150,"text":2296},{"id":2314,"depth":150,"text":2315},{"id":2333,"depth":150,"text":2334},{"id":2347,"depth":150,"text":2348},{"id":2365,"depth":150,"text":2366},{"id":2386,"depth":150,"text":2387},{"id":2396,"depth":150,"text":2397},{"id":2413,"depth":150,"text":2414},{"id":2426,"depth":139,"text":2427},"Developer Guide","2026-05-15","A complete developer guide to BerryWallet — the One Piece Card Game API by PokéWallet. Fetch real-time TCGPlayer and CardMarket prices for all OP sets. Free tier available.","md","\u002Fblog\u002Fone-piece\u002F2026\u002F05\u002Fone-piece-card-game-api-guide.webp","Code editor showing a REST API call fetching One Piece card prices, with OPCG card art in the background.",{},"\u002Fblog\u002Fone-piece\u002F2026\u002F05\u002Fone-piece-card-game-api-guide-real-time-prices","8 min read",{"title":5,"description":2493},"blog\u002Fone-piece\u002F2026\u002F05\u002Fone-piece-card-game-api-guide-real-time-prices",[2503,2504,2505,2506,2507,2508,2509,2510],"one piece card game api","opcg api","one piece tcg api","one piece card price api","op card api","one piece card game developer","berrywallet","berrywallet api","fPgNKgN6ZjVAPuzfv-pdBEeZCTeiRtxUXMvmN1SVxOY",1790500214657]