Cardmarket Scraper - Price Guide, Seller Offers & Top Cards avatar

Cardmarket Scraper - Price Guide, Seller Offers & Top Cards

Pricing

from $0.80 / 1,000 products

Go to Apify Store
Cardmarket Scraper - Price Guide, Seller Offers & Top Cards

Cardmarket Scraper - Price Guide, Seller Offers & Top Cards

Scrape Cardmarket for 23 trading card games: the daily price guide (trend, low, 1/7/30-day averages, foil) for every card and sealed product, live seller offers with condition, language, price, quantity, seller type and country, seller shops, and the Best Sellers / Best Bargains lists.

Pricing

from $0.80 / 1,000 products

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

5 days ago

Last modified

Share

What does Cardmarket Scraper do?

Cardmarket Scraper exports Europe's largest trading-card marketplace, cardmarket.com, for 23 games: Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana, Digimon, Flesh and Blood, Star Wars Unlimited, Dragon Ball Super, Riftbound, Gundam, Sorcery and more. One run gives you one of three things: the daily price guide for every card and sealed product of a game, the live seller offers of chosen products or seller shops, or the Best Sellers and Best Bargains lists.

  • 📈 Price guide in seconds — trend price, lowest offer, average sell price, 1/7/30-day averages and the foil (Pokémon: reverse holo) set of the same, for up to 128,000 products per game, read from Cardmarket's own daily price files.
  • 🛒 Seller offers — seller, seller type (private / professional / powerseller), country, sales count, condition, language, foil / reverse holo / signed / altered / first edition, price, quantity, seller comment and the seller's photo of the copy.
  • 🔎 Find products by name — type "charizard" or "black lotus": the actor finds the products on Cardmarket's catalogue and opens their pages, no search page needed.
  • 🏪 Seller shops — walk a seller's Singles inventory, with Cardmarket's own name search and sort.
  • 🏆 Top cards — Cardmarket's Best Sellers (Weekly Top Cards) and Best Bargains lists, joined to the full price guide.
  • 🔁 Monitoring — deliver only cards whose price moved since your last run, or only new offers.
  • 🔐 No login, no API key, no cookies.

What data can you get from Cardmarket?

Product price rowsSeller offer rowsProduct page and list rows
🆔 productId, name🧾 offerId, position💎 rarity, collectorNumber
🗂️ categoryName, productType👤 sellerUsername, sellerUrl📦 availableItems
📚 expansionName, expansionId🏷️ sellerType, sellerSales💶 fromPrice, fromCurrency
📈 priceTrendEur, priceLowEur🌍 sellerCountry📉 priceHistory (30-point chart)
💰 priceAvgEur, avg1DayEur⭐ condition, language🔁 versionsCount
📆 avg7DayEur, avg30DayEur✨ isFoil, isReverseHolo📜 rulesText
✨ foilTrendEur, foilLowEur, …✍️ isSigned, isAltered, isFirstEd🖼️ imageUrl
🚀 momentum7Pct, trendVsAvg30Pct💶 price, priceEur, priceUsd🏆 list, rank
🔻 trendVsLowPct, foilPremiumPct📦 quantity, sellerComment🔗 productUrl
🔄 changeStatus, trendChangePct🏷️ discountVsTrendPct, scanImageUrl📅 priceGuideDate

How to scrape Cardmarket with Cardmarket Scraper

  1. Create a free Apify account (it comes with free monthly credit) and open Cardmarket Scraper.
  2. Pick the Mode: Price guide, Seller offers or Top cards.
  3. Pick the Game and type card names, or paste product / seller URLs.
  4. Set filters (condition, language, seller country, foil …) and Max results.
  5. Click Start. Price-guide runs finish in seconds; each Cardmarket page in the other modes takes 30-75 seconds.
  6. Download the dataset as JSON, CSV or Excel, or read it through the API.

⬇️ Input

