Skip to content

NeoSatoshi

FeaturesPricingFAQAPIBlogLoginSign UpYouTubeDiscord beitreten

Wie bekomme ich den Cardmarket-Preis einer Sammelkarte von einem Foto?

Direkte Antwort

Schick das Foto an eine API zur Kartenerkennung, die Cardmarket-Preise mit der Karte zurückgibt. Die NeoSatoshi Detection API beantwortet eine einzige POST-Anfrage mit Name, Set, Nummer, Cardmarket-Produkt-ID und den Cardmarket-Preisen der Karte in EUR (Trend, Tiefstpreis, 7- und 30-Tage-Schnitt), täglich aktualisiert, für Pokémon, One Piece, Disney Lorcana, Yu-Gi-Oh!, Magic und Star Wars: Unlimited. Wo das Foto den Druck nicht belegt, bleibt der Preis absichtlich leer, statt einen günstigeren zu raten.

Was im Preisblock steht

  • prices.cardmarket: trend, low, avg7 und avg30 in EUR. Ein fehlender Preis ist null, nie 0.
  • prices.cardmarket_foil bei Lorcana, Magic und Star Wars: Unlimited, die Foil-Preise mit denselben Feldern. Das Foto zeigt nicht immer, ob eine Karte Foil ist, prüf also die Finish-Felder deines Spiels in der Doku.
  • prices.tcgplayer in USD, wo vorhanden.
  • cardmarket_id: die Cardmarket-Produkt-ID (idProduct) genau dieses Drucks. Sie ist der feste Schlüssel für Cardmarket-Importe und deine eigenen Preisabfragen später.

Vom Foto zum Angebotspreis in Python

Das Skript nutzt scan.py aus der Anleitung für die Scanner-App, die mit dem öffentlichen Demo-Schlüssel läuft (10 Erkennungen pro Tag, ohne Anmeldung). Es nimmt den Trendpreis, rechnet einen Aufschlag und einen Mindestpreis dazu und überlässt Karten ohne sicheren Druck einem Menschen. Starte python prices.py karte.jpg oder python prices.py karte.jpg magic.

Python: prices.py

import sys

from scan import detect  # scan.py from the scanner app tutorial

MARKUP = 1.10    # 10 % above the Cardmarket trend
MINIMUM = 0.25   # never below this, in EUR


def open_printing(card):
    """The card is known but not which printing or rarity: ask, do not guess."""
    return any(card.get(k) for k in ("print_unconfirmed", "rarity_unconfirmed", "version_unconfirmed"))


def listing_price(card):
    if open_printing(card):
        return None
    cm = (card.get("prices") or {}).get("cardmarket") or {}
    base = cm.get("trend") if cm.get("trend") is not None else cm.get("avg30")
    if base is None:
        return None  # no price is null, never 0
    return max(round(base * MARKUP, 2), MINIMUM)


tcg = sys.argv[2] if len(sys.argv) > 2 else "pokemon"
for card in detect(sys.argv[1], tcg)["cards"]:
    price = listing_price(card)
    print(
        card.get("name"),
        "| Cardmarket ID", card.get("cardmarket_id"),
        "|", f"{price:.2f} EUR" if price is not None else "no price, ask the seller",
    )

Wenn kein Preis kommt

  • print_unconfirmed (Yu-Gi-Oh!, Magic, Star Wars: Unlimited): Die Karte ist bekannt, ihr Druck nicht. Die Preise einer Karte können sich zwischen Drucken um den Faktor 100 unterscheiden, deshalb lässt die API den Preis leer und listet die Drucke mit ihren eigenen Preisen in alternatives.
  • rarity_unconfirmed und version_unconfirmed (Yu-Gi-Oh!): Der Preis ist die günstigste Option, die anderen sind aufgelistet. Lass deine Nutzer wählen, bevor du verkaufst.
  • version_unconfirmed (Star Wars: Unlimited): Nur der Name wurde gelesen, also kann sogar die Version der Figur falsch sein. Zeig die Alternativen einem Menschen.
  • Einige wenige Karten haben noch kein Cardmarket-Produkt oder keinen Preis. Dann sind die Felder null.

