Skip to content

Cardmarket Scraper

Try for free

Scrape seller offers from Cardmarket card pages: seller, country, condition, language, quantity, price and comment, plus the card price trend and averages.

🃏 Cardmarket Scraper

Get every seller offer from any Cardmarket card page: seller, item location, seller type, condition, language, foil / signed / first-edition flags, quantity, price in EUR and USD, the seller's comment and the card's price trend and 30/7/1-day averages. Works for Magic, Pokémon, Yu-Gi-Oh!, One Piece, Lorcana and every other Cardmarket game. No account or login needed.

✨ Why use Cardmarket Scraper?

  • 🧾 Every offer, one row each: seller name and profile link, country, private / professional / powerseller, sales count, condition, language, quantity and price.
  • 📈 Market prices included: each row also carries the card's price trend, "From" price, 30-, 7- and 1-day averages and the number of offers on the site.
  • 🔎 Card URLs or card names: paste product links, or type card names and let the scraper find the cards.
  • 🎯 Cardmarket's own filters: minimum condition, card languages, seller countries, seller types, foil / reverse holo, signed, altered and first edition, plus price and quantity limits.
  • 📚 More than 50 offers: Cardmarket shows visitors the 50 cheapest offers at once; ask for more and the scraper collects them by splitting the offers by card language and seller country.
  • 🔓 No login, no setup: the site check is handled for you.

🎯 Use cases

  • 💶 Price monitoring: schedule a daily run on your watchlist and track the cheapest Near Mint English copy.
  • 🛒 Deal hunting: compare each offer against the card's price trend and 30-day average to spot underpriced copies.
  • 🏪 Seller research: see which shops and countries list a card, at what prices and conditions.
  • 📊 Market research: build price histories by condition, language or country for Magic, Pokémon, Yu-Gi-Oh! and more.
  • 🔁 Arbitrage: compare Cardmarket offers with other marketplaces.

