# cardmarket-priceguide Cardmarket's public bulk files (no key, no storefront crawling): - `productCatalog/priceGuide/price_guide_.json` — daily EUR guide per product: `avg`, `low`, `trend`, `avg1`, `avg7`, `avg30` and the `*-foil` twins. `createdAt` of the file is the observation date. - `productCatalog/productList/products_singles_.json` / `products_nonsingles_.json` — `idProduct`, `name`, `idCategory`/`categoryName`, `idExpansion`, `idMetacard`, `dateAdded`. Game ids (probed live; 403 = absent): 1 Magic · 2 WoW · 3 Yu-Gi-Oh! · 5 Spoils · 6 Pokémon · 7 Force of Will · 8 Vanguard · 9 Final Fantasy · 10 Weiss Schwarz · 11 Dragoborne · 12 My Little Pony · 13 Dragon Ball Super · 15 SW Destiny · 16 Flesh and Blood · 17 Digimon · 18 One Piece · 19 Lorcana · 20 Battle Spirits Saga · 21 SW Unlimited · 22 Riftbound. `config.games` maps ids → taxonomy slug. Output: one `catalog_item` per product (`identifiers.cardmarket_id` = idProduct, the key MTGJSON also emits), a second one with variant `Foil` (`Reverse Holo` for Pokémon) when foil prices exist, and `price_observation`s per field (`avg`→mid, `low`→low, `trend`→trend, `avg1`→market, `avg7`→average_7d, `avg30`→average_30d). The files carry no expansion names, numbers or images. Cursor `{ gameIdx, offset }`; ≤ 3 requests per game per run. Fixtures: `pnpm tsx connectors/api/cardmarket-priceguide/_capture.ts`.