ParameterTypeDefaultDescription
modestringproductsproducts (price guide), offers (seller offers), topCards
gamestringpokemonOne of 23 games, e.g. magic, yugioh, onepiece, lorcana
searchQueriesarray–Card or product names; every word must appear (case and accents ignored)
productUrlsarray–Offers: product pages or seller pages (/Users/<name>/Offers/Singles)
productIdsarray–Cardmarket product ids (productId in every row)
sellerUsernamesarray–Offers: seller shops to walk (20 offers per page)
topCardsListsarray["bestSellers"]bestSellers, bestBargains
productTypestringsinglessingles, sealed, all
expansionsarray–Set names as Cardmarket shows them, or expansionIds
languagesarray–Offers: English, French, German, Spanish, Italian, S-Chinese, Japanese, Portuguese, Russian, Korean, T-Chinese, Indonesian, Thai
minConditionstringanyOffers: MT NM EX GD LP PL PO (this or better)
sellerCountriesarray–Offers: ISO codes or names, e.g. DE, FR
sellerTypestringanyprivate, professional, powerseller, commercial
foilstringanyfoil, nonFoil
isReverseHolo / isSigned / isAltered / isFirstEdbooleanfalseOffers: only copies with that flag
minQuantityinteger0Offers: at least this many copies (4 = playsets)
shopQuery / shopSortstring– / best_matchSeller shops: name search and order
priceMinEur / priceMaxEurnumber–Keep products with a trend price in this band
onlyPricedbooleantrueSkip products with no trend price
minPrice / maxPricenumber–Offers: price band in EUR
sortBystringtrendDesctrendDesc, trendAsc, momentum, momentumDown, name, newest
includeProductRowsbooleantrueOffers: one product row per page read
maxOffersPerProductinteger50Offers per product (above 50: more pages, see below)
includePriceGuidebooleantrueTop cards: add the price guide to each card
trackChanges / onlyChangedbooleanfalsePrice guide: change status vs your last run / only changed products
monitorModebooleanfalseOffers: only offers not delivered before
maxResultsinteger100Most rows (0 = no cap)
maxProductsinteger3Offers: products each name opens
skipItemsinteger0Price guide: skip the first N sorted rows
maxShopPagesinteger5Seller shops: pages per seller

Input JSON

{
"mode": "offers",
"game": "pokemon",
"searchQueries": ["charizard ex"],
"maxProducts": 2,
"languages": ["English"],
"minCondition": "NM",
"sellerCountries": ["DE", "NL", "FR"],
"maxResults": 100
}

Start with the price guide

Price-guide mode reads Cardmarket's own daily price files (updated around 02:50 CET), so a whole game comes back in seconds and costs the least. Use offers mode when you need who sells a card, at what condition and price, right now.

Offers: what one page holds

Cardmarket shows the 50 cheapest offers that match your filters on a product page. Your filters are sent to Cardmarket with the page and checked again on every row (Cardmarket ignores a filter value it has no offers for, for example English on a Japanese-only card). Ask for more than 50 with maxOffersPerProduct and the actor reads further pages split by language, then seller type, then country; offersComplete on the product row tells you whether every matching offer was read.

Names find products, best first

In offers mode each name opens maxProducts products, picked by sortBy (by default the highest trend price). For one exact printing, paste its product URL or productId instead.

⬆️ Output

A price-guide row (Pokémon, "charizard", run 2026-10-14):

{
"recordType": "product",
"productId": 277305,
"name": "Charizard Gold Star δ Delta Species [Rotating Claws | Dark Swirl]",
"game": "Pokémon",
"categoryName": "Pokémon Single",
"expansionName": "EX Dragon Frontiers",
"priceLowEur": 900,
"priceAvgEur": 5588,
"priceTrendEur": 5535.92,
"avg7DayEur": 4841.43,
"avg30DayEur": 3698.74,
"variantType": "holo",
"foilTrendEur": 563.53,
"momentum7Pct": 14.3,
"trendVsAvg30Pct": 49.7,
"priceGuideDate": "2026-10-14",
"productUrl": "https://www.cardmarket.com/en/Pokemon/Products?idProduct=277305"
}

A seller offer (Charizard ex, 151, run 2026-10-14):

{
"recordType": "offer",
"offerId": "2173353125",
"productName": "Charizard ex",
"expansionName": "151",
"rarity": "Ultra Rare",
"collectorNumber": "183",
"condition": "EX",
"language": "English",
"isFoil": false,
"price": 30,
"currency": "EUR",
"priceUsd": 33.56,
"quantity": 1,
"sellerUsername": "Bleumpie",
"sellerType": "private",
"sellerCountry": "Netherlands",
"sellerComment": "Ask for pictures",
"position": 4,
"productTrendEur": 37.38,
"discountVsTrendPct": 19.7
}

A top-card row (One Piece Best Sellers, run 2026-10-14):

{
"recordType": "topCard",
"list": "bestSellers",
"rank": 1,
"productId": 904168,
"name": "Don!! (World United Luffy)",
"expansionName": "Promos: The World’s Strongest Warriors",
"price": 4.49,
"priceTrendEur": 9.82,
"avg30DayEur": 8.95,
"momentum7Pct": -8.8
}

Fields and how often they are filled

Measured on runs of 2026-10-14 (price guide: Pokémon top 100 and Magic top 100; offers: 130 offers from 3 products; shop: 40 offers; top cards: 100 One Piece rows).