🚀 How to use

  1. Open a card on cardmarket.com and copy its URL (for example https://www.cardmarket.com/en/Pokemon/Products/Singles/151/Blastoise-ex-V3-MEW200). Paste one or more into Card URLs, or type card names into Card names to search and pick the game.
  2. Set Max listings per card (the cheapest offers come first).
  3. Optionally set filters: minimum condition, languages, seller countries, seller types, price range, foil, signed, altered or first edition.
  4. Click Start. Download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
productUrlsCardmarket card (product) URLs, any game and any site language. Filters already in the URL are kept.
searchQueriesCard names to look up; the first maxCardsPerSearch matching singles are scraped.
gameGame the card names are searched in (Pokémon, Magic, Yu-Gi-Oh!, One Piece, Lorcana, ...).
maxListingsPerCardOffers to save per card, cheapest first.
minConditionMT, NM, EX, GD, LP, PL or PO and better.
languages, sellerCountries, sellerTypesOnly offers in these languages, from these countries or from these kinds of sellers.
minPrice, maxPrice, minQuantityPrice range in EUR and the minimum number of copies per offer.
foil, signed, altered, firstEditionany, yes or no. On Pokémon, foil is the reverse holo filter.
{
  "productUrls": [
    "https://www.cardmarket.com/en/Pokemon/Products/Singles/151/Blastoise-ex-V3-MEW200",
    "https://www.cardmarket.com/en/Magic/Products/Singles/Commander-Masters/Jeweled-Lotus"
  ],
  "maxListingsPerCard": 20,
  "minCondition": "NM",
  "languages": ["English", "German"],
  "sellerCountries": ["DE", "NL"]
}

📤 Output

One row per offer. Main fields:

FieldDescription
cardName, setName, game, rarity, cardNumberThe card
sellerName, sellerUrl, sellerCountry, sellerTypeThe seller, its item location and Private / Professional / Powerseller
sellerSales, sellerAvailableItemsThe seller's sales count and items for sale
condition, conditionName, languageOffer condition (MT, NM, EX, GD, LP, PL, PO) and card language
isFoil, isReverseHolo, isSigned, isFirstEdition, isAltered, isPlaysetOffer flags
quantity, price, currency, priceUsd, eurUsdRateCopies, price and the USD conversion (ECB daily rate)
sellerComment, photoUrlThe seller's note and the photo of the actual card, when given
priceTrend, priceFrom, avg30Days, avg7Days, avg1Day, availableItemsCard-level market prices and offer count
position, listingId, productUrl, listingsUrl, imageUrl, scrapedAtRank (cheapest = 1), ids and links

Example (from a real run, trimmed):

{
  "position": 1,
  "cardName": "Blastoise ex (MEW 200)",
  "setName": "151",
  "game": "Pokémon",
  "rarity": "Special Illustration Rare",
  "cardNumber": "200",
  "listingId": "2170239522",
  "sellerName": "examplecards",
  "sellerUrl": "https://www.cardmarket.com/en/Pokemon/Users/examplecards",
  "sellerCountry": "Italy",
  "sellerType": "Private",
  "sellerSales": 498,
  "condition": "GD",
  "conditionName": "Good",
  "language": "Italian",
  "isFoil": false,
  "isFirstEdition": false,
  "quantity": 1,
  "price": 69.99,
  "currency": "EUR",
  "priceUsd": 78.63,
  "eurUsdRate": 1.1234,
  "sellerComment": null,
  "priceTrend": 156.88,
  "avg30Days": 149.89,
  "avg7Days": 180.17,
  "avg1Day": 176.5,
  "availableItems": 589,
  "productUrl": "https://www.cardmarket.com/en/Pokemon/Products/Singles/151/Blastoise-ex-V3-MEW200"
}

The run's OUTPUT record lists every input with its status (listings saved, no matching offers, or the error).

💰 Pricing

You pay $4.50 per 1,000 listings ($0.0045 per saved offer). Cards with no matching offers, failed inputs and duplicates cost nothing.

Platform usage (compute and the hosted browser that passes Cardmarket's site check) is billed on top. In our test runs a one-card run used about $0.01–0.015 of usage and a 29-card run about $0.04.

Worked examples:

  • 1 card, 20 cheapest offers: about $0.09 for listings + about $0.01 usage.
  • A 30-card watchlist with 5 offers each (150 listings): about $0.68 + about $0.04 usage.
  • 1,000 listings: about $4.50 + usage.

❓ FAQ

Is it legal to scrape Cardmarket? The scraper reads only public offer pages that anyone can open without an account. Check Cardmarket's terms and your local law for your use case.

Do I need a Cardmarket account or a proxy? No. The scraper needs no login, cookies or proxy settings; it passes the site check itself.

How many offers can I get per card? As many as the card has. Cardmarket shows visitors the 50 cheapest offers per filter combination; above 50 the scraper splits the offers by language and seller country, which takes a few extra page loads per card (more for very popular cards).

Why did a card return 0 rows? No offer matched the filters at that moment. Relax the condition, language or price filters. The OUTPUT record says "no offers match the filters" for such cards.

What if a field is empty? Some fields only exist on some offers: sellerComment and photoUrl only when the seller added them, sellerSales is hidden for brand-new sellers, and rarity is missing on products without one.

Can I schedule it or use the API? Yes. Save your input as a task, schedule it daily, and read the dataset through the API, webhooks or integrations.

⚠️ Limits

  • 50 offers per filter combination. Cardmarket shows visitors the 50 cheapest offers at a time. Above 50 per card, the scraper splits the offers by card language and, where needed, seller country, until the cheapest offers are known (up to 60 extra page loads per card for 1,000 offers, about three more per 50 offers above that). In our tests 80 offers of a popular card took about 45 seconds and 300 offers about 4.5 minutes. For very popular cards with many hundreds of offers this is best effort: the OUTPUT record notes when some groups still had more than 50 offers.
  • Site pace. Cardmarket re-checks a visitor after about ten pages. The scraper passes the check again automatically (about 20 seconds) and runs up to three browser sessions in parallel; in our tests 29 cards took about 75 seconds.
  • Search is Cardmarket's own search, which matches loosely (a search for "Charizard ex" also returns other Charizard cards). Use card URLs for exact cards.
  • Offer prices only. No sold-price history beyond Cardmarket's own trend and 30/7/1-day averages, no graded-card (PSA) data, and no shipping costs.
  • Public data only. Nothing that needs an account (buying, wants lists, the logged-in "show more" button).

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.