Cardmarket listings scraper and deal finder in one: every live offer of the cards you search (price, condition, language, ship-from country), or only offers 25%+ under the official trend price - condition- and language-aware. Pokémon, Magic, Yu-Gi-Oh!, Lorcana and 11 more. No seller data.
$10.00 / 1,000 · 83.3% success over 12 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
game |
string | Which trading card game to hunt deals in. | pokemon |
searchQuery |
string | What to hunt for, e.g. "charizard", "umbreon vmax", "black lotus". | charizard |
minDiscountPct |
integer | An offer counts as a deal when it undercuts the card's trend price by at least this much. Set 0 for listings mode: every offer of the matched products, like a classic Cardmarket scraper (minus seller data). | 25 |
minCondition |
string | Ignore offers below this condition - a cheap damaged card is not a deal. | EX |
languages |
array | Only count offers in these languages. Japanese and Korean prints trade far below the trend price, so mixing them in fakes discounts. Empty = all languages. | ["English", "German", "French", "Italian", "Spanish"] |
priceMinEur |
integer | Skip cards whose trend price is below this - filters bulk noise. | 2 |
priceMaxEur |
integer | Skip cards whose trend price is above this. | - |
maxProducts |
integer | How many candidate products to open and inspect per run. | 10 |
maxItems |
integer | Upper bound on delivered deal rows. | 100 |
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
| Field | Type | Meaning |
|---|---|---|
productId |
integer | Cardmarket product id. |
name |
string | Card name and set code. |
game |
string | Trading card game. |
productUrl |
string | The card's offers on Cardmarket, pre-filtered to this row's language and condition, cheapest first. Only undominated offers are reported, so this row's offer is the first row of the linked page. |
condition |
string | Card condition of the offer (MT/NM/EX/GD/LP/PL/PO). |
language |
['string', 'null'] | Card language of the offer. |
priceEur |
number | Offer price in EUR. |
quantity |
integer | Copies available at this price. |
locationCountry |
['string', 'null'] | Country the item ships from. |
trendEur |
number | The product's Cardmarket trend price in EUR. |
avg30Eur |
['number', 'null'] | 30-day average sale price in EUR. |
discountPct |
number | How far the offer undercuts the trend price, in percent. |
currency |
string | All prices are EUR. |
priceGuideDate |
string | Date of the daily price guide used as the benchmark. |
83.3% success over 12 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.