FieldFilled
productId, name, categoryName, expansionId, priceTrendEur, priceGuideDate, productUrl (price guide)100%
expansionName (price guide)100% of singles (sets newer than the build are read live; sealed-only sets can be null)
priceLowEur / priceAvgEur (price guide)93% / 83-98%
foilTrendEur and the foil setPokémon 31%, Magic top 100 1% (only cards that have a foil or reverse-holo price)
listedSincePokémon 75%, Magic 8% (Cardmarket gives no date for products older than its catalogue dates)
Offer condition, language, price, quantity, seller name / type / country / sales, rarity, productTrendEur100%
Offer sellerComment / scanImageUrl56% / 17%
Shop offers: seller type and salesnot shown on shop pages (null)
Top cards productId and price-guide fields97%

Use cases

  • 🃏 Card shops and repricers — pull the trend, low and 30-day average of every card you stock each morning.
  • 📊 Market trackers — follow momentum7Pct and changeStatus to see which cards and booster boxes move.
  • 💸 Deal hunters — sort offers by discountVsTrendPct with condition and language filters.
  • 🌍 Cross-border buyers — compare offers by seller country and price in EUR and USD.
  • 📦 Sealed investors — track booster boxes, displays and elite trainer boxes with productType: "sealed".
  • 🏪 Competitor watch — walk a rival seller's shop with sellerUsernames and monitorMode.

How much does it cost to scrape Cardmarket?

Cardmarket Scraper charges per row delivered, with no start fee:

RowPrice100 rows1,000 rows
Product (price guide, product page)$0.0008$0.08$0.80
Seller offer$0.0045$0.45$4.50
Top card$0.0009$0.09$0.90

Rows removed by your filters, duplicates and pages that could not be read are never charged. Your Maximum cost per run setting is respected row by row.

Integrations, API, scheduling & MCP

Schedule the actor daily (price guide with onlyChanged, offers with monitorMode) and send results to Google Sheets, Slack, Make, Zapier or n8n through Apify integrations, or a webhook when a run ends. Call it from code with the Apify API and the apify-client package for Python or JavaScript, or let an AI agent run it through the Apify MCP server.

More collectibles scrapers

Limits & empty runs

  • 23 games: the ones Cardmarket publishes a product list for.
  • A product page shows up to 50 offers per filter set; more need one page per split (language, seller type, country).
  • Cardmarket's pages are read through Apify's Unblocker: 30-75 seconds per page, 6 pages at a time. A page that fails three times is listed in RUN_SUMMARY and charged nothing.
  • Seller shops show 20 offers per page.
  • An empty run (no name match, filters that match nothing) ends successfully with nothing charged; RUN_SUMMARY says why.
  • Prices on Cardmarket are in EUR; an offer listed in another currency keeps it in currency and is converted in priceEur.

FAQ

How much does Cardmarket Scraper cost?

$0.0008 per product row, $0.0045 per seller offer and $0.0009 per top-card row, with no start fee. A 100-card price guide costs $0.08.

How many cards can Cardmarket Scraper return?

A whole game in one price-guide run: 123,077 Magic singles, 87,390 Yu-Gi-Oh! singles, 74,694 Pokémon singles in the 2026-10-13 files, plus sealed products. Set maxResults to 0 for no cap.

How fast is Cardmarket Scraper?

A price-guide run reads 18-48 MB of Cardmarket's own files; in our tests (20 to 1,000 rows) the whole run took 2-6 seconds. Offers take 30-75 seconds per Cardmarket page, 6 pages at a time; 100 offers from 9 pages took 91 seconds, one seller-shop page about 30 seconds.

Can I track Cardmarket prices daily with Cardmarket Scraper?

Yes. Schedule it with trackChanges (every row says NEW, PRICE_UP, PRICE_DOWN or UNCHANGED) or onlyChanged (only moved cards are delivered and charged).

Can Cardmarket Scraper alert me to new offers?

Yes. monitorMode delivers only offers no earlier run with the same filters delivered.

Does Cardmarket Scraper need a Cardmarket login or API key?

No. It needs no login, no cookies and no Cardmarket API key.

Can I use Cardmarket Scraper through the Apify API or MCP?

Yes. Start runs and read datasets with the Apify API or apify-client, or connect an AI agent through the Apify MCP server.

Which games does Cardmarket Scraper support?

Pokémon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana, Digimon, Flesh and Blood, Star Wars Unlimited, Dragon Ball Super, Riftbound, Gundam, Sorcery: Contested Realm, Cyberpunk, Battle Spirits Saga, Final Fantasy TCG, Force of Will, Cardfight!! Vanguard, Weiß Schwarz, Star Wars: Destiny, World of Warcraft TCG, My Little Pony CCG, Dragoborne and The Spoils.

Why did my Cardmarket Scraper run return no results?

No product name matched every word you typed, or your filters matched no offer. Open RUN_SUMMARY in the run's storage: it lists what each filter removed and any page that could not be read. Nothing is charged for an empty run.

Your feedback

Found a bug or want a field added? Open an issue on the actor's Issues tab and we will look at it.