Cardmarket Listings Scraper — Offers, Shops & Prices
Pricing
from $2.19 / 1,000 cardmarket listings
Cardmarket Listings Scraper — Offers, Shops & Prices
Scrape Cardmarket listings by product URL, seller shop, or keyword — a Cardmarket API alternative for EU TCG shops. Export seller, condition, language, quantity, and EUR price as JSON.
Pricing
from $2.19 / 1,000 cardmarket listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Disclaimer: Unofficial tool for publicly accessible Cardmarket listings. Cardmarket and related names are trademarks of Sammelkartenmarkt GmbH und Co. KG. Not affiliated with, sponsored by, or endorsed by Cardmarket. For informational, research, aggregation, and market-intelligence use only. Respect applicable terms of use and law.
Cardmarket listings scraper for Europe's TCG marketplace — Pokémon, Magic: The Gathering, Yu-Gi-Oh!, Lorcana, One Piece, and more. Use it as a Cardmarket scraper, Cardmarket API alternative, and Cardmarket seller shop export: paste a product URL, walk a seller username, or search by keyword. Dataset rows are one seller offer each — EUR price, condition, language, quantity, foil / signed flags, and seller type. HTTP-first with Cloudflare fallback — no login. Call from Python, Node.js, cURL, or Apify MCP.
Built for EU TCG shops, weekly restock pricing, seller intelligence, and scheduled listing monitors.
Collectibles suite
| Actor | Focus |
|---|---|
| TCGPlayer Listings Scraper | US TCG seller listings and shops |
| Cardmarket Listings Scraper ◄── you are here | EU TCG seller offers and shops |
| Fanatics Collect Scraper | Weekly / Premier auctions, Buy Now, sold comps |
| Goldin Auctions Scraper | High-end sports cards / TCG hammer + sold |
| PSA Population Report Scraper | Set-level PSA pop census and gem rate |
| Whatnot Listings Scraper | US live-commerce listings and shops |
| PriceCharting Scraper | Guide prices for games, TCG, and comics |
| eBay Active Listings Scraper | Live eBay BIN / auction asking prices |
| eBay Sold Listings Scraper | Completed eBay sold comps |
| eBay Sold Price Intelligence | Recommended price and demand score |
When to use this Actor
- You need a Cardmarket scraper / Cardmarket listings scraper that returns flat JSON rows
- You want product URL arrays, seller shop walks, and keyword search in one run
- You track condition, language, seller country, and EUR offer prices
- You scrape Cardmarket with Python, Node.js, or MCP and export JSON / CSV
- You run a daily monitor and only want new listing IDs billed
When not to use this Actor
- Guide / trend / 30-day average prices — Cardmarket publishes a public price-guide CSV; for US guide comps use PriceCharting Scraper
- US TCG seller listings — use TCGPlayer Listings Scraper
- Weekly / Premier auction hammer — use Fanatics Collect Scraper or Goldin Auctions Scraper
- PSA 10 pop / gem rate — use PSA Population Report Scraper
- US live-commerce firehose — use Whatnot Listings Scraper
- eBay sold comps / fair-value reports — use eBay Sold Listings Scraper
- Official Cardmarket API replacement — new API apps are closed; this Actor reads public product and shop HTML
- Buyer PII, DMs, or order history — public offer rows only
Key features
- Product URLs — scrape every seller offer on a card page (not a 10-row default)
- Seller shop inventory — walk
/Users/{handle}/Offerswith optionalshopQuery - Keyword search — find matching products, then scrape their offers
- Leader filters — min condition, language, seller country, seller type, signed / altered / first-ed / playset / foil
- EUR parsing —
85,00 €becomes85.0withcurrency: EUR - Monitor mode — named Key-Value store of seen listing IDs; later scheduled runs emit only new rows
- Deduplicated IDs across keywords, shops, and URLs
- MCP / AI ready — call from assistants via Apify MCP
Use cases
| Use case | What you get |
|---|---|
| Pokémon / MTG restock | Current Cardmarket offers for a SKU, condition band, and seller country |
| Seller shop dump | Active inventory for a handle; shopQuery to keep one card / set |
| Arbitrage watch | monitorMode on a product URL; only new offer IDs billed |
| EU vs US comps | Cardmarket live rows, then eBay sold listings for the same query |
| Shop intelligence | Professional vs private sellers, country, sales count, comments |
Quick start
Product URL (all offers on the page):
{"startUrls": [{ "url": "https://www.cardmarket.com/en/Pokemon/Products/Singles/151/Blastoise-ex-V3-MEW200" }],"maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Seller shop walk (omit shopQuery for full inventory, subject to Cardmarket's ~300-hit cap):
{"sellerUsernames": ["CardGameCorner"],"game": "Pokemon","maxItems": 100,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Add "shopQuery": "charizard" to keep only shop listings matching that name.
Keyword search + monitor:
{"searchKeywords": ["charizard"],"game": "Pokemon","maxItems": 150,"monitorMode": true,"monitorStoreName": "cardmarket-charizard","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchKeywords | Array | — | Product search queries (required if no URLs/sellers) |
sellerUsernames | Array | — | Shop handles to walk (game-scoped) |
shopQuery | String | — | Filter each seller shop by card name. Empty = full inventory |
startUrls | Array | — | Cardmarket product, seller, or search URLs |
game | String | Pokemon | Catalog for keywords and usernames |
locale | String | en | en / de / fr / es / it |
minCondition | String | any | MT NM EX GD LP PL PO — keep this grade or better |
language | String | any | Print language filter |
sellerCountry | String | any | ISO seller country |
sellerType | String | any | private, commercial, professional, powerseller |
sort | String | best_match | price_asc / price_desc / name_asc for search and shops |
minPrice / maxPrice | Number | — | EUR price band |
isFoil / isReverseHolo / isSigned / isAltered / isFirstEd / isPlayset | Boolean | false | Extra flags |
maxItems | Integer | 100 | Max rows (0 = unlimited subject to maxPages) |
maxPages | Integer | 20 | Pagination safety cap |
monitorMode | Boolean | false | Emit only new IDs vs previous run |
monitorStoreName | String | cardmarket-listings-monitor | Named KV store for seen IDs |
resetMonitorState | Boolean | false | Wipe the seen-ID cache |
proxyConfiguration | Object | RESIDENTIAL | Datacenter IPs usually hit Cloudflare |
Output format
Each dataset item is one seller offer (recordType: listing).
| Field | Type | Description |
|---|---|---|
recordType | String | listing |
listingId / id | String | Cardmarket article / stock row id |
productId | String | Product id from the card page |
game / locale | String | Catalog and site language |
cardName | String | Card title |
expansion | String | Set name |
rarity | String | When present on shop rows |
collectorNumber | String | e.g. 200 or FST 220 |
condition / conditionName | String | NM plus full label Near Mint |
language | String | Print language |
isFoil / isReverseHolo / isSigned / isAltered / isFirstEd / isPlayset | Boolean | Extra flags |
quantity | Integer | Available copies |
price | Number | EUR major units (85,00 € → 85.0) |
currency | String | EUR |
sellerUsername / sellerUrl | String | Seller handle and shop URL |
sellerType | String | private, professional, or powerseller |
sellerCountry | String | Item location |
sellerSales | Integer | Sales count from the offer row |
sellerComment | String | Seller note on the listing |
productUrl / url | String | Public product URL |
source | String | product_url, seller_shop, or search |
searchQuery | String | Keyword or handle that produced the row |
scrapedAt | String | ISO scrape time |
Example listing row:
{"recordType": "listing","source": "product_url","listingId": "2135330240","game": "Pokemon","cardName": "Blastoise ex (MEW 200)","expansion": "151","collectorNumber": "200","condition": "PL","language": "German","quantity": 1,"price": 85.0,"currency": "EUR","sellerUsername": "Jayzcards17","sellerType": "private","sellerCountry": "Austria","productUrl": "https://www.cardmarket.com/en/Pokemon/Products/Singles/151/Blastoise-ex-V3-MEW200"}
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/cardmarket-listings-scraper').call({startUrls: [{ url: 'https://www.cardmarket.com/en/Pokemon/Products/Singles/151/Blastoise-ex-V3-MEW200' }],maxItems: 50,proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'] },});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient(token)run = client.actor("crawloop/cardmarket-listings-scraper").call(run_input={"searchKeywords": ["charizard"],"game": "Pokemon","maxItems": 50,"proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],},})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("cardName"), item.get("price"), item.get("sellerUsername"))
cURL
curl "https://api.apify.com/v2/acts/crawloop~cardmarket-listings-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchKeywords":["charizard"],"game":"Pokemon","maxItems":50,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/cardmarket-listings-scraper.
Example prompts:
- "Run Cardmarket Listings Scraper for product URL https://www.cardmarket.com/en/Pokemon/Products/Singles/151/Blastoise-ex-V3-MEW200, max 50, residential proxy, and return cardName, price, condition, sellerUsername as JSON"
- "Scrape the Cardmarket shop for seller CardGameCorner on Pokemon, residential proxy, and summarize prices and quantities"
- "Pull Cardmarket listings for charizard, then run TCGPlayer Listings Scraper for the same SKU to compare EUR vs USD asks"
Suite next step
Cardmarket is the EU TCG offer firehose. Next, run TCGPlayer Listings Scraper on the same SKU for US asks. For PSA 10 pop / gem rate, chain PSA Population Report Scraper; for weekly auction hammer, Fanatics Collect Scraper. Sold-comp volume still goes to eBay Sold Listings Scraper.
FAQ
Is this an official Cardmarket API?
No. New API applications are closed. This Actor reads the same public product and shop pages the website shows and returns structured dataset rows — a practical Cardmarket API alternative for pipelines.
Can I scrape a Cardmarket seller shop by username?
Yes — set sellerUsernames (or paste a /Users/{handle} URL in startUrls) and game. The Actor walks Offers / Singles with pagination. Add shopQuery to keep only listings matching that card name.
Can I paste a Cardmarket product URL?
Yes — startUrls accepts product pages (seller offer table), seller/shop URLs, and search URLs (searchString + game parsed).
Do I need a Cardmarket login?
No — public marketplace data only.
Does it need a residential proxy?
On Apify, yes — residential. Cloudflare usually blocks datacenter IPs. The Actor injects RESIDENTIAL on the platform when proxyConfiguration is omitted (API / MCP / cURL). Local runs can omit the proxy.
Why not a price guide Actor?
Cardmarket already publishes a public price-guide CSV. This Actor is listings: live seller offers, shops, and monitors.
What is monitor mode?
With monitorMode: true, seen listing IDs are stored in a named Key-Value store. The first run is the baseline. Later scheduled runs push and charge only IDs not seen before.
Python / Node.js / MCP?
Yes — use the Apify client examples above or Apify MCP prompts.
How many offers per product?
Product pages load about 50 offers at a time and stop around 300 unless you tighten filters. Shop inventory is also capped near 300 hits by Cardmarket. Raise maxPages / maxItems or add more URLs.
Related Actors
| Actor | Focus |
|---|---|
| TCGPlayer Listings Scraper | US TCG listings and shops |
| Cardmarket Listings Scraper ◄── you are here | Cardmarket listings and shops |
| Fanatics Collect Scraper | Weekly / Premier auctions + sold |
| PSA Population Report Scraper | PSA pop census and gem rate |
| Whatnot Listings Scraper | Whatnot listings, shops, optional shows |
| Goldin Auctions Scraper | Sports cards / TCG auctions |
| PriceCharting Scraper | TCG / games / comics guides |
| eBay Sold Listings Scraper | eBay sold comps |