[{"data":1,"prerenderedAt":4276},["ShallowReactive",2],{"blog-lorcana-api-card-prices-tcgplayer-cardmarket":3,"blog-related-lorcana-api-card-prices-tcgplayer-cardmarket":4275},{"id":4,"title":5,"author":6,"body":7,"category":4255,"date":4256,"description":4257,"extension":4258,"image":4259,"imageAlt":4260,"imageCredit":6,"meta":4261,"navigation":2574,"path":4262,"readTime":4263,"seo":4264,"stem":4265,"tags":4266,"updatedAt":4273,"__hash__":4274},"content\u002Fblog\u002Florcana\u002F2026\u002F10\u002Florcana-api-card-prices-tcgplayer-cardmarket.md","Disney Lorcana API: Card Prices from TCGplayer & CardMarket","PokéWallet Team",{"type":8,"value":9,"toc":4225},"minimark",[10,14,29,79,82,89,102,107,246,249,288,290,295,313,338,472,475,545,569,727,745,749,760,796,799,1644,1647,1729,1733,1740,1820,1856,1880,1899,1903,1919,1926,1954,1960,1963,2031,2049,2055,2058,2103,2106,2218,2233,2247,2253,2256,2325,2332,2404,2412,2418,2425,2507,2518,2522,2525,2529,3258,3272,3276,3930,3946,3950,3953,3970,3976,3979,3999,4002,4013,4015,4019,4023,4031,4035,4038,4042,4049,4053,4078,4082,4094,4098,4104,4108,4111,4115,4125,4127,4137,4139,4143,4146,4186,4191,4214,4216,4221],[11,12,5],"h1",{"id":13},"disney-lorcana-api-card-prices-from-tcgplayer-cardmarket",[15,16,18,19],"div",{"style":17},"background: rgba(14, 165, 233, 0.15); border-left: 4px solid #0ea5e9; padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 4px;","\n  ",[20,21,23,24,28],"p",{"style":22},"margin: 0; font-size: 0.9rem; color: #e0e0e0;","\n    ",[25,26,27],"strong",{},"🔵 IN THIS GUIDE:"," How to pull Disney Lorcana card data and TCGplayer + CardMarket prices from the PokéWallet API, using real responses captured on October 21, 2026. The catalog is free on every plan. Whole-set prices and analytics need Ultra or the 7-day trial, and Pro does not cover them.\n  ",[30,31,32],"blockquote",{},[20,33,34,37,38,42,43,46,47,50,51,54,55,58,59,62,63,66,67,70,71,74,75,78],{},[25,35,36],{},"Quick Answer:"," The PokéWallet API serves Disney Lorcana under ",[39,40,41],"code",{},"https:\u002F\u002Fapi.pokewallet.io\u002Flor\u002F…",", covering ",[25,44,45],{},"24 sets",", from The First Chapter to Hyperia City. Sets, cards, search and images are ",[25,48,49],{},"free",", including on the free tier (",[25,52,53],{},"100 requests\u002Fhour, 1,000\u002Fday",", no credit card), and card lookups and search already include each card's current prices. Whole-set prices and analytics (statistics, completion value, trending sets, top cards) require the ",[25,56,57],{},"Ultra plan at €29\u002Fmonth"," or the ",[25,60,61],{},"7-day trial",". ",[25,64,65],{},"Pro is not enough."," Prices come from ",[25,68,69],{},"TCGplayer (USD)"," and ",[25,72,73],{},"CardMarket (EUR)"," and refresh ",[25,76,77],{},"once a day",", and the same key covers 11 other card games.",[20,80,81],{},"Lorcana has a healthy developer scene for card data. Deckbuilders, collection apps and Discord bots all need card text, ink colors and images, and good sources for those already exist. Prices are harder. Lorcana sells on both sides of the Atlantic, so a collector in Europe and one in the US look at different marketplaces, in different currencies, with different names for the same foil.",[20,83,84,85,88],{},"This guide shows the Lorcana endpoints exactly as they responded on October 21, 2026, using real field names and real numbers. We start with the free catalog, move to the Ultra price and analytics endpoints, and finish with JavaScript and Python you can paste in. Along the way we cover the Lorcana-specific details that break a first integration: numeric set codes, \"Cold Foil\" on one marketplace and \"foil\" on the other, numbers sent as strings, and a CardMarket block that can be ",[39,86,87],{},"null",".",[20,90,91,92,97,98,88],{},"If you read our ",[93,94,96],"a",{"href":95},"\u002Fblog\u002Friftbound-api-card-prices-tcgplayer-cardmarket","Riftbound API guide",", the shape is the same with a different path prefix. For the overview of all 12 games, start from the ",[93,99,101],{"href":100},"\u002Fblog\u002Ftcg-price-api-12-card-games-one-key","TCG price API hub",[103,104,106],"h3",{"id":105},"key-takeaways","Key Takeaways",[108,109,110,135,145,168,175,189,222,239],"ul",{},[111,112,113,114,117,118,121,122,121,125,121,128,70,131,134],"li",{},"🆓 ",[25,115,116],{},"The catalog is free."," ",[39,119,120],{},"\u002Flor\u002Fsets",", ",[39,123,124],{},"\u002Flor\u002Fsets\u002F:set",[39,126,127],{},"\u002Flor\u002Fcards\u002F:id",[39,129,130],{},"\u002Flor\u002Fsearch",[39,132,133],{},"\u002Flor\u002Fimages\u002F:id"," work on every plan, and card lookups and search already return that card's current TCGplayer and CardMarket prices.",[111,136,137,138,117,141,144],{},"💰 ",[25,139,140],{},"Whole-set prices and analytics need Ultra.",[39,142,143],{},"\u002Flor\u002Fprices\u002F:set",", statistics, completion value, trending and top cards are Ultra-only (€29\u002Fmonth) or on the 7-day trial. Pro unlocks only Pokémon and One Piece.",[111,146,147,148,151,152,117,155,70,158,117,161,164,165,167],{},"🔢 ",[25,149,150],{},"Lorcana set codes are numbers."," Attack of the Vine! is ",[39,153,154],{},"set_code",[39,156,157],{},"\"13\"",[39,159,160],{},"set_id",[39,162,163],{},"\"24666\"",". Store the ",[39,166,160],{}," so the two never get mixed up.",[111,169,170,171,174],{},"✨ ",[25,172,173],{},"\"Cold Foil\" on TCGplayer is \"foil\" on CardMarket."," Lowercasing the variant name is not enough to join the two marketplaces. You need a small mapping.",[111,176,177,178,181,182,185,186,88],{},"🧮 ",[25,179,180],{},"Enchanted and Iconic cards are 98.5% of a set's cost."," Of the ",[25,183,184],{},"$6,842.65"," TCGplayer estimate for one copy of every Attack of the Vine! card, the 18 Enchanted and 2 Iconic cards account for ",[25,187,188],{},"$6,740.99",[111,190,191,192,117,195,121,198,121,201,70,204,207,208,211,212,215,216,219,220,88],{},"🔤 ",[25,193,194],{},"Expect strings and nulls.",[39,196,197],{},"cost_ink",[39,199,200],{},"strength",[39,202,203],{},"willpower",[39,205,206],{},"lore_value"," arrive as strings, ",[39,209,210],{},"ink_type"," can be ",[39,213,214],{},"\"Amethyst;Sapphire\"",", and a card's ",[39,217,218],{},"cardmarket"," block can be ",[39,221,87],{},[111,223,224,225,228,229,121,232,121,235,238],{},"📉 ",[25,226,227],{},"No price history for Lorcana."," History is Pokémon-only. You get CardMarket rolling averages (",[39,230,231],{},"avg1",[39,233,234],{},"avg7",[39,236,237],{},"avg30",") and 7-day changes from the trending and growth endpoints.",[111,240,241,242,245],{},"🔑 ",[25,243,244],{},"One key, 12 games."," The key you create for Lorcana also reads Pokémon, One Piece, Magic, Yu-Gi-Oh!, Riftbound and six more games.",[247,248],"hr",{},[15,250,18,252,18,256],{"style":251},"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,253,255],{"style":254},"margin: 0 0 1rem 0; font-weight: 600; font-size: 1.1rem; color: #e0e0e0;","⚡ Quick Navigation",[15,257,23,259,23,264,23,268,23,272,23,276,23,280,23,284,18],{"style":258},"display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center;",[93,260,263],{"href":261,"style":262},"#what-the-api-covers","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);","📦 Coverage",[93,265,267],{"href":266,"style":262},"#your-first-request","📡 First Request",[93,269,271],{"href":270,"style":262},"#free-endpoints","🆓 Free",[93,273,275],{"href":274,"style":262},"#ultra-endpoints-prices-analytics","💰 Ultra",[93,277,279],{"href":278,"style":262},"#code-examples-javascript-python","🛠 Code",[93,281,283],{"href":282,"style":262},"#how-it-compares-to-the-alternatives","⚖️ Alternatives",[93,285,287],{"href":286,"style":262},"#frequently-asked-questions","❓ FAQ",[247,289],{},[291,292,294],"h2",{"id":293},"what-the-api-covers","What the API Covers",[20,296,297,298,301,302,305,306,308,309,312],{},"Disney Lorcana uses the game code ",[39,299,300],{},"lor",", and every Lorcana endpoint sits under ",[39,303,304],{},"https:\u002F\u002Fapi.pokewallet.io\u002Flor\u002F",". On October 21, 2026 the sets endpoint reported ",[25,307,45],{}," (",[39,310,311],{},"\"total\": 24",").",[20,314,315,316,308,319,322,323,308,326,329,330,333,334,337],{},"Those 24 entries are the fourteen main sets, from ",[25,317,318],{},"The First Chapter",[39,320,321],{},"\"1\"",", August 2023) to ",[25,324,325],{},"Hyperia City",[39,327,328],{},"\"14\"",", October 16, 2026), plus the three Illumineer's Quest products (",[39,331,332],{},"Q1","–",[39,335,336],{},"Q3",") and the promo groups. A few rows from the live response show the range:",[339,340,341,365],"table",{},[342,343,344],"thead",{},[345,346,347,351,355,359,362],"tr",{},[348,349,350],"th",{},"Set",[348,352,353],{},[39,354,154],{},[348,356,357],{},[39,358,160],{},[348,360,361],{},"Cards",[348,363,364],{},"Release date",[366,367,368,389,410,430,450],"tbody",{},[345,369,370,373,378,383,386],{},[371,372,318],"td",{},[371,374,375],{},[39,376,377],{},"1",[371,379,380],{},[39,381,382],{},"22937",[371,384,385],{},"232",[371,387,388],{},"2023-08-18",[345,390,391,394,399,404,407],{},[371,392,393],{},"Attack of the Vine!",[371,395,396],{},[39,397,398],{},"13",[371,400,401],{},[39,402,403],{},"24666",[371,405,406],{},"252",[371,408,409],{},"2026-07-17",[345,411,412,414,419,424,427],{},[371,413,325],{},[371,415,416],{},[39,417,418],{},"14",[371,420,421],{},[39,422,423],{},"24740",[371,425,426],{},"0",[371,428,429],{},"2026-10-16",[345,431,432,435,439,444,447],{},[371,433,434],{},"Illumineer's Quest: Deep Trouble",[371,436,437],{},[39,438,332],{},[371,440,441],{},[39,442,443],{},"23528",[371,445,446],{},"40",[371,448,449],{},"2024-05-17",[345,451,452,455,460,465,468],{},[371,453,454],{},"Lorcana Challenge Promos",[371,456,457],{},[39,458,459],{},"lcp",[371,461,462],{},[39,463,464],{},"-2",[371,466,467],{},"3",[371,469,470],{},[39,471,87],{},[20,473,474],{},"Three things to plan for:",[476,477,478,496,519],"ol",{},[111,479,480,117,483,485,486,488,489,485,491,493,494,88],{},[25,481,482],{},"Main-set codes are bare numbers stored as strings.",[39,484,157],{}," is a ",[39,487,154],{},", and ",[39,490,403],{},[39,492,160],{},". A function that accepts either will eventually receive the wrong one, so store the ",[39,495,160],{},[111,497,498,504,505,508,509,511,512,515,516,88],{},[25,499,500,501,503],{},"Promo groups have negative ",[39,502,160],{},"s and no release date."," Errata Cards is ",[39,506,507],{},"-1",", Lorcana Challenge Promos ",[39,510,464],{},", Promos Year 2 ",[39,513,514],{},"-3",", Prerelease & Box Promos ",[39,517,518],{},"-5",[111,520,521,524,525,528,529,532,533,536,537,540,541,544],{},[25,522,523],{},"Sealed products show up before cards do."," Hyperia City reports ",[39,526,527],{},"card_count: 0"," in the set list, yet ",[39,530,531],{},"\u002Flor\u002Fsets\u002F24740"," already returns ",[25,534,535],{},"9 products",", all with ",[39,538,539],{},"product_type: \"sealed\"",": booster pack, booster box, Illumineer's Trove, starter set, gift box and their cases. If you track new releases, watch ",[39,542,543],{},"card_count"," move off zero.",[20,546,547,548,121,551,121,553,121,556,121,559,121,562,121,565,568],{},"Every card carries the shared catalog fields (",[39,549,550],{},"name",[39,552,154],{},[39,554,555],{},"card_number",[39,557,558],{},"rarity",[39,560,561],{},"card_type",[39,563,564],{},"variants",[39,566,567],{},"card_text",") plus Lorcana's own:",[339,570,571,584],{},[342,572,573],{},[345,574,575,578,581],{},[348,576,577],{},"Field",[348,579,580],{},"Example value",[348,582,583],{},"Notes",[366,585,586,602,616,639,654,672,687,708],{},[345,587,588,592,599],{},[371,589,590],{},[39,591,210],{},[371,593,594,121,597],{},[39,595,596],{},"\"Amber\"",[39,598,214],{},[371,600,601],{},"Dual-ink cards are semicolon-separated",[345,603,604,608,613],{},[371,605,606],{},[39,607,197],{},[371,609,610],{},[39,611,612],{},"\"4\"",[371,614,615],{},"String, not integer",[345,617,618,627,636],{},[371,619,620,622,623,622,625],{},[39,621,200],{}," \u002F ",[39,624,203],{},[39,626,206],{},[371,628,629,622,632,622,634],{},[39,630,631],{},"\"2\"",[39,633,612],{},[39,635,631],{},[371,637,638],{},"Strings",[345,640,641,646,651],{},[371,642,643],{},[39,644,645],{},"classification",[371,647,648],{},[39,649,650],{},"\"Storyborn;Hero;Toy\"",[371,652,653],{},"Semicolon-separated",[345,655,656,661,669],{},[371,657,658],{},[39,659,660],{},"property",[371,662,663,121,666],{},[39,664,665],{},"\"Toy Story\"",[39,667,668],{},"\"Frozen\"",[371,670,671],{},"The Disney franchise",[345,673,674,679,684],{},[371,675,676],{},[39,677,678],{},"character_version",[371,680,681],{},[39,682,683],{},"\"Helping a Friend\"",[371,685,686],{},"The subtitle after the character name",[345,688,689,694,699],{},[371,690,691],{},[39,692,693],{},"inkwell_iconon_card",[371,695,696],{},[39,697,698],{},"\"No\"",[371,700,701,704,705,707],{},[39,702,703],{},"\"Yes\"","\u002F",[39,706,698],{}," string, not a boolean",[345,709,710,721,724],{},[371,711,712,121,715,121,718],{},[39,713,714],{},"promo_type",[39,716,717],{},"flavor_text",[39,719,720],{},"move_cost",[371,722,723],{},"—",[371,725,726],{},"Present only on some cards",[20,728,729,730,70,733,736,737,739,740,744],{},"Prices come from ",[25,731,732],{},"TCGplayer in USD",[25,734,735],{},"CardMarket in EUR",", refreshed ",[25,738,77],{},". There's no eBay data and no grading data. If you're new to the two marketplaces, our ",[93,741,743],{"href":742},"\u002Fblog\u002Fone-piece-tcg-where-to-buy-sell-tcgplayer-cardmarket-ebay-2026","TCGplayer vs CardMarket vs eBay comparison"," explains how they differ for buyers and sellers. It's written for One Piece, but the marketplace logic is the same.",[291,746,748],{"id":747},"your-first-request","Your First Request",[20,750,751,752,755,756,759],{},"Create a free account at ",[93,753,754],{"href":754},"\u002Fauth\u002Flogin"," and copy your key from the dashboard. Every request sends it in the ",[39,757,758],{},"X-API-Key"," header:",[761,762,767],"pre",{"className":763,"code":764,"language":765,"meta":766,"style":766},"language-bash shiki shiki-themes github-dark-default","curl -H \"X-API-Key: YOUR_API_KEY\" \\\n  \"https:\u002F\u002Fapi.pokewallet.io\u002Flor\u002Fsearch?q=Helping\"\n","bash","",[39,768,769,790],{"__ignoreMap":766},[770,771,774,778,782,786],"span",{"class":772,"line":773},"line",1,[770,775,777],{"class":776},"sQhOw","curl",[770,779,781],{"class":780},"sFSAA"," -H",[770,783,785],{"class":784},"s9uIt"," \"X-API-Key: YOUR_API_KEY\"",[770,787,789],{"class":788},"suJrU"," \\\n",[770,791,793],{"class":772,"line":792},2,[770,794,795],{"class":784},"  \"https:\u002F\u002Fapi.pokewallet.io\u002Flor\u002Fsearch?q=Helping\"\n",[20,797,798],{},"The search matched 4 cards. Here's the first result (card text trimmed):",[761,800,804],{"className":801,"code":802,"language":803,"meta":766,"style":766},"language-json shiki shiki-themes github-dark-default","{\n  \"query\": \"Helping\",\n  \"results\": [\n    {\n      \"id\": \"lor_c90d1341d751d70cfa4e0f5185655b07157821be2491b59a6d3e5a2d0b7ad781ced4871d9b135bf47694ccaab5cb\",\n      \"card_info\": {\n        \"name\": \"Woody - Helping a Friend\",\n        \"set_name\": \"Attack of the Vine!\",\n        \"set_code\": \"13\",\n        \"set_id\": \"24666\",\n        \"card_number\": \"1\u002F207\",\n        \"rarity\": \"Rare\",\n        \"card_type\": \"Character\",\n        \"variants\": [\"Normal\", \"Cold Foil\"],\n        \"ink_type\": \"Amber\",\n        \"cost_ink\": \"4\",\n        \"property\": \"Toy Story\",\n        \"strength\": \"2\",\n        \"willpower\": \"4\",\n        \"lore_value\": \"2\",\n        \"classification\": \"Storyborn;Hero;Toy\",\n        \"character_version\": \"Helping a Friend\",\n        \"inkwell_iconon_card\": \"No\"\n      },\n      \"tcgplayer\": {\n        \"prices\": [\n          { \"sub_type_name\": \"Normal\", \"market_price\": 0.3, \"low_price\": 0.1,\n            \"mid_price\": 0.4, \"high_price\": 4.81, \"direct_low_price\": null,\n            \"updated_at\": \"2026-10-20T13:53:23.893772+00:00\" },\n          { \"sub_type_name\": \"Cold Foil\", \"market_price\": 0.7, \"low_price\": 0.46,\n            \"mid_price\": 0.77, \"high_price\": 4.44, \"direct_low_price\": null,\n            \"updated_at\": \"2026-10-20T13:53:23.893772+00:00\" }\n        ],\n        \"url\": \"https:\u002F\u002Fwww.tcgplayer.com\u002Fproduct\u002F702669\u002Florcana-tcg-attack-of-the-vine-woody-helping-a-friend\"\n      },\n      \"cardmarket\": {\n        \"product_name\": \"Woody - Helping a Friend\",\n        \"prices\": [\n          { \"variant_type\": \"normal\", \"avg\": 0.24, \"low\": 0.02, \"trend\": 0.25,\n            \"avg1\": 0.25, \"avg7\": 0.27, \"avg30\": 0.24,\n            \"updated_at\": \"2026-10-20T13:53:18.767524+00:00\" },\n          { \"variant_type\": \"foil\", \"avg\": 1.06, \"low\": 0.35, \"trend\": 1.08,\n            \"avg1\": 0.8, \"avg7\": 1.41, \"avg30\": 0.91,\n            \"updated_at\": \"2026-10-18T12:52:04.210506+00:00\" }\n        ],\n        \"product_url\": \"https:\u002F\u002Fwww.cardmarket.com\u002Fen\u002FLorcana\u002FProducts\u002FSingles\u002FAttack-of-the-Vine\u002FWoody-Helping-a-Friend\"\n      }\n    }\n  ],\n  \"pagination\": { \"page\": 1, \"limit\": 20, \"total\": 4, \"total_pages\": 1 },\n  \"metadata\": {\n    \"total_count\": 4, \"tcg\": 4, \"cardmarket\": 3,\n    \"tcg_only\": 1, \"cardmarket_only\": 0, \"both_sources\": 3, \"truncated\": false\n  }\n}\n","json",[39,805,806,812,827,836,842,855,864,877,890,902,914,927,940,953,973,985,997,1009,1021,1033,1045,1057,1069,1080,1086,1094,1102,1137,1169,1183,1214,1243,1255,1261,1272,1277,1285,1297,1304,1349,1380,1392,1433,1463,1475,1480,1491,1497,1503,1509,1556,1564,1594,1632,1638],{"__ignoreMap":766},[770,807,808],{"class":772,"line":773},[770,809,811],{"class":810},"sZEs4","{\n",[770,813,814,818,821,824],{"class":772,"line":792},[770,815,817],{"class":816},"sPWt5","  \"query\"",[770,819,820],{"class":810},": ",[770,822,823],{"class":784},"\"Helping\"",[770,825,826],{"class":810},",\n",[770,828,830,833],{"class":772,"line":829},3,[770,831,832],{"class":816},"  \"results\"",[770,834,835],{"class":810},": [\n",[770,837,839],{"class":772,"line":838},4,[770,840,841],{"class":810},"    {\n",[770,843,845,848,850,853],{"class":772,"line":844},5,[770,846,847],{"class":816},"      \"id\"",[770,849,820],{"class":810},[770,851,852],{"class":784},"\"lor_c90d1341d751d70cfa4e0f5185655b07157821be2491b59a6d3e5a2d0b7ad781ced4871d9b135bf47694ccaab5cb\"",[770,854,826],{"class":810},[770,856,858,861],{"class":772,"line":857},6,[770,859,860],{"class":816},"      \"card_info\"",[770,862,863],{"class":810},": {\n",[770,865,867,870,872,875],{"class":772,"line":866},7,[770,868,869],{"class":816},"        \"name\"",[770,871,820],{"class":810},[770,873,874],{"class":784},"\"Woody - Helping a Friend\"",[770,876,826],{"class":810},[770,878,880,883,885,888],{"class":772,"line":879},8,[770,881,882],{"class":816},"        \"set_name\"",[770,884,820],{"class":810},[770,886,887],{"class":784},"\"Attack of the Vine!\"",[770,889,826],{"class":810},[770,891,893,896,898,900],{"class":772,"line":892},9,[770,894,895],{"class":816},"        \"set_code\"",[770,897,820],{"class":810},[770,899,157],{"class":784},[770,901,826],{"class":810},[770,903,905,908,910,912],{"class":772,"line":904},10,[770,906,907],{"class":816},"        \"set_id\"",[770,909,820],{"class":810},[770,911,163],{"class":784},[770,913,826],{"class":810},[770,915,917,920,922,925],{"class":772,"line":916},11,[770,918,919],{"class":816},"        \"card_number\"",[770,921,820],{"class":810},[770,923,924],{"class":784},"\"1\u002F207\"",[770,926,826],{"class":810},[770,928,930,933,935,938],{"class":772,"line":929},12,[770,931,932],{"class":816},"        \"rarity\"",[770,934,820],{"class":810},[770,936,937],{"class":784},"\"Rare\"",[770,939,826],{"class":810},[770,941,943,946,948,951],{"class":772,"line":942},13,[770,944,945],{"class":816},"        \"card_type\"",[770,947,820],{"class":810},[770,949,950],{"class":784},"\"Character\"",[770,952,826],{"class":810},[770,954,956,959,962,965,967,970],{"class":772,"line":955},14,[770,957,958],{"class":816},"        \"variants\"",[770,960,961],{"class":810},": [",[770,963,964],{"class":784},"\"Normal\"",[770,966,121],{"class":810},[770,968,969],{"class":784},"\"Cold Foil\"",[770,971,972],{"class":810},"],\n",[770,974,976,979,981,983],{"class":772,"line":975},15,[770,977,978],{"class":816},"        \"ink_type\"",[770,980,820],{"class":810},[770,982,596],{"class":784},[770,984,826],{"class":810},[770,986,988,991,993,995],{"class":772,"line":987},16,[770,989,990],{"class":816},"        \"cost_ink\"",[770,992,820],{"class":810},[770,994,612],{"class":784},[770,996,826],{"class":810},[770,998,1000,1003,1005,1007],{"class":772,"line":999},17,[770,1001,1002],{"class":816},"        \"property\"",[770,1004,820],{"class":810},[770,1006,665],{"class":784},[770,1008,826],{"class":810},[770,1010,1012,1015,1017,1019],{"class":772,"line":1011},18,[770,1013,1014],{"class":816},"        \"strength\"",[770,1016,820],{"class":810},[770,1018,631],{"class":784},[770,1020,826],{"class":810},[770,1022,1024,1027,1029,1031],{"class":772,"line":1023},19,[770,1025,1026],{"class":816},"        \"willpower\"",[770,1028,820],{"class":810},[770,1030,612],{"class":784},[770,1032,826],{"class":810},[770,1034,1036,1039,1041,1043],{"class":772,"line":1035},20,[770,1037,1038],{"class":816},"        \"lore_value\"",[770,1040,820],{"class":810},[770,1042,631],{"class":784},[770,1044,826],{"class":810},[770,1046,1048,1051,1053,1055],{"class":772,"line":1047},21,[770,1049,1050],{"class":816},"        \"classification\"",[770,1052,820],{"class":810},[770,1054,650],{"class":784},[770,1056,826],{"class":810},[770,1058,1060,1063,1065,1067],{"class":772,"line":1059},22,[770,1061,1062],{"class":816},"        \"character_version\"",[770,1064,820],{"class":810},[770,1066,683],{"class":784},[770,1068,826],{"class":810},[770,1070,1072,1075,1077],{"class":772,"line":1071},23,[770,1073,1074],{"class":816},"        \"inkwell_iconon_card\"",[770,1076,820],{"class":810},[770,1078,1079],{"class":784},"\"No\"\n",[770,1081,1083],{"class":772,"line":1082},24,[770,1084,1085],{"class":810},"      },\n",[770,1087,1089,1092],{"class":772,"line":1088},25,[770,1090,1091],{"class":816},"      \"tcgplayer\"",[770,1093,863],{"class":810},[770,1095,1097,1100],{"class":772,"line":1096},26,[770,1098,1099],{"class":816},"        \"prices\"",[770,1101,835],{"class":810},[770,1103,1105,1108,1111,1113,1115,1117,1120,1122,1125,1127,1130,1132,1135],{"class":772,"line":1104},27,[770,1106,1107],{"class":810},"          { ",[770,1109,1110],{"class":816},"\"sub_type_name\"",[770,1112,820],{"class":810},[770,1114,964],{"class":784},[770,1116,121],{"class":810},[770,1118,1119],{"class":816},"\"market_price\"",[770,1121,820],{"class":810},[770,1123,1124],{"class":780},"0.3",[770,1126,121],{"class":810},[770,1128,1129],{"class":816},"\"low_price\"",[770,1131,820],{"class":810},[770,1133,1134],{"class":780},"0.1",[770,1136,826],{"class":810},[770,1138,1140,1143,1145,1148,1150,1153,1155,1158,1160,1163,1165,1167],{"class":772,"line":1139},28,[770,1141,1142],{"class":816},"            \"mid_price\"",[770,1144,820],{"class":810},[770,1146,1147],{"class":780},"0.4",[770,1149,121],{"class":810},[770,1151,1152],{"class":816},"\"high_price\"",[770,1154,820],{"class":810},[770,1156,1157],{"class":780},"4.81",[770,1159,121],{"class":810},[770,1161,1162],{"class":816},"\"direct_low_price\"",[770,1164,820],{"class":810},[770,1166,87],{"class":780},[770,1168,826],{"class":810},[770,1170,1172,1175,1177,1180],{"class":772,"line":1171},29,[770,1173,1174],{"class":816},"            \"updated_at\"",[770,1176,820],{"class":810},[770,1178,1179],{"class":784},"\"2026-10-20T13:53:23.893772+00:00\"",[770,1181,1182],{"class":810}," },\n",[770,1184,1186,1188,1190,1192,1194,1196,1198,1200,1203,1205,1207,1209,1212],{"class":772,"line":1185},30,[770,1187,1107],{"class":810},[770,1189,1110],{"class":816},[770,1191,820],{"class":810},[770,1193,969],{"class":784},[770,1195,121],{"class":810},[770,1197,1119],{"class":816},[770,1199,820],{"class":810},[770,1201,1202],{"class":780},"0.7",[770,1204,121],{"class":810},[770,1206,1129],{"class":816},[770,1208,820],{"class":810},[770,1210,1211],{"class":780},"0.46",[770,1213,826],{"class":810},[770,1215,1217,1219,1221,1224,1226,1228,1230,1233,1235,1237,1239,1241],{"class":772,"line":1216},31,[770,1218,1142],{"class":816},[770,1220,820],{"class":810},[770,1222,1223],{"class":780},"0.77",[770,1225,121],{"class":810},[770,1227,1152],{"class":816},[770,1229,820],{"class":810},[770,1231,1232],{"class":780},"4.44",[770,1234,121],{"class":810},[770,1236,1162],{"class":816},[770,1238,820],{"class":810},[770,1240,87],{"class":780},[770,1242,826],{"class":810},[770,1244,1246,1248,1250,1252],{"class":772,"line":1245},32,[770,1247,1174],{"class":816},[770,1249,820],{"class":810},[770,1251,1179],{"class":784},[770,1253,1254],{"class":810}," }\n",[770,1256,1258],{"class":772,"line":1257},33,[770,1259,1260],{"class":810},"        ],\n",[770,1262,1264,1267,1269],{"class":772,"line":1263},34,[770,1265,1266],{"class":816},"        \"url\"",[770,1268,820],{"class":810},[770,1270,1271],{"class":784},"\"https:\u002F\u002Fwww.tcgplayer.com\u002Fproduct\u002F702669\u002Florcana-tcg-attack-of-the-vine-woody-helping-a-friend\"\n",[770,1273,1275],{"class":772,"line":1274},35,[770,1276,1085],{"class":810},[770,1278,1280,1283],{"class":772,"line":1279},36,[770,1281,1282],{"class":816},"      \"cardmarket\"",[770,1284,863],{"class":810},[770,1286,1288,1291,1293,1295],{"class":772,"line":1287},37,[770,1289,1290],{"class":816},"        \"product_name\"",[770,1292,820],{"class":810},[770,1294,874],{"class":784},[770,1296,826],{"class":810},[770,1298,1300,1302],{"class":772,"line":1299},38,[770,1301,1099],{"class":816},[770,1303,835],{"class":810},[770,1305,1307,1309,1312,1314,1317,1319,1322,1324,1327,1329,1332,1334,1337,1339,1342,1344,1347],{"class":772,"line":1306},39,[770,1308,1107],{"class":810},[770,1310,1311],{"class":816},"\"variant_type\"",[770,1313,820],{"class":810},[770,1315,1316],{"class":784},"\"normal\"",[770,1318,121],{"class":810},[770,1320,1321],{"class":816},"\"avg\"",[770,1323,820],{"class":810},[770,1325,1326],{"class":780},"0.24",[770,1328,121],{"class":810},[770,1330,1331],{"class":816},"\"low\"",[770,1333,820],{"class":810},[770,1335,1336],{"class":780},"0.02",[770,1338,121],{"class":810},[770,1340,1341],{"class":816},"\"trend\"",[770,1343,820],{"class":810},[770,1345,1346],{"class":780},"0.25",[770,1348,826],{"class":810},[770,1350,1352,1355,1357,1359,1361,1364,1366,1369,1371,1374,1376,1378],{"class":772,"line":1351},40,[770,1353,1354],{"class":816},"            \"avg1\"",[770,1356,820],{"class":810},[770,1358,1346],{"class":780},[770,1360,121],{"class":810},[770,1362,1363],{"class":816},"\"avg7\"",[770,1365,820],{"class":810},[770,1367,1368],{"class":780},"0.27",[770,1370,121],{"class":810},[770,1372,1373],{"class":816},"\"avg30\"",[770,1375,820],{"class":810},[770,1377,1326],{"class":780},[770,1379,826],{"class":810},[770,1381,1383,1385,1387,1390],{"class":772,"line":1382},41,[770,1384,1174],{"class":816},[770,1386,820],{"class":810},[770,1388,1389],{"class":784},"\"2026-10-20T13:53:18.767524+00:00\"",[770,1391,1182],{"class":810},[770,1393,1395,1397,1399,1401,1404,1406,1408,1410,1413,1415,1417,1419,1422,1424,1426,1428,1431],{"class":772,"line":1394},42,[770,1396,1107],{"class":810},[770,1398,1311],{"class":816},[770,1400,820],{"class":810},[770,1402,1403],{"class":784},"\"foil\"",[770,1405,121],{"class":810},[770,1407,1321],{"class":816},[770,1409,820],{"class":810},[770,1411,1412],{"class":780},"1.06",[770,1414,121],{"class":810},[770,1416,1331],{"class":816},[770,1418,820],{"class":810},[770,1420,1421],{"class":780},"0.35",[770,1423,121],{"class":810},[770,1425,1341],{"class":816},[770,1427,820],{"class":810},[770,1429,1430],{"class":780},"1.08",[770,1432,826],{"class":810},[770,1434,1436,1438,1440,1443,1445,1447,1449,1452,1454,1456,1458,1461],{"class":772,"line":1435},43,[770,1437,1354],{"class":816},[770,1439,820],{"class":810},[770,1441,1442],{"class":780},"0.8",[770,1444,121],{"class":810},[770,1446,1363],{"class":816},[770,1448,820],{"class":810},[770,1450,1451],{"class":780},"1.41",[770,1453,121],{"class":810},[770,1455,1373],{"class":816},[770,1457,820],{"class":810},[770,1459,1460],{"class":780},"0.91",[770,1462,826],{"class":810},[770,1464,1466,1468,1470,1473],{"class":772,"line":1465},44,[770,1467,1174],{"class":816},[770,1469,820],{"class":810},[770,1471,1472],{"class":784},"\"2026-10-18T12:52:04.210506+00:00\"",[770,1474,1254],{"class":810},[770,1476,1478],{"class":772,"line":1477},45,[770,1479,1260],{"class":810},[770,1481,1483,1486,1488],{"class":772,"line":1482},46,[770,1484,1485],{"class":816},"        \"product_url\"",[770,1487,820],{"class":810},[770,1489,1490],{"class":784},"\"https:\u002F\u002Fwww.cardmarket.com\u002Fen\u002FLorcana\u002FProducts\u002FSingles\u002FAttack-of-the-Vine\u002FWoody-Helping-a-Friend\"\n",[770,1492,1494],{"class":772,"line":1493},47,[770,1495,1496],{"class":810},"      }\n",[770,1498,1500],{"class":772,"line":1499},48,[770,1501,1502],{"class":810},"    }\n",[770,1504,1506],{"class":772,"line":1505},49,[770,1507,1508],{"class":810},"  ],\n",[770,1510,1512,1515,1518,1521,1523,1525,1527,1530,1532,1535,1537,1540,1542,1545,1547,1550,1552,1554],{"class":772,"line":1511},50,[770,1513,1514],{"class":816},"  \"pagination\"",[770,1516,1517],{"class":810},": { ",[770,1519,1520],{"class":816},"\"page\"",[770,1522,820],{"class":810},[770,1524,377],{"class":780},[770,1526,121],{"class":810},[770,1528,1529],{"class":816},"\"limit\"",[770,1531,820],{"class":810},[770,1533,1534],{"class":780},"20",[770,1536,121],{"class":810},[770,1538,1539],{"class":816},"\"total\"",[770,1541,820],{"class":810},[770,1543,1544],{"class":780},"4",[770,1546,121],{"class":810},[770,1548,1549],{"class":816},"\"total_pages\"",[770,1551,820],{"class":810},[770,1553,377],{"class":780},[770,1555,1182],{"class":810},[770,1557,1559,1562],{"class":772,"line":1558},51,[770,1560,1561],{"class":816},"  \"metadata\"",[770,1563,863],{"class":810},[770,1565,1567,1570,1572,1574,1576,1579,1581,1583,1585,1588,1590,1592],{"class":772,"line":1566},52,[770,1568,1569],{"class":816},"    \"total_count\"",[770,1571,820],{"class":810},[770,1573,1544],{"class":780},[770,1575,121],{"class":810},[770,1577,1578],{"class":816},"\"tcg\"",[770,1580,820],{"class":810},[770,1582,1544],{"class":780},[770,1584,121],{"class":810},[770,1586,1587],{"class":816},"\"cardmarket\"",[770,1589,820],{"class":810},[770,1591,467],{"class":780},[770,1593,826],{"class":810},[770,1595,1597,1600,1602,1604,1606,1609,1611,1613,1615,1618,1620,1622,1624,1627,1629],{"class":772,"line":1596},53,[770,1598,1599],{"class":816},"    \"tcg_only\"",[770,1601,820],{"class":810},[770,1603,377],{"class":780},[770,1605,121],{"class":810},[770,1607,1608],{"class":816},"\"cardmarket_only\"",[770,1610,820],{"class":810},[770,1612,426],{"class":780},[770,1614,121],{"class":810},[770,1616,1617],{"class":816},"\"both_sources\"",[770,1619,820],{"class":810},[770,1621,467],{"class":780},[770,1623,121],{"class":810},[770,1625,1626],{"class":816},"\"truncated\"",[770,1628,820],{"class":810},[770,1630,1631],{"class":780},"false\n",[770,1633,1635],{"class":772,"line":1634},54,[770,1636,1637],{"class":810},"  }\n",[770,1639,1641],{"class":772,"line":1640},55,[770,1642,1643],{"class":810},"}\n",[20,1645,1646],{},"Four details before you go further:",[476,1648,1649,1678,1694,1716],{},[111,1650,1651,1658,1659,1662,1663,1667,1668,1670,1671,1674,1675,1677],{},[25,1652,1653,1654,1657],{},"The ",[39,1655,1656],{},"id"," is the stable key."," Lorcana IDs start with ",[39,1660,1661],{},"lor_",". The same search also returns a ",[1664,1665,1666],"em",{},"second"," \"Woody - Helping a Friend\", the Holofoil promo from Disney Lorcana Promo Cards, with its own ",[39,1669,1656],{}," and a TCGplayer market price of ",[25,1672,1673],{},"$18.70",". Key on ",[39,1676,1656],{},", never on the name.",[111,1679,1680,1683,1684,1686,1687,1689,1690,1693],{},[25,1681,1682],{},"The variant names don't match across marketplaces."," TCGplayer says ",[39,1685,969],{},", CardMarket says ",[39,1688,1403],{},". Promo cards use ",[39,1691,1692],{},"\"Holofoil\""," on TCGplayer.",[111,1695,1696,117,1702,1705,1706,1709,1710,1712,1713,1715],{},[25,1697,1698,211,1700,88],{},[39,1699,218],{},[39,1701,87],{},[39,1703,1704],{},"metadata"," reports ",[39,1707,1708],{},"tcg_only: 1",", and that card is the promo Woody: its ",[39,1711,218],{}," field is ",[39,1714,87],{},", not an empty object. Guard every read.",[111,1717,1718,1724,1725,1728],{},[25,1719,1720,1723],{},[39,1721,1722],{},"updated_at"," is per variant, per marketplace."," On this card the CardMarket foil price last changed on October 18 and the normal price on October 20. It records the last ",[1664,1726,1727],{},"change",", not the last check.",[291,1730,1732],{"id":1731},"free-endpoints","Free Endpoints",[20,1734,1735,1736,1739],{},"All five catalog endpoints work on every plan. On the free tier you get ",[25,1737,1738],{},"100 requests\u002Fhour and 1,000\u002Fday",", enough to build and test a full integration.",[339,1741,1742,1752],{},[342,1743,1744],{},[345,1745,1746,1749],{},[348,1747,1748],{},"Endpoint",[348,1750,1751],{},"What it returns",[366,1753,1754,1776,1786,1800,1810],{},[345,1755,1756,1761],{},[371,1757,1758],{},[39,1759,1760],{},"GET \u002Flor\u002Fsets",[371,1762,1763,1764,121,1766,121,1768,121,1770,121,1773],{},"All Lorcana sets with ",[39,1765,154],{},[39,1767,160],{},[39,1769,543],{},[39,1771,1772],{},"sealed_count",[39,1774,1775],{},"release_date",[345,1777,1778,1783],{},[371,1779,1780],{},[39,1781,1782],{},"GET \u002Flor\u002Fsets\u002F:set",[371,1784,1785],{},"One set's details plus a paginated list of its cards and sealed products",[345,1787,1788,1793],{},[371,1789,1790],{},[39,1791,1792],{},"GET \u002Flor\u002Fcards\u002F:id",[371,1794,1795,1796,1799],{},"One card with full ",[39,1797,1798],{},"card_info"," and its current TCGplayer and CardMarket prices",[345,1801,1802,1807],{},[371,1803,1804],{},[39,1805,1806],{},"GET \u002Flor\u002Fsearch?q=",[371,1808,1809],{},"Name search across all Lorcana sets, prices included",[345,1811,1812,1817],{},[371,1813,1814],{},[39,1815,1816],{},"GET \u002Flor\u002Fimages\u002F:id",[371,1818,1819],{},"Card image",[20,1821,1822,1823,58,1825,1827,1828,1830,1831,1705,1834,1837,1838,1840,1841,308,1844,1847,1848,1851,1852,88],{},"The set endpoint takes either the ",[39,1824,154],{},[39,1826,160],{},". If a ",[39,1829,154],{}," is ambiguous, the API answers with the candidates instead of guessing. For Attack of the Vine!, ",[39,1832,1833],{},"\u002Flor\u002Fsets\u002F24666",[39,1835,1836],{},"\"total_cards\": 270",", while the set list and the analytics endpoints count ",[25,1839,406],{},". The difference is the set's 18 sealed products, which the set endpoint lists alongside the cards. Filter on ",[39,1842,1843],{},"product_type",[39,1845,1846],{},"\"card\""," or ",[39,1849,1850],{},"\"sealed\"",") when you only want singles. Paging parameters are in the ",[93,1853,1855],{"href":1854},"\u002Fapi-docs?game=lor","Lorcana API documentation",[20,1857,1858,1859,1866,1867,70,1870,1873,1874,1876,1877,1879],{},"One thing surprises people: ",[25,1860,1861,1862,1865],{},"in the set card list, the ",[39,1863,1864],{},"prices"," arrays come back empty."," Each card still has its ",[39,1868,1869],{},"tcgplayer.url",[39,1871,1872],{},"cardmarket.product_url",", but no numbers. Card lookups and search include prices, and bulk prices for a whole set come from ",[39,1875,143],{},", which is an Ultra endpoint. Don't loop ",[39,1878,127],{}," over 252 cards to rebuild that feed: on the free tier, that's a quarter of your daily quota spent on one set.",[20,1881,1882,1883,1885,1886,121,1889,121,1892,1895,1896,312],{},"When you render ",[39,1884,567],{},", sanitize it first. It contains raw HTML (",[39,1887,1888],{},"\u003Cstrong>",[39,1890,1891],{},"\u003Cem>",[39,1893,1894],{},"\u003Cbr>",") and, on some cards, Windows line breaks (",[39,1897,1898],{},"\\r\\n",[291,1900,1902],{"id":1901},"ultra-endpoints-prices-analytics","Ultra Endpoints: Prices & Analytics",[20,1904,1905,1906,58,1909,1911,1912,1915,1916,88],{},"These five endpoints need ",[25,1907,1908],{},"Ultra (€29\u002Fmonth, 7,000 requests\u002Fhour, 70,000\u002Fday)",[25,1910,61],{},", which you start from the dashboard after you ",[93,1913,1914],{"href":754},"log in",". Pro only unlocks Pokémon and One Piece. All figures below were captured on ",[25,1917,1918],{},"October 21, 2026",[103,1920,1922,1925],{"id":1921},"get-lorpricesset-bulk-set-prices",[39,1923,1924],{},"GET \u002Flor\u002Fprices\u002F:set",": bulk set prices",[20,1927,1928,1931,1932,1935,1936,1939,1940,1943,1944,121,1947,70,1950,1953],{},[39,1929,1930],{},"\u002Flor\u002Fprices\u002F24666"," returns one row per card ",[25,1933,1934],{},"per variant",", with TCGplayer and CardMarket side by side (",[39,1937,1938],{},"\"source\": \"both\"","). For Attack of the Vine! that came to ",[39,1941,1942],{},"\"total\": 471"," rows across three variants: ",[39,1945,1946],{},"Normal",[39,1948,1949],{},"Cold Foil",[39,1951,1952],{},"Holofoil",". Use it for nightly syncs, because one call replaces hundreds.",[103,1955,1957],{"id":1956},"get-lorsetssetstatistics",[39,1958,1959],{},"GET \u002Flor\u002Fsets\u002F:set\u002Fstatistics",[20,1961,1962],{},"The Attack of the Vine! summary:",[339,1964,1965,1976],{},[342,1966,1967],{},[345,1968,1969,1972,1974],{},[348,1970,1971],{},"Metric",[348,1973,69],{},[348,1975,73],{},[366,1977,1978,1989,2000,2011,2021],{},[345,1979,1980,1983,1986],{},[371,1981,1982],{},"Average price",[371,1984,1985],{},"$27.67",[371,1987,1988],{},"€10.04",[345,1990,1991,1994,1997],{},[371,1992,1993],{},"Cheapest card",[371,1995,1996],{},"$0.05",[371,1998,1999],{},"€0.02",[345,2001,2002,2005,2008],{},[371,2003,2004],{},"Most expensive",[371,2006,2007],{},"$1,906.55",[371,2009,2010],{},"€1,206.98",[345,2012,2013,2016,2019],{},[371,2014,2015],{},"Top card",[371,2017,2018],{},"Belle & Beast - Certain as the Sun (Iconic)",[371,2020,2018],{},[345,2022,2023,2026,2028],{},[371,2024,2025],{},"Trend",[371,2027,723],{},[371,2029,2030],{},"down",[20,2032,2033,2034,308,2037,2040,2041,2044,2045,2048],{},"Two parsing notes. The averages arrive as ",[25,2035,2036],{},"strings",[39,2038,2039],{},"\"avg_market_price\": \"27.67\"",") while the minimums and maximums are numbers. And the rarity breakdown is ",[25,2042,2043],{},"75 Common, 56 Uncommon, 52 Rare, 18 Super Rare, 18 Epic, 12 Legendary, 18 Enchanted, 2 Iconic",", plus 1 card with rarity ",[39,2046,2047],{},"\"None\"",". With 20 high-end cards in the set, the average describes a typical card badly.",[103,2050,2052],{"id":2051},"get-lorsetssetcompletion-value",[39,2053,2054],{},"GET \u002Flor\u002Fsets\u002F:set\u002Fcompletion-value",[20,2056,2057],{},"What one copy of every Attack of the Vine! card costs at base finish:",[339,2059,2060,2076],{},[342,2061,2062],{},[345,2063,2064,2067,2070,2073],{},[348,2065,2066],{},"Source",[348,2068,2069],{},"Low",[348,2071,2072],{},"Market \u002F Avg",[348,2074,2075],{},"High",[366,2077,2078,2091],{},[345,2079,2080,2082,2085,2088],{},[371,2081,69],{},[371,2083,2084],{},"$5,090.19",[371,2086,2087],{},"$6,842.65 (market)",[371,2089,2090],{},"$31,139.21",[345,2092,2093,2095,2098,2101],{},[371,2094,73],{},[371,2096,2097],{},"€2,958.94",[371,2099,2100],{},"€2,998.66 (avg)",[371,2102,723],{},[20,2104,2105],{},"The rarity breakdown adds up exactly to the TCGplayer market estimate:",[339,2107,2108,2120],{},[342,2109,2110],{},[345,2111,2112,2115,2117],{},[348,2113,2114],{},"Rarity",[348,2116,361],{},[348,2118,2119],{},"Total cost",[366,2121,2122,2133,2144,2155,2166,2177,2187,2197,2208],{},[345,2123,2124,2127,2130],{},[371,2125,2126],{},"Common",[371,2128,2129],{},"75",[371,2131,2132],{},"$5.19",[345,2134,2135,2138,2141],{},[371,2136,2137],{},"Uncommon",[371,2139,2140],{},"56",[371,2142,2143],{},"$10.66",[345,2145,2146,2149,2152],{},[371,2147,2148],{},"Rare",[371,2150,2151],{},"52",[371,2153,2154],{},"$13.85",[345,2156,2157,2160,2163],{},[371,2158,2159],{},"Super Rare",[371,2161,2162],{},"18",[371,2164,2165],{},"$9.61",[345,2167,2168,2171,2174],{},[371,2169,2170],{},"Legendary",[371,2172,2173],{},"12",[371,2175,2176],{},"$15.37",[345,2178,2179,2182,2184],{},[371,2180,2181],{},"Epic",[371,2183,2162],{},[371,2185,2186],{},"$46.19",[345,2188,2189,2192,2194],{},[371,2190,2191],{},"Enchanted",[371,2193,2162],{},[371,2195,2196],{},"$3,205.10",[345,2198,2199,2202,2205],{},[371,2200,2201],{},"Iconic",[371,2203,2204],{},"2",[371,2206,2207],{},"$3,535.89",[345,2209,2210,2213,2215],{},[371,2211,2212],{},"None",[371,2214,377],{},[371,2216,2217],{},"$0.79",[20,2219,2220,2221,2224,2225,2228,2229,2232],{},"Everything from Common to Epic costs ",[25,2222,2223],{},"about $101"," together. The two Iconic cards alone are ",[25,2226,2227],{},"51.7%"," of the bill, and Enchanted plus Iconic make up ",[25,2230,2231],{},"98.5%",". For a collection app, that's the number worth showing: a playable set is cheap, and a master set means chasing 20 cards.",[20,2234,2235,2236,308,2239,2242,2243,2246],{},"CardMarket also returns a ",[39,2237,2238],{},"trend_estimate",[25,2240,2241],{},"€212.89","), which is far below even the low estimate, so don't present it as the price of a full set. The API also states ",[39,2244,2245],{},"\"Cross-currency comparison not available\"",": don't convert one column to compare it with the other.",[103,2248,2250],{"id":2249},"get-loranalyticstop-cards",[39,2251,2252],{},"GET \u002Flor\u002Fanalytics\u002Ftop-cards",[20,2254,2255],{},"With no parameters, it ranks by TCGplayer price across all of Lorcana:",[339,2257,2258,2270],{},[342,2259,2260],{},[345,2261,2262,2265,2267],{},[348,2263,2264],{},"Card",[348,2266,350],{},[348,2268,2269],{},"Price",[366,2271,2272,2283,2294,2305,2315],{},[345,2273,2274,2277,2280],{},[371,2275,2276],{},"Elsa - Ice Maker (Foil)",[371,2278,2279],{},"Disney Lorcana Promo Cards",[371,2281,2282],{},"$3,979.00",[345,2284,2285,2288,2291],{},[371,2286,2287],{},"Mickey Mouse - Brave Little Prince (Iconic)",[371,2289,2290],{},"Fabled",[371,2292,2293],{},"$3,875.00",[345,2295,2296,2299,2302],{},[371,2297,2298],{},"Buzz Lightyear - Jungle Ranger (Iconic)",[371,2300,2301],{},"Wilds Unknown",[371,2303,2304],{},"$3,621.08",[345,2306,2307,2310,2312],{},[371,2308,2309],{},"Down in New Orleans (Foil)",[371,2311,2279],{},[371,2313,2314],{},"$3,500.00",[345,2316,2317,2320,2322],{},[371,2318,2319],{},"Minnie Mouse - Sweetheart Princess (Iconic)",[371,2321,2290],{},[371,2323,2324],{},"$3,083.33",[20,2326,2327,2328,2331],{},"With ",[39,2329,2330],{},"?metric=growth&source=cm",", it ranks by 7-day CardMarket growth:",[339,2333,2334,2347],{},[342,2335,2336],{},[345,2337,2338,2340,2342,2344],{},[348,2339,2264],{},[348,2341,350],{},[348,2343,2269],{},[348,2345,2346],{},"7-day change",[366,2348,2349,2362,2376,2390],{},[345,2350,2351,2354,2356,2359],{},[371,2352,2353],{},"Yzma - Alchemist",[371,2355,2279],{},[371,2357,2358],{},"€23.96",[371,2360,2361],{},"+210.4%",[345,2363,2364,2367,2370,2373],{},[371,2365,2366],{},"Ursula's Plan",[371,2368,2369],{},"Ursula's Return",[371,2371,2372],{},"€15.50",[371,2374,2375],{},"+147.2%",[345,2377,2378,2381,2384,2387],{},[371,2379,2380],{},"Jafar - Newly Crowned (Enchanted)",[371,2382,2383],{},"Archazia's Island",[371,2385,2386],{},"€199.57",[371,2388,2389],{},"+129.9%",[345,2391,2392,2395,2398,2401],{},[371,2393,2394],{},"Captain Hook - The Pirate King (Enchanted)",[371,2396,2397],{},"Reign of Jafar",[371,2399,2400],{},"€220.11",[371,2402,2403],{},"+127.8%",[20,2405,2406,2407,70,2409,2411],{},"Growth rankings swing week to week and favour cards with thin volume. Read a +210% on a €24 promo as \"something moved\", not as a trend, and check ",[39,2408,234],{},[39,2410,237],{}," on the card before alerting anyone.",[103,2413,2415],{"id":2414},"get-lorsetstrending",[39,2416,2417],{},"GET \u002Flor\u002Fsets\u002Ftrending",[20,2419,2420,2421,2424],{},"Set-level movement over ",[39,2422,2423],{},"\"period\": \"7d\"",", from CardMarket:",[339,2426,2427,2445],{},[342,2428,2429],{},[345,2430,2431,2433,2436,2439,2442],{},[348,2432,350],{},[348,2434,2435],{},"Change",[348,2437,2438],{},"Avg now",[348,2440,2441],{},"Avg before",[348,2443,2444],{},"Top movers",[366,2446,2447,2467,2487],{},[345,2448,2449,2455,2458,2461,2464],{},[371,2450,2451,2452,2454],{},"Illumineer's Quest: Deep Trouble (",[39,2453,332],{},")",[371,2456,2457],{},"+17.4%",[371,2459,2460],{},"€4.78",[371,2462,2463],{},"€4.07",[371,2465,2466],{},"Minnie Mouse - Wild-Eyed Diver +108.2%, Ursula - Ruler of Lorcana −64.0%",[345,2468,2469,2475,2478,2481,2484],{},[371,2470,2471,2472,2454],{},"Archazia's Island (",[39,2473,2474],{},"7",[371,2476,2477],{},"−5.7%",[371,2479,2480],{},"€2.53",[371,2482,2483],{},"€2.68",[371,2485,2486],{},"Minnie Mouse - Storyteller −18.8%, Mushu - Majestic Dragon +15.8%",[345,2488,2489,2495,2498,2501,2504],{},[371,2490,2491,2492,2454],{},"Disney100 Promos (",[39,2493,2494],{},"D100",[371,2496,2497],{},"+5.5%",[371,2499,2500],{},"€9.31",[371,2502,2503],{},"€8.82",[371,2505,2506],{},"Maleficent - Uninvited +15.7%",[20,2508,2509,2510,2513,2514,2517],{},"On the TCGplayer side, every set currently returns ",[39,2511,2512],{},"\"status\": \"work_in_progress\""," with ",[39,2515,2516],{},"\"TCGPlayer price history not yet available\"",". Code for that object rather than a number.",[291,2519,2521],{"id":2520},"code-examples-javascript-python","Code Examples: JavaScript & Python",[20,2523,2524],{},"Both examples read the key from an environment variable and only use fields that appear in the responses above. The documentation also has Node.js and Go snippets. There's no official SDK, so you call the endpoints over plain HTTP.",[103,2526,2528],{"id":2527},"javascript-search-a-card-and-compare-both-marketplaces","JavaScript: search a card and compare both marketplaces",[761,2530,2534],{"className":2531,"code":2532,"language":2533,"meta":766,"style":766},"language-javascript shiki shiki-themes github-dark-default","const BASE_URL = \"https:\u002F\u002Fapi.pokewallet.io\";\nconst API_KEY = process.env.POKEWALLET_API_KEY;\n\nif (!API_KEY) throw new Error(\"Missing POKEWALLET_API_KEY\");\n\n\u002F\u002F TCGplayer variant name -> CardMarket variant_type\nconst CARDMARKET_VARIANT = {\n  Normal: \"normal\",\n  \"Cold Foil\": \"foil\",\n  Holofoil: \"foil\",\n};\n\nasync function api(path) {\n  const res = await fetch(`${BASE_URL}${path}`, {\n    headers: { \"X-API-Key\": API_KEY },\n  });\n  if (!res.ok) {\n    throw new Error(`GET ${path} failed: ${res.status} ${await res.text()}`);\n  }\n  return res.json();\n}\n\nasync function comparePrices(query) {\n  const { results } = await api(`\u002Flor\u002Fsearch?q=${encodeURIComponent(query)}`);\n\n  return results.map((card) => {\n    const tcg = card.tcgplayer?.prices ?? [];\n    const cm = card.cardmarket?.prices ?? []; \u002F\u002F cardmarket can be null\n\n    const variants = card.card_info.variants.map((variant) => {\n      const t = tcg.find((p) => p.sub_type_name === variant);\n      const c = cm.find((p) => p.variant_type === CARDMARKET_VARIANT[variant]);\n      return {\n        variant,\n        tcgplayerMarketUsd: t?.market_price ?? null,\n        cardmarketTrendEur: c?.trend ?? null,\n      };\n    });\n\n    return {\n      id: card.id,\n      name: card.card_info.name,\n      setId: card.card_info.set_id,\n      inks: (card.card_info.ink_type ?? \"\").split(\";\").filter(Boolean),\n      cost: Number(card.card_info.cost_ink), \u002F\u002F sent as a string\n      variants,\n    };\n  });\n}\n\ncomparePrices(\"Helping\")\n  .then((rows) => console.log(JSON.stringify(rows, null, 2)))\n  .catch((err) => console.error(err.message));\n","javascript",[39,2535,2536,2553,2570,2576,2611,2615,2621,2633,2642,2653,2662,2667,2671,2690,2725,2739,2744,2756,2803,2807,2820,2824,2828,2844,2882,2886,2909,2928,2948,2952,2977,3010,3042,3049,3054,3066,3077,3082,3087,3091,3098,3103,3108,3113,3141,3155,3160,3165,3169,3173,3177,3189,3234],{"__ignoreMap":766},[770,2537,2538,2541,2544,2547,2550],{"class":772,"line":773},[770,2539,2540],{"class":788},"const",[770,2542,2543],{"class":780}," BASE_URL",[770,2545,2546],{"class":788}," =",[770,2548,2549],{"class":784}," \"https:\u002F\u002Fapi.pokewallet.io\"",[770,2551,2552],{"class":810},";\n",[770,2554,2555,2557,2560,2562,2565,2568],{"class":772,"line":792},[770,2556,2540],{"class":788},[770,2558,2559],{"class":780}," API_KEY",[770,2561,2546],{"class":788},[770,2563,2564],{"class":810}," process.env.",[770,2566,2567],{"class":780},"POKEWALLET_API_KEY",[770,2569,2552],{"class":810},[770,2571,2572],{"class":772,"line":829},[770,2573,2575],{"emptyLinePlaceholder":2574},true,"\n",[770,2577,2578,2581,2583,2586,2589,2592,2595,2598,2602,2605,2608],{"class":772,"line":838},[770,2579,2580],{"class":788},"if",[770,2582,308],{"class":810},[770,2584,2585],{"class":788},"!",[770,2587,2588],{"class":780},"API_KEY",[770,2590,2591],{"class":810},") ",[770,2593,2594],{"class":788},"throw",[770,2596,2597],{"class":788}," new",[770,2599,2601],{"class":2600},"sc3cj"," Error",[770,2603,2604],{"class":810},"(",[770,2606,2607],{"class":784},"\"Missing POKEWALLET_API_KEY\"",[770,2609,2610],{"class":810},");\n",[770,2612,2613],{"class":772,"line":844},[770,2614,2575],{"emptyLinePlaceholder":2574},[770,2616,2617],{"class":772,"line":857},[770,2618,2620],{"class":2619},"sH3jZ","\u002F\u002F TCGplayer variant name -> CardMarket variant_type\n",[770,2622,2623,2625,2628,2630],{"class":772,"line":866},[770,2624,2540],{"class":788},[770,2626,2627],{"class":780}," CARDMARKET_VARIANT",[770,2629,2546],{"class":788},[770,2631,2632],{"class":810}," {\n",[770,2634,2635,2638,2640],{"class":772,"line":879},[770,2636,2637],{"class":810},"  Normal: ",[770,2639,1316],{"class":784},[770,2641,826],{"class":810},[770,2643,2644,2647,2649,2651],{"class":772,"line":892},[770,2645,2646],{"class":784},"  \"Cold Foil\"",[770,2648,820],{"class":810},[770,2650,1403],{"class":784},[770,2652,826],{"class":810},[770,2654,2655,2658,2660],{"class":772,"line":904},[770,2656,2657],{"class":810},"  Holofoil: ",[770,2659,1403],{"class":784},[770,2661,826],{"class":810},[770,2663,2664],{"class":772,"line":916},[770,2665,2666],{"class":810},"};\n",[770,2668,2669],{"class":772,"line":929},[770,2670,2575],{"emptyLinePlaceholder":2574},[770,2672,2673,2676,2679,2682,2684,2687],{"class":772,"line":942},[770,2674,2675],{"class":788},"async",[770,2677,2678],{"class":788}," function",[770,2680,2681],{"class":2600}," api",[770,2683,2604],{"class":810},[770,2685,2686],{"class":776},"path",[770,2688,2689],{"class":810},") {\n",[770,2691,2692,2695,2698,2700,2703,2706,2708,2711,2714,2717,2719,2722],{"class":772,"line":955},[770,2693,2694],{"class":788},"  const",[770,2696,2697],{"class":780}," res",[770,2699,2546],{"class":788},[770,2701,2702],{"class":788}," await",[770,2704,2705],{"class":2600}," fetch",[770,2707,2604],{"class":810},[770,2709,2710],{"class":784},"`${",[770,2712,2713],{"class":780},"BASE_URL",[770,2715,2716],{"class":784},"}${",[770,2718,2686],{"class":810},[770,2720,2721],{"class":784},"}`",[770,2723,2724],{"class":810},", {\n",[770,2726,2727,2730,2733,2735,2737],{"class":772,"line":975},[770,2728,2729],{"class":810},"    headers: { ",[770,2731,2732],{"class":784},"\"X-API-Key\"",[770,2734,820],{"class":810},[770,2736,2588],{"class":780},[770,2738,1182],{"class":810},[770,2740,2741],{"class":772,"line":987},[770,2742,2743],{"class":810},"  });\n",[770,2745,2746,2749,2751,2753],{"class":772,"line":999},[770,2747,2748],{"class":788},"  if",[770,2750,308],{"class":810},[770,2752,2585],{"class":788},[770,2754,2755],{"class":810},"res.ok) {\n",[770,2757,2758,2761,2763,2765,2767,2770,2772,2775,2778,2780,2783,2786,2789,2791,2793,2796,2799,2801],{"class":772,"line":1011},[770,2759,2760],{"class":788},"    throw",[770,2762,2597],{"class":788},[770,2764,2601],{"class":2600},[770,2766,2604],{"class":810},[770,2768,2769],{"class":784},"`GET ${",[770,2771,2686],{"class":810},[770,2773,2774],{"class":784},"} failed: ${",[770,2776,2777],{"class":810},"res",[770,2779,88],{"class":784},[770,2781,2782],{"class":810},"status",[770,2784,2785],{"class":784},"} ${",[770,2787,2788],{"class":788},"await",[770,2790,2697],{"class":810},[770,2792,88],{"class":784},[770,2794,2795],{"class":2600},"text",[770,2797,2798],{"class":784},"()",[770,2800,2721],{"class":784},[770,2802,2610],{"class":810},[770,2804,2805],{"class":772,"line":1023},[770,2806,1637],{"class":810},[770,2808,2809,2812,2815,2817],{"class":772,"line":1035},[770,2810,2811],{"class":788},"  return",[770,2813,2814],{"class":810}," res.",[770,2816,803],{"class":2600},[770,2818,2819],{"class":810},"();\n",[770,2821,2822],{"class":772,"line":1047},[770,2823,1643],{"class":810},[770,2825,2826],{"class":772,"line":1059},[770,2827,2575],{"emptyLinePlaceholder":2574},[770,2829,2830,2832,2834,2837,2839,2842],{"class":772,"line":1071},[770,2831,2675],{"class":788},[770,2833,2678],{"class":788},[770,2835,2836],{"class":2600}," comparePrices",[770,2838,2604],{"class":810},[770,2840,2841],{"class":776},"query",[770,2843,2689],{"class":810},[770,2845,2846,2848,2851,2854,2857,2860,2862,2864,2866,2869,2872,2874,2876,2878,2880],{"class":772,"line":1082},[770,2847,2694],{"class":788},[770,2849,2850],{"class":810}," { ",[770,2852,2853],{"class":780},"results",[770,2855,2856],{"class":810}," } ",[770,2858,2859],{"class":788},"=",[770,2861,2702],{"class":788},[770,2863,2681],{"class":2600},[770,2865,2604],{"class":810},[770,2867,2868],{"class":784},"`\u002Flor\u002Fsearch?q=${",[770,2870,2871],{"class":2600},"encodeURIComponent",[770,2873,2604],{"class":784},[770,2875,2841],{"class":810},[770,2877,2454],{"class":784},[770,2879,2721],{"class":784},[770,2881,2610],{"class":810},[770,2883,2884],{"class":772,"line":1088},[770,2885,2575],{"emptyLinePlaceholder":2574},[770,2887,2888,2890,2893,2896,2899,2902,2904,2907],{"class":772,"line":1096},[770,2889,2811],{"class":788},[770,2891,2892],{"class":810}," results.",[770,2894,2895],{"class":2600},"map",[770,2897,2898],{"class":810},"((",[770,2900,2901],{"class":776},"card",[770,2903,2591],{"class":810},[770,2905,2906],{"class":788},"=>",[770,2908,2632],{"class":810},[770,2910,2911,2914,2917,2919,2922,2925],{"class":772,"line":1104},[770,2912,2913],{"class":788},"    const",[770,2915,2916],{"class":780}," tcg",[770,2918,2546],{"class":788},[770,2920,2921],{"class":810}," card.tcgplayer?.prices ",[770,2923,2924],{"class":788},"??",[770,2926,2927],{"class":810}," [];\n",[770,2929,2930,2932,2935,2937,2940,2942,2945],{"class":772,"line":1139},[770,2931,2913],{"class":788},[770,2933,2934],{"class":780}," cm",[770,2936,2546],{"class":788},[770,2938,2939],{"class":810}," card.cardmarket?.prices ",[770,2941,2924],{"class":788},[770,2943,2944],{"class":810}," []; ",[770,2946,2947],{"class":2619},"\u002F\u002F cardmarket can be null\n",[770,2949,2950],{"class":772,"line":1171},[770,2951,2575],{"emptyLinePlaceholder":2574},[770,2953,2954,2956,2959,2961,2964,2966,2968,2971,2973,2975],{"class":772,"line":1185},[770,2955,2913],{"class":788},[770,2957,2958],{"class":780}," variants",[770,2960,2546],{"class":788},[770,2962,2963],{"class":810}," card.card_info.variants.",[770,2965,2895],{"class":2600},[770,2967,2898],{"class":810},[770,2969,2970],{"class":776},"variant",[770,2972,2591],{"class":810},[770,2974,2906],{"class":788},[770,2976,2632],{"class":810},[770,2978,2979,2982,2985,2987,2990,2993,2995,2997,2999,3001,3004,3007],{"class":772,"line":1216},[770,2980,2981],{"class":788},"      const",[770,2983,2984],{"class":780}," t",[770,2986,2546],{"class":788},[770,2988,2989],{"class":810}," tcg.",[770,2991,2992],{"class":2600},"find",[770,2994,2898],{"class":810},[770,2996,20],{"class":776},[770,2998,2591],{"class":810},[770,3000,2906],{"class":788},[770,3002,3003],{"class":810}," p.sub_type_name ",[770,3005,3006],{"class":788},"===",[770,3008,3009],{"class":810}," variant);\n",[770,3011,3012,3014,3017,3019,3022,3024,3026,3028,3030,3032,3035,3037,3039],{"class":772,"line":1245},[770,3013,2981],{"class":788},[770,3015,3016],{"class":780}," c",[770,3018,2546],{"class":788},[770,3020,3021],{"class":810}," cm.",[770,3023,2992],{"class":2600},[770,3025,2898],{"class":810},[770,3027,20],{"class":776},[770,3029,2591],{"class":810},[770,3031,2906],{"class":788},[770,3033,3034],{"class":810}," p.variant_type ",[770,3036,3006],{"class":788},[770,3038,2627],{"class":780},[770,3040,3041],{"class":810},"[variant]);\n",[770,3043,3044,3047],{"class":772,"line":1257},[770,3045,3046],{"class":788},"      return",[770,3048,2632],{"class":810},[770,3050,3051],{"class":772,"line":1263},[770,3052,3053],{"class":810},"        variant,\n",[770,3055,3056,3059,3061,3064],{"class":772,"line":1274},[770,3057,3058],{"class":810},"        tcgplayerMarketUsd: t?.market_price ",[770,3060,2924],{"class":788},[770,3062,3063],{"class":780}," null",[770,3065,826],{"class":810},[770,3067,3068,3071,3073,3075],{"class":772,"line":1279},[770,3069,3070],{"class":810},"        cardmarketTrendEur: c?.trend ",[770,3072,2924],{"class":788},[770,3074,3063],{"class":780},[770,3076,826],{"class":810},[770,3078,3079],{"class":772,"line":1287},[770,3080,3081],{"class":810},"      };\n",[770,3083,3084],{"class":772,"line":1299},[770,3085,3086],{"class":810},"    });\n",[770,3088,3089],{"class":772,"line":1306},[770,3090,2575],{"emptyLinePlaceholder":2574},[770,3092,3093,3096],{"class":772,"line":1351},[770,3094,3095],{"class":788},"    return",[770,3097,2632],{"class":810},[770,3099,3100],{"class":772,"line":1382},[770,3101,3102],{"class":810},"      id: card.id,\n",[770,3104,3105],{"class":772,"line":1394},[770,3106,3107],{"class":810},"      name: card.card_info.name,\n",[770,3109,3110],{"class":772,"line":1435},[770,3111,3112],{"class":810},"      setId: card.card_info.set_id,\n",[770,3114,3115,3118,3120,3123,3125,3128,3130,3133,3135,3138],{"class":772,"line":1465},[770,3116,3117],{"class":810},"      inks: (card.card_info.ink_type ",[770,3119,2924],{"class":788},[770,3121,3122],{"class":784}," \"\"",[770,3124,312],{"class":810},[770,3126,3127],{"class":2600},"split",[770,3129,2604],{"class":810},[770,3131,3132],{"class":784},"\";\"",[770,3134,312],{"class":810},[770,3136,3137],{"class":2600},"filter",[770,3139,3140],{"class":810},"(Boolean),\n",[770,3142,3143,3146,3149,3152],{"class":772,"line":1477},[770,3144,3145],{"class":810},"      cost: ",[770,3147,3148],{"class":2600},"Number",[770,3150,3151],{"class":810},"(card.card_info.cost_ink), ",[770,3153,3154],{"class":2619},"\u002F\u002F sent as a string\n",[770,3156,3157],{"class":772,"line":1482},[770,3158,3159],{"class":810},"      variants,\n",[770,3161,3162],{"class":772,"line":1493},[770,3163,3164],{"class":810},"    };\n",[770,3166,3167],{"class":772,"line":1499},[770,3168,2743],{"class":810},[770,3170,3171],{"class":772,"line":1505},[770,3172,1643],{"class":810},[770,3174,3175],{"class":772,"line":1511},[770,3176,2575],{"emptyLinePlaceholder":2574},[770,3178,3179,3182,3184,3186],{"class":772,"line":1558},[770,3180,3181],{"class":2600},"comparePrices",[770,3183,2604],{"class":810},[770,3185,823],{"class":784},[770,3187,3188],{"class":810},")\n",[770,3190,3191,3194,3197,3199,3202,3204,3206,3209,3212,3214,3217,3219,3222,3225,3227,3229,3231],{"class":772,"line":1566},[770,3192,3193],{"class":810},"  .",[770,3195,3196],{"class":2600},"then",[770,3198,2898],{"class":810},[770,3200,3201],{"class":776},"rows",[770,3203,2591],{"class":810},[770,3205,2906],{"class":788},[770,3207,3208],{"class":810}," console.",[770,3210,3211],{"class":2600},"log",[770,3213,2604],{"class":810},[770,3215,3216],{"class":780},"JSON",[770,3218,88],{"class":810},[770,3220,3221],{"class":2600},"stringify",[770,3223,3224],{"class":810},"(rows, ",[770,3226,87],{"class":780},[770,3228,121],{"class":810},[770,3230,2204],{"class":780},[770,3232,3233],{"class":810},")))\n",[770,3235,3236,3238,3241,3243,3246,3248,3250,3252,3255],{"class":772,"line":1596},[770,3237,3193],{"class":810},[770,3239,3240],{"class":2600},"catch",[770,3242,2898],{"class":810},[770,3244,3245],{"class":776},"err",[770,3247,2591],{"class":810},[770,3249,2906],{"class":788},[770,3251,3208],{"class":810},[770,3253,3254],{"class":2600},"error",[770,3256,3257],{"class":810},"(err.message));\n",[20,3259,3260,3261,3264,3265,3268,3269,88],{},"For Woody - Helping a Friend from Attack of the Vine!, this prints Normal at ",[25,3262,3263],{},"$0.30 \u002F €0.25"," and Cold Foil at ",[25,3266,3267],{},"$0.70 \u002F €1.08",". The promo Woody comes back with a TCGplayer price and ",[39,3270,3271],{},"cardmarketTrendEur: null",[103,3273,3275],{"id":3274},"python-what-does-a-full-set-cost-ultra","Python: what does a full set cost? (Ultra)",[761,3277,3281],{"className":3278,"code":3279,"language":3280,"meta":766,"style":766},"language-python shiki shiki-themes github-dark-default","import os\nimport requests\n\nBASE_URL = \"https:\u002F\u002Fapi.pokewallet.io\"\nAPI_KEY = os.environ.get(\"POKEWALLET_API_KEY\")\nif not API_KEY:\n    raise SystemExit(\"Missing POKEWALLET_API_KEY\")\n\ndef api(path: str) -> dict:\n    res = requests.get(f\"{BASE_URL}{path}\", headers={\"X-API-Key\": API_KEY}, timeout=15)\n    res.raise_for_status()\n    return res.json()\n\ndef completion_report(set_id: str) -> None:\n    data = api(f\"\u002Flor\u002Fsets\u002F{set_id}\u002Fcompletion-value\")\n    tcg = data[\"completion_cost\"][\"tcgplayer\"]\n    cm = data[\"completion_cost\"][\"cardmarket\"]\n    breakdown = data[\"breakdown_by_rarity\"]\n    total = sum(r[\"total_cost\"] for r in breakdown.values())\n\n    print(f\"{data['set_info']['name']} — {data['set_info']['total_cards']} cards\")\n    print(f\"TCGplayer market: {tcg['market_estimate']:,.2f} {tcg['currency']}\")\n    print(f\"CardMarket avg:   {cm['avg_estimate']:,.2f} {cm['currency']}\")\n    for rarity, row in sorted(breakdown.items(), key=lambda kv: kv[1][\"total_cost\"], reverse=True):\n        share = row[\"total_cost\"] \u002F total * 100 if total else 0\n        print(f\"  {rarity:\u003C10} {row['count']:>3} cards  {row['total_cost']:>10,.2f}  ({share:.1f}%)\")\n\nif __name__ == \"__main__\":\n    try:\n        completion_report(\"24666\")  # Attack of the Vine!\n    except requests.HTTPError as err:\n        print(f\"Request failed: {err}\")\n","python",[39,3282,3283,3291,3298,3302,3311,3325,3337,3351,3355,3376,3435,3440,3447,3451,3469,3495,3517,3534,3548,3579,3583,3635,3675,3712,3757,3793,3856,3860,3875,3882,3895,3909],{"__ignoreMap":766},[770,3284,3285,3288],{"class":772,"line":773},[770,3286,3287],{"class":788},"import",[770,3289,3290],{"class":810}," os\n",[770,3292,3293,3295],{"class":772,"line":792},[770,3294,3287],{"class":788},[770,3296,3297],{"class":810}," requests\n",[770,3299,3300],{"class":772,"line":829},[770,3301,2575],{"emptyLinePlaceholder":2574},[770,3303,3304,3306,3308],{"class":772,"line":838},[770,3305,2713],{"class":780},[770,3307,2546],{"class":788},[770,3309,3310],{"class":784}," \"https:\u002F\u002Fapi.pokewallet.io\"\n",[770,3312,3313,3315,3317,3320,3323],{"class":772,"line":844},[770,3314,2588],{"class":780},[770,3316,2546],{"class":788},[770,3318,3319],{"class":810}," os.environ.get(",[770,3321,3322],{"class":784},"\"POKEWALLET_API_KEY\"",[770,3324,3188],{"class":810},[770,3326,3327,3329,3332,3334],{"class":772,"line":857},[770,3328,2580],{"class":788},[770,3330,3331],{"class":788}," not",[770,3333,2559],{"class":780},[770,3335,3336],{"class":810},":\n",[770,3338,3339,3342,3345,3347,3349],{"class":772,"line":866},[770,3340,3341],{"class":788},"    raise",[770,3343,3344],{"class":780}," SystemExit",[770,3346,2604],{"class":810},[770,3348,2607],{"class":784},[770,3350,3188],{"class":810},[770,3352,3353],{"class":772,"line":879},[770,3354,2575],{"emptyLinePlaceholder":2574},[770,3356,3357,3360,3362,3365,3368,3371,3374],{"class":772,"line":892},[770,3358,3359],{"class":788},"def",[770,3361,2681],{"class":2600},[770,3363,3364],{"class":810},"(path: ",[770,3366,3367],{"class":780},"str",[770,3369,3370],{"class":810},") -> ",[770,3372,3373],{"class":780},"dict",[770,3375,3336],{"class":810},[770,3377,3378,3381,3383,3386,3389,3392,3395,3397,3400,3402,3405,3407,3409,3412,3414,3416,3418,3420,3422,3425,3428,3430,3433],{"class":772,"line":904},[770,3379,3380],{"class":810},"    res ",[770,3382,2859],{"class":788},[770,3384,3385],{"class":810}," requests.get(",[770,3387,3388],{"class":788},"f",[770,3390,3391],{"class":784},"\"",[770,3393,3394],{"class":788},"{",[770,3396,2713],{"class":780},[770,3398,3399],{"class":788},"}{",[770,3401,2686],{"class":810},[770,3403,3404],{"class":788},"}",[770,3406,3391],{"class":784},[770,3408,121],{"class":810},[770,3410,3411],{"class":776},"headers",[770,3413,2859],{"class":788},[770,3415,3394],{"class":810},[770,3417,2732],{"class":784},[770,3419,820],{"class":810},[770,3421,2588],{"class":780},[770,3423,3424],{"class":810},"}, ",[770,3426,3427],{"class":776},"timeout",[770,3429,2859],{"class":788},[770,3431,3432],{"class":780},"15",[770,3434,3188],{"class":810},[770,3436,3437],{"class":772,"line":916},[770,3438,3439],{"class":810},"    res.raise_for_status()\n",[770,3441,3442,3444],{"class":772,"line":929},[770,3443,3095],{"class":788},[770,3445,3446],{"class":810}," res.json()\n",[770,3448,3449],{"class":772,"line":942},[770,3450,2575],{"emptyLinePlaceholder":2574},[770,3452,3453,3455,3458,3461,3463,3465,3467],{"class":772,"line":955},[770,3454,3359],{"class":788},[770,3456,3457],{"class":2600}," completion_report",[770,3459,3460],{"class":810},"(set_id: ",[770,3462,3367],{"class":780},[770,3464,3370],{"class":810},[770,3466,2212],{"class":780},[770,3468,3336],{"class":810},[770,3470,3471,3474,3476,3479,3481,3484,3486,3488,3490,3493],{"class":772,"line":975},[770,3472,3473],{"class":810},"    data ",[770,3475,2859],{"class":788},[770,3477,3478],{"class":810}," api(",[770,3480,3388],{"class":788},[770,3482,3483],{"class":784},"\"\u002Flor\u002Fsets\u002F",[770,3485,3394],{"class":788},[770,3487,160],{"class":810},[770,3489,3404],{"class":788},[770,3491,3492],{"class":784},"\u002Fcompletion-value\"",[770,3494,3188],{"class":810},[770,3496,3497,3500,3502,3505,3508,3511,3514],{"class":772,"line":987},[770,3498,3499],{"class":810},"    tcg ",[770,3501,2859],{"class":788},[770,3503,3504],{"class":810}," data[",[770,3506,3507],{"class":784},"\"completion_cost\"",[770,3509,3510],{"class":810},"][",[770,3512,3513],{"class":784},"\"tcgplayer\"",[770,3515,3516],{"class":810},"]\n",[770,3518,3519,3522,3524,3526,3528,3530,3532],{"class":772,"line":999},[770,3520,3521],{"class":810},"    cm ",[770,3523,2859],{"class":788},[770,3525,3504],{"class":810},[770,3527,3507],{"class":784},[770,3529,3510],{"class":810},[770,3531,1587],{"class":784},[770,3533,3516],{"class":810},[770,3535,3536,3539,3541,3543,3546],{"class":772,"line":1011},[770,3537,3538],{"class":810},"    breakdown ",[770,3540,2859],{"class":788},[770,3542,3504],{"class":810},[770,3544,3545],{"class":784},"\"breakdown_by_rarity\"",[770,3547,3516],{"class":810},[770,3549,3550,3553,3555,3558,3561,3564,3567,3570,3573,3576],{"class":772,"line":1023},[770,3551,3552],{"class":810},"    total ",[770,3554,2859],{"class":788},[770,3556,3557],{"class":780}," sum",[770,3559,3560],{"class":810},"(r[",[770,3562,3563],{"class":784},"\"total_cost\"",[770,3565,3566],{"class":810},"] ",[770,3568,3569],{"class":788},"for",[770,3571,3572],{"class":810}," r ",[770,3574,3575],{"class":788},"in",[770,3577,3578],{"class":810}," breakdown.values())\n",[770,3580,3581],{"class":772,"line":1035},[770,3582,2575],{"emptyLinePlaceholder":2574},[770,3584,3585,3588,3590,3592,3594,3596,3599,3602,3604,3607,3610,3612,3615,3617,3619,3621,3623,3626,3628,3630,3633],{"class":772,"line":1047},[770,3586,3587],{"class":780},"    print",[770,3589,2604],{"class":810},[770,3591,3388],{"class":788},[770,3593,3391],{"class":784},[770,3595,3394],{"class":788},[770,3597,3598],{"class":810},"data[",[770,3600,3601],{"class":784},"'set_info'",[770,3603,3510],{"class":810},[770,3605,3606],{"class":784},"'name'",[770,3608,3609],{"class":810},"]",[770,3611,3404],{"class":788},[770,3613,3614],{"class":784}," — ",[770,3616,3394],{"class":788},[770,3618,3598],{"class":810},[770,3620,3601],{"class":784},[770,3622,3510],{"class":810},[770,3624,3625],{"class":784},"'total_cards'",[770,3627,3609],{"class":810},[770,3629,3404],{"class":788},[770,3631,3632],{"class":784}," cards\"",[770,3634,3188],{"class":810},[770,3636,3637,3639,3641,3643,3646,3648,3651,3654,3656,3659,3662,3664,3667,3669,3671,3673],{"class":772,"line":1059},[770,3638,3587],{"class":780},[770,3640,2604],{"class":810},[770,3642,3388],{"class":788},[770,3644,3645],{"class":784},"\"TCGplayer market: ",[770,3647,3394],{"class":788},[770,3649,3650],{"class":810},"tcg[",[770,3652,3653],{"class":784},"'market_estimate'",[770,3655,3609],{"class":810},[770,3657,3658],{"class":788},":,.2f}",[770,3660,3661],{"class":788}," {",[770,3663,3650],{"class":810},[770,3665,3666],{"class":784},"'currency'",[770,3668,3609],{"class":810},[770,3670,3404],{"class":788},[770,3672,3391],{"class":784},[770,3674,3188],{"class":810},[770,3676,3677,3679,3681,3683,3686,3688,3691,3694,3696,3698,3700,3702,3704,3706,3708,3710],{"class":772,"line":1071},[770,3678,3587],{"class":780},[770,3680,2604],{"class":810},[770,3682,3388],{"class":788},[770,3684,3685],{"class":784},"\"CardMarket avg:   ",[770,3687,3394],{"class":788},[770,3689,3690],{"class":810},"cm[",[770,3692,3693],{"class":784},"'avg_estimate'",[770,3695,3609],{"class":810},[770,3697,3658],{"class":788},[770,3699,3661],{"class":788},[770,3701,3690],{"class":810},[770,3703,3666],{"class":784},[770,3705,3609],{"class":810},[770,3707,3404],{"class":788},[770,3709,3391],{"class":784},[770,3711,3188],{"class":810},[770,3713,3714,3717,3720,3722,3725,3728,3731,3734,3737,3739,3741,3743,3746,3749,3751,3754],{"class":772,"line":1082},[770,3715,3716],{"class":788},"    for",[770,3718,3719],{"class":810}," rarity, row ",[770,3721,3575],{"class":788},[770,3723,3724],{"class":780}," sorted",[770,3726,3727],{"class":810},"(breakdown.items(), ",[770,3729,3730],{"class":776},"key",[770,3732,3733],{"class":788},"=lambda",[770,3735,3736],{"class":810}," kv: kv[",[770,3738,377],{"class":780},[770,3740,3510],{"class":810},[770,3742,3563],{"class":784},[770,3744,3745],{"class":810},"], ",[770,3747,3748],{"class":776},"reverse",[770,3750,2859],{"class":788},[770,3752,3753],{"class":780},"True",[770,3755,3756],{"class":810},"):\n",[770,3758,3759,3762,3764,3767,3769,3771,3773,3776,3779,3782,3785,3787,3790],{"class":772,"line":1088},[770,3760,3761],{"class":810},"        share ",[770,3763,2859],{"class":788},[770,3765,3766],{"class":810}," row[",[770,3768,3563],{"class":784},[770,3770,3566],{"class":810},[770,3772,704],{"class":788},[770,3774,3775],{"class":810}," total ",[770,3777,3778],{"class":788},"*",[770,3780,3781],{"class":780}," 100",[770,3783,3784],{"class":788}," if",[770,3786,3775],{"class":810},[770,3788,3789],{"class":788},"else",[770,3791,3792],{"class":780}," 0\n",[770,3794,3795,3798,3800,3802,3805,3807,3809,3812,3814,3817,3820,3822,3825,3828,3830,3832,3835,3837,3840,3843,3845,3848,3851,3854],{"class":772,"line":1096},[770,3796,3797],{"class":780},"        print",[770,3799,2604],{"class":810},[770,3801,3388],{"class":788},[770,3803,3804],{"class":784},"\"  ",[770,3806,3394],{"class":788},[770,3808,558],{"class":810},[770,3810,3811],{"class":788},":\u003C10}",[770,3813,3661],{"class":788},[770,3815,3816],{"class":810},"row[",[770,3818,3819],{"class":784},"'count'",[770,3821,3609],{"class":810},[770,3823,3824],{"class":788},":>3}",[770,3826,3827],{"class":784}," cards  ",[770,3829,3394],{"class":788},[770,3831,3816],{"class":810},[770,3833,3834],{"class":784},"'total_cost'",[770,3836,3609],{"class":810},[770,3838,3839],{"class":788},":>10,.2f}",[770,3841,3842],{"class":784},"  (",[770,3844,3394],{"class":788},[770,3846,3847],{"class":810},"share",[770,3849,3850],{"class":788},":.1f}",[770,3852,3853],{"class":784},"%)\"",[770,3855,3188],{"class":810},[770,3857,3858],{"class":772,"line":1104},[770,3859,2575],{"emptyLinePlaceholder":2574},[770,3861,3862,3864,3867,3870,3873],{"class":772,"line":1139},[770,3863,2580],{"class":788},[770,3865,3866],{"class":780}," __name__",[770,3868,3869],{"class":788}," ==",[770,3871,3872],{"class":784}," \"__main__\"",[770,3874,3336],{"class":810},[770,3876,3877,3880],{"class":772,"line":1171},[770,3878,3879],{"class":788},"    try",[770,3881,3336],{"class":810},[770,3883,3884,3887,3889,3892],{"class":772,"line":1185},[770,3885,3886],{"class":810},"        completion_report(",[770,3888,163],{"class":784},[770,3890,3891],{"class":810},")  ",[770,3893,3894],{"class":2619},"# Attack of the Vine!\n",[770,3896,3897,3900,3903,3906],{"class":772,"line":1216},[770,3898,3899],{"class":788},"    except",[770,3901,3902],{"class":810}," requests.HTTPError ",[770,3904,3905],{"class":788},"as",[770,3907,3908],{"class":810}," err:\n",[770,3910,3911,3913,3915,3917,3920,3922,3924,3926,3928],{"class":772,"line":1245},[770,3912,3797],{"class":780},[770,3914,2604],{"class":810},[770,3916,3388],{"class":788},[770,3918,3919],{"class":784},"\"Request failed: ",[770,3921,3394],{"class":788},[770,3923,3245],{"class":810},[770,3925,3404],{"class":788},[770,3927,3391],{"class":784},[770,3929,3188],{"class":810},[20,3931,3932,3933,3937,3938,3941,3942,3945],{},"Against Attack of the Vine! this reproduces the table above, with Iconic first at 51.7% and Enchanted second at 46.8%. For a full tracker with storage and alerts, the ",[93,3934,3936],{"href":3935},"\u002Fblog\u002Fbuild-one-piece-card-price-tracker-berrywallet-api-tutorial","BerryWallet price tracker tutorial"," walks through the architecture. Swap ",[39,3939,3940],{},"\u002Fop\u002F"," for ",[39,3943,3944],{},"\u002Flor\u002F"," and the pattern carries over.",[291,3947,3949],{"id":3948},"how-it-compares-to-the-alternatives","How It Compares to the Alternatives",[20,3951,3952],{},"Lorcana is well served for card data, and it's worth saying so plainly.",[20,3954,3955,3958,3959,3962,3963,70,3966,3969],{},[25,3956,3957],{},"Lorcast"," is a well-established Lorcana-only option. Its public API at ",[39,3960,3961],{},"api.lorcast.com"," serves cards, sets and images, and its documentation says prices are included and updated once a day. It asks clients to keep 50–100 ms between requests and to cache data for at least 24 hours, and its documentation doesn't mention an API key. Its card object carries two price fields, ",[39,3964,3965],{},"prices.usd",[39,3967,3968],{},"prices.usd_foil",", both in US dollars, with no euro price. If you're building a deckbuilder or a card browser for a US audience, it's a strong, focused choice.",[20,3971,3972,3975],{},[25,3973,3974],{},"Scrydex",", the paid successor to PokémonTCG.io, also lists Lorcana among its games. Its plans are credit-based, from $29\u002Fmonth, and its FAQ says CardMarket is still being evaluated.",[20,3977,3978],{},"Where PokéWallet fits:",[108,3980,3981,3987,3993],{},[111,3982,3983,3986],{},[25,3984,3985],{},"Both marketplaces in one response",", normalized per variant. If your users are in Europe, CardMarket EUR prices matter as much as TCGplayer USD.",[111,3988,3989,3992],{},[25,3990,3991],{},"Set-level analytics ready-made",": completion value, statistics, trending sets and top cards, without building your own aggregation.",[111,3994,3995,3998],{},[25,3996,3997],{},"A free catalog",", so you can build the card side before paying for anything.",[20,4000,4001],{},"What we don't have: price history for Lorcana, eBay sold listings, graded prices and intraday updates. If your product depends on any of those, we're not the right tool today.",[20,4003,4004,4005,4008,4009,88],{},"Our real advantage is breadth. The same key reads ",[25,4006,4007],{},"12 games",": Pokémon, One Piece, Magic: The Gathering, Yu-Gi-Oh!, Lorcana, Flesh and Blood, Dragon Ball Super, Digimon, Star Wars Unlimited, Cardfight!! Vanguard, Riftbound and Cyberpunk. A local game store selling Lorcana next to Pokémon and Magic doesn't want three integrations. For how multi-source apps are usually structured, see our ",[93,4010,4012],{"href":4011},"\u002Fblog\u002Fpokemon-tcg-api-power-modern-collection-apps-architecture","architecture guide for TCG collection apps",[247,4014],{},[291,4016,4018],{"id":4017},"frequently-asked-questions","Frequently Asked Questions",[103,4020,4022],{"id":4021},"is-there-a-disney-lorcana-api","Is there a Disney Lorcana API?",[20,4024,4025,4026,4028,4029,88],{},"Yes, more than one. PokéWallet serves Lorcana at ",[39,4027,304],{}," with sets, cards, search and images, plus TCGplayer and CardMarket prices: 24 sets as of October 21, 2026, including Hyperia City and the Illumineer's Quest products. Lorcast is a popular community API focused on Lorcana card data. Our full reference is in the ",[93,4030,1855],{"href":1854},[103,4032,4034],{"id":4033},"is-the-lorcana-api-free","Is the Lorcana API free?",[20,4036,4037],{},"The catalog is: sets, cards, search and images, on the free tier with 100 requests\u002Fhour and 1,000\u002Fday and no credit card, and card lookups include current prices. Whole-set prices, set statistics, completion value, trending sets and top cards need Ultra (€29\u002Fmonth) or the 7-day trial.",[103,4039,4041],{"id":4040},"does-the-pro-plan-include-lorcana-prices","Does the Pro plan include Lorcana prices?",[20,4043,4044,4045,88],{},"No. Pro (€20\u002Fmonth) unlocks the paid endpoints for Pokémon and One Piece only. Lorcana and the other nine games need Ultra, which also includes everything in Pro. The plans are compared on the ",[93,4046,4048],{"href":4047},"\u002Fpricing","pricing page",[103,4050,4052],{"id":4051},"how-do-i-get-lorcana-card-prices-from-tcgplayer-and-cardmarket","How do I get Lorcana card prices from TCGplayer and CardMarket?",[20,4054,4055,4056,1847,4058,4061,4062,4065,4066,4068,4069,4071,4072,4074,4075,4077],{},"For a single card, call ",[39,4057,127],{},[39,4059,4060],{},"\u002Flor\u002Fsearch?q=",": both return a ",[39,4063,4064],{},"tcgplayer"," block in USD and a ",[39,4067,218],{}," block in EUR on any plan. For a whole set, call ",[39,4070,143],{}," with the ",[39,4073,160],{}," (for example ",[39,4076,403],{}," for Attack of the Vine!) and an Ultra or trial key.",[103,4079,4081],{"id":4080},"why-dont-cold-foil-prices-match-between-tcgplayer-and-cardmarket","Why don't Cold Foil prices match between TCGplayer and CardMarket?",[20,4083,4084,4085,4087,4088,4090,4091,4093],{},"They're named differently. TCGplayer lists ",[39,4086,969],{}," (and ",[39,4089,1692],{}," for promos), while CardMarket uses ",[39,4092,1403],{},". Map the names explicitly before joining the two, and remember one is in USD and the other in EUR.",[103,4095,4097],{"id":4096},"how-often-are-lorcana-prices-updated","How often are Lorcana prices updated?",[20,4099,4100,4101,4103],{},"Once a day, for both marketplaces. The ",[39,4102,1722],{}," field shows when a price last changed, not when it was last checked, so a stable common can carry an older timestamp and still be current.",[103,4105,4107],{"id":4106},"what-is-the-most-expensive-lorcana-card-right-now","What is the most expensive Lorcana card right now?",[20,4109,4110],{},"In our October 21 data, the top TCGplayer card was Elsa - Ice Maker (Foil), a Disney Lorcana Challenge promo, at $3,979, followed by Mickey Mouse - Brave Little Prince (Iconic) from Fabled at $3,875. Within Attack of the Vine!, Belle & Beast - Certain as the Sun (Iconic) leads at $1,906.55 on TCGplayer and €1,206.98 on CardMarket.",[103,4112,4114],{"id":4113},"does-it-include-lorcana-price-history-or-graded-prices","Does it include Lorcana price history or graded prices?",[20,4116,4117,4118,121,4120,121,4122,4124],{},"No. Price history is Pokémon-only, and there's no PSA, CGC or eBay data. For Lorcana you get CardMarket's rolling averages (",[39,4119,231],{},[39,4121,234],{},[39,4123,237],{},") on each card and the 7-day changes from the trending and growth endpoints.",[247,4126],{},[15,4128,18,4130],{"style":4129},"background: rgba(107, 76, 154, 0.12); border-left: 4px solid #6B4C9A; padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 4px;",[20,4131,23,4133,4136],{"style":4132},"margin: 0; font-size: 0.85rem; color: #e0e0e0;",[25,4134,4135],{},"💬 Price disclaimer:"," All prices and statistics in this article come from live PokéWallet API responses captured on October 21, 2026, sourced from TCGplayer (USD) and CardMarket (EUR). Card prices change daily, and this is not financial advice. Details about Lorcast and Scrydex come from their own documentation, checked on the same day.\n  ",[247,4138],{},[291,4140,4142],{"id":4141},"start-building-with-the-pokéwallet-api","Start Building with the PokéWallet API",[20,4144,4145],{},"Everything in this guide (the Attack of the Vine! completion cost, the two Woodys, the Cold Foil mapping) came from a handful of calls with one key. Start on the free catalog, and turn on the 7-day trial when you're ready for whole-set prices.",[108,4147,4148,4154,4160,4166,4173],{},[111,4149,241,4150,4153],{},[25,4151,4152],{},"One API key for 12 trading card games"," — Pokémon, One Piece, Magic, Yu-Gi-Oh!, Lorcana, Riftbound and more",[111,4155,137,4156,4159],{},[25,4157,4158],{},"TCGplayer (USD) and CardMarket (EUR) prices",", refreshed daily",[111,4161,113,4162,4165],{},[25,4163,4164],{},"Catalog endpoints free on every plan"," — sets, cards, search and images",[111,4167,4168,4169,4172],{},"⚡ ",[25,4170,4171],{},"Ultra unlocks prices and analytics for every game"," — try it free for 7 days from your dashboard",[111,4174,4175,4176,4179,4180],{},"💬 ",[25,4177,4178],{},"Developer support"," in our ",[93,4181,4185],{"href":4182,"rel":4183},"https:\u002F\u002Fdiscord.gg\u002FznDxEjmDVP",[4184],"nofollow","Discord",[20,4187,4188],{},[25,4189,4190],{},"Get Started:",[108,4192,4193,4202,4209],{},[111,4194,4195,4196,4201],{},"🚀 ",[25,4197,4198],{},[93,4199,4200],{"href":754},"Get Your Free API Key"," — no credit card required",[111,4203,4204,4205],{},"📖 Read the ",[93,4206,4208],{"href":4207},"\u002Fapi-docs","API documentation",[111,4210,4211,4212],{},"💳 Compare plans on the ",[93,4213,4048],{"href":4047},[247,4215],{},[20,4217,4218],{},[1664,4219,4220],{},"This article is for informational purposes only and is not financial advice. Details reflect information available at the time of writing; release dates, pricing and set contents are subject to change. Card prices are volatile — always verify current market pricing before buying or selling.",[4222,4223,4224],"style",{},"html pre.shiki code .suJrU, html code.shiki .suJrU{--shiki-default:#FF7B72}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}html pre.shiki code .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}html pre.shiki code .sc3cj, html code.shiki .sc3cj{--shiki-default:#D2A8FF}html pre.shiki code .sH3jZ, html code.shiki .sH3jZ{--shiki-default:#8B949E}html pre.shiki code .sQhOw, html code.shiki .sQhOw{--shiki-default:#FFA657}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sPWt5, html code.shiki .sPWt5{--shiki-default:#7EE787}",{"title":766,"searchDepth":792,"depth":792,"links":4226},[4227,4228,4229,4230,4231,4239,4243,4244,4254],{"id":105,"depth":829,"text":106},{"id":293,"depth":792,"text":294},{"id":747,"depth":792,"text":748},{"id":1731,"depth":792,"text":1732},{"id":1901,"depth":792,"text":1902,"children":4232},[4233,4235,4236,4237,4238],{"id":1921,"depth":829,"text":4234},"GET \u002Flor\u002Fprices\u002F:set: bulk set prices",{"id":1956,"depth":829,"text":1959},{"id":2051,"depth":829,"text":2054},{"id":2249,"depth":829,"text":2252},{"id":2414,"depth":829,"text":2417},{"id":2520,"depth":792,"text":2521,"children":4240},[4241,4242],{"id":2527,"depth":829,"text":2528},{"id":3274,"depth":829,"text":3275},{"id":3948,"depth":792,"text":3949},{"id":4017,"depth":792,"text":4018,"children":4245},[4246,4247,4248,4249,4250,4251,4252,4253],{"id":4021,"depth":829,"text":4022},{"id":4033,"depth":829,"text":4034},{"id":4040,"depth":829,"text":4041},{"id":4051,"depth":829,"text":4052},{"id":4080,"depth":829,"text":4081},{"id":4096,"depth":829,"text":4097},{"id":4106,"depth":829,"text":4107},{"id":4113,"depth":829,"text":4114},{"id":4141,"depth":792,"text":4142},"Developers","2026-10-27","Disney Lorcana API guide: free card database endpoints, TCGplayer and CardMarket prices with Ultra, real JSON responses, and JavaScript and Python examples.","md","\u002Fblog\u002Florcana\u002F2026\u002F10\u002Florcana-api-card-prices-tcgplayer-cardmarket.webp","Elsa in her shimmering ice-blue gown raising a swirl of frost beside Mickey Mouse in a royal prince outfit and Buzz Lightyear in his white space suit, inside a glowing Great Illuminary library as golden Lorcana cards and soft price charts float around them.",{},"\u002Fblog\u002Florcana\u002F2026\u002F10\u002Florcana-api-card-prices-tcgplayer-cardmarket","15 min read",{"title":5,"description":4257},"blog\u002Florcana\u002F2026\u002F10\u002Florcana-api-card-prices-tcgplayer-cardmarket",[4267,4268,4269,4270,4271,4272],"lorcana api","lorcana card price api","disney lorcana api","lorcana card database api","lorcana tcgplayer cardmarket prices","lorcana price tracker",null,"2LRKFPkygr-tO_RqOsChnEwI8gCSCE93HTKxFCiR6Ko",[],1793089765188]