Welchen Preis nehmen

Trend ist ein guter Standard für ein Angebot. Der 30-Tage-Schnitt ist ruhiger bei Karten, die selten verkauft werden, und low ist die Untergrenze, die andere Verkäufer verlangen. Die Preise gelten für die Karte, nicht für ihren Zustand: Die API beurteilt den Zustand nicht, senk den Preis bei bespielten Karten also selbst. Bei einem gegradeten Slab bleiben sie der Preis der Rohkarte.

Häufige Fragen

Wie aktuell sind die Preise?

Sie werden einmal täglich aus dem Cardmarket-Preisguide aktualisiert, bewegen sich also mit dem Markt, aber nicht innerhalb des Tages.

Bekomme ich den Preis auch ohne Foto?

Die Detection API startet immer mit einem Foto. Kennst du die Karte schon, speichere ihre cardmarket_id aus dem ersten Scan und nutze sie ab dann als Schlüssel.

Was kostet das?

Ein Karten-Scan pro erkannter Karte, der Preis kommt mit. Ein Foto ohne Karte kostet nichts. Pläne: Preise.

Verwandte Fragen

Gibt es eine API, die Pokémon-Karten auf einem Foto erkennt?

Gibt es eine API zur Kartenerkennung für Magic, Lorcana, Yu-Gi-Oh! und One Piece?

Wie baue ich eine Scanner-App für Sammelkarten?

Weiterlesen

Doku und Demo-Schlüssel holen

Alle Preisfelder pro Spiel, Live-Beispiele und ein Testfeld für dein eigenes Foto. 10 kostenlose Erkennungen pro Tag, ohne Anmeldung.

Kostenlos ausprobieren

Für die ersten 10 Erkennungen ist kein Account nötig.

NeoSatoshi

KI-Kartenerkennung für Verkäufer. Bulk-Listing Workflow. Spare jede Woche Stunden.

Anwendungsfälle

BlogFAQAnleitungenKostenlose ToolsListing-SoftwareeBay Listing-ToolShopify Listing-ToolCardmarket-WorkflowKartenscannerVerkaufsanalyseOne Piece Listing-SoftwareOne Piece eBay-ToolOne Piece KartenscannerLorcana Listing-SoftwareYu-Gi-Oh! Listing-SoftwareMagic Listing-SoftwareStar Wars: Unlimited Listing-Software

Entwickler

© 2026 NeoSatoshi

Die auf dieser Website dargestellten wörtlichen und grafischen Informationen über das Pokémon Sammelkartenspiel, einschließlich der Kartenbilder und des Textes, unterliegen dem Urheberrecht von The Pokémon Company (Pokémon), Nintendo, Game Freak, Creatures und/oder pokemontcg.io. Inhalte des One Piece Card Game sind Eigentum von Eiichiro Oda/Shueisha, Toei Animation und Bandai. Inhalte von Disney Lorcana sind Eigentum von Disney und Ravensburger. Inhalte von Yu-Gi-Oh! sind Eigentum von Studio Dice/Shueisha, TV Tokyo und Konami. Inhalte von Magic: The Gathering sind Eigentum von Wizards of the Coast. Star Wars: Unlimited ist eine Marke von Lucasfilm Ltd. und Fantasy Flight Games. Diese Website wird von keinem dieser Rechteinhaber produziert, empfohlen oder unterstützt.

AGBDatenschutzKontakt
Loading...

Seite wird geladen...

Deine Privatsphäre

Wir verwenden essenzielle Cookies, um die Website zu betreiben. Mit deiner Einwilligung nutzen wir zusätzlich Analytics, um NeoSatoshi zu verbessern, und Marketing, um zu messen, welche unserer Anzeigen funktionieren. Dafür wird ein Skript von OpenAI geladen. Du kannst beides einzeln unter Einstellungen wählen.