Gibt es eine API zur Kartenerkennung für Magic, Lorcana, Yu-Gi-Oh! und One Piece?
Direkte Antwort
Ja. Die NeoSatoshi Detection API erkennt Magic: The Gathering, Disney Lorcana, Yu-Gi-Oh! (TCG) und One Piece auf einem Foto, wenn du der Anfrage "tcg": "magic", "lorcana", "yugioh" oder "onepiece" mitgibst. Jede Karte kommt als JSON mit Name, Set, Nummer, Seltenheit, Cardmarket-Produkt-ID und täglichen Cardmarket-Preisen in EUR zurück, dazu spielspezifische Felder wie Set-Code und Edition bei Yu-Gi-Oh! oder die separaten Foil-Preise bei Lorcana und Magic. Bei diesen vier Spielen gilt eine Karte pro Foto, und ein öffentlicher Demo-Schlüssel erlaubt 10 Gratis-Erkennungen pro Tag ohne Konto.
Ein Endpunkt, ein zusätzliches Feld
Es ist derselbe Endpunkt wie für Pokémon: POST an https://europe-west1-neosatoshi.cloudfunctions.net/detectApi mit Authorization: Bearer <key> und dem Bild als Base64 (image) oder als öffentlicher https-Link (image_url). Ohne "tcg" wird das Bild als Pokémon gelesen, gib also das Spiel mit:
Request-Bodies
{ "image": "<base64 JPEG or PNG>", "tcg": "magic" }
{ "image": "<base64 JPEG or PNG>", "tcg": "lorcana" }
{ "image": "<base64 JPEG or PNG>", "tcg": "yugioh" }
{ "image_url": "https://example.com/op01-003.jpg", "tcg": "onepiece" }"magic": Magic: The Gathering, englische und deutsche Karten."lorcana": Disney Lorcana, englische, deutsche, französische und italienische Karten."yugioh": Yu-Gi-Oh! TCG, englische, deutsche, französische, italienische, spanische und portugiesische Karten."onepiece": One Piece, englische und japanische Karten.
Schick bei diesen vier Spielen eine Karte pro Foto; nur bei Pokémon werden mehrere Karten in einem Foto erkannt. Diese Anfrage läuft so, wie sie ist, mit unserem Lorcana-Beispielscan und dem öffentlichen Demo-Schlüssel:
curl
curl -X POST https://europe-west1-neosatoshi.cloudfunctions.net/detectApi \
-H "Authorization: Bearer nsk_live_9c253fbed995042a98280ad13e5c47d3c4a59c9b4f0f7274" \
-H "Content-Type: application/json" \
-d '{"image_url": "https://neosatoshi.com/static/images/example_api_lorcana.jpg", "tcg": "lorcana"}'Magic: The Gathering
- Nur englische und deutsche Karten. Karten in anderen Sprachen ergeben keine Karte und kosten keinen Karten-Scan.
- Die Karte wird aus ihrem gedruckten Text bestimmt.
nameist der englische Name, auch bei deutschen Karten;localized_nameenthält den gedruckten deutschen Namen. - Der Druck kommt aus Set-Code und Sammlernummer, wo die Karte sie hat, und
print_sourcesagt, wie er gefunden wurde. Karten vor dem Kartenrahmen von 2014 haben keinen aufgedruckten Set-Code, der Druck lässt sich also nicht lesen: Dann istprint_unconfirmedtrue, es gibt absichtlich keinen Preis, undalternativeslistet bis zu 12 Drucke, die neuesten zuerst, jeder mit eigenen Preisen, zur Auswahl durch deinen Nutzer. oracle_idist die Karte über alle Drucke hinweg,card_idein einzelner Druck. Sammlernummern sind Strings wie "123★" oder "2a", lies sie also nie als Ganzzahl ein.- Foil-Preise sind getrennt:
prices.cardmarket(Nicht-Foil) undprices.cardmarket_foilin EUR, dazu TCGplayer-Marktpreise für Nicht-Foil und Foil in USD. Die Ausführung wird nicht aus dem Foto gelesen, lass also deinen Nutzer wählen;finishesnennt die vorhandenen Ausführungen, undfoil_onlymarkiert Drucke ohne Nicht-Foil-Version. - Tokens und Art Cards sind nicht im Katalog.
- Gemessen: eine mittlere Genauigkeit (Median) von 97,6 % in unserer internen Auswertung (Oktober 2026).
Warum der Druck bei Magic-Preisen so viel ausmacht: welchen Druck einer Magic-Karte du hast.
Disney Lorcana
- Englische, deutsche, französische und italienische Karten.
nameist der Titel undversionder Untertitel;full_nameverbindet beides und ist der Name, den du anzeigst.name_enundfull_name_enenthalten den englischen Namen, auch bei deutschen, französischen und italienischen Karten.colorist die Tinte: Amber, Amethyst, Emerald, Ruby, Sapphire oder Steel.- Foil- und Nicht-Foil-Preise von Cardmarket:
prices.cardmarketist der Nicht-Foil-Preis,prices.cardmarket_foilder Foil-Preis.is_foilist true bei Drucken, die es nur als Foil gibt (Enchanted, Epic, Iconic und die meisten Promos); bei Drucken in beiden Ausführungen ist es false, und dein Nutzer entscheidet. Ein fehlender Preis ist null, nie 0. art_unconfirmedmarkiert einen mehrdeutigen Druck, zum Beispiel die normale Karte gegenüber ihrer Enchanted-Version;alternativeslistet die anderen.
Mehr zur Foil-Frage für Verkäufer: Lorcana-Foil-Karten listen und bepreisen.
Yu-Gi-Oh!
- TCG-Drucke auf Englisch, Deutsch, Französisch, Italienisch, Spanisch und Portugiesisch. Japanische und koreanische OCG-Karten werden nicht unterstützt.
- Der gedruckte Set-Code, zum Beispiel ROTA-DE024, bestimmt Set und Sprache und kommt in
set.codezurück.nameist der englische Name,localized_nameder Name in der Sprache der Karte undcard_idder 8-stellige Passcode. rarityundedition: "first", "unlimited" oder "limited", von der Karte gelesen.- Gibt es einen Set-Code in mehreren Seltenheiten, ist
rarity_unconfirmedtrue: Die günstigste kommt zuerst, die anderen stehen inalternatives, denn nur die Foil-Ausführung unterscheidet sie. - Gibt es zu einem Code und einer Seltenheit mehrere Drucke (Original und Reprint, alternatives Artwork), ist
version_unconfirmedtrue, undprice_versionslistet jeden mit eigenem Preis. - Preise: Cardmarket in EUR (trend, low, avg7, avg30, für jede Edition gleich, weil Cardmarket Editionen nicht trennt) und TCGplayer in USD pro Edition (
by_edition). Ein fehlender Preis ist null, nie 0. - Gemessen: auf 315 echten Fotos aus eBay-Angeboten (Oktober 2026) die richtige Karte bei 99,3 % davon.
Hintergrund zu Codes und Editionen: Yu-Gi-Oh!-Set-Codes und TCG gegenüber OCG.
One Piece
- Englische und japanische Karten.
card_idist die auf der Karte gedruckte Sammler-ID, zum Beispiel OP01-003. Dazu kommencolor,type, Seltenheit, Cardmarket-Produkt-ID und Cardmarket-Preise in EUR.
Dieselben Regeln für alle vier Spiele
- Ein Karten-Scan pro erkannter Karte. Ein Foto ohne Karte gibt HTTP 422 zurück und kostet nichts.
- Ist ein Druck nicht sicher, lässt die API den Preis leer und listet die Optionen, statt zu raten. Zeig solche Karten deinem Nutzer zur Auswahl.
- Der Zustand wird nie beurteilt. Den setzt dein Nutzer.
- Synchron: etwa 5 Sekunden für eine warme Anfrage, 10 bis 15 Sekunden für eine kalte. Setz das Timeout im Client auf 120 Sekunden.
Häufige Fragen
Liest die API japanische Yu-Gi-Oh!- oder japanische Magic-Karten?
Nein. Yu-Gi-Oh! umfasst TCG-Drucke in sechs europäischen Sprachen, nicht das japanische oder koreanische OCG. Magic umfasst englische und deutsche Karten; Karten in anderen Sprachen ergeben keine Karte und kosten nichts.
Kann ich mehrere Magic- oder Lorcana-Karten in einem Foto schicken?
Nein, bei Magic, Lorcana, Yu-Gi-Oh! und One Piece gilt eine Karte pro Foto. Mehrere Karten pro Foto, auch Ordnerseiten, gehen bei Pokémon: siehe die API zur Pokémon-Kartenerkennung.
Woher weiss ich, ob eine Magic- oder Lorcana-Karte Foil ist?
Das Foto verrät die Ausführung nicht zuverlässig, deshalb liefert die API beide Preise und überlässt dir die Entscheidung. Bei Magic sagen finishes und foil_only, welche Ausführungen es gibt; bei Lorcana ist is_foil true bei Drucken, die es nur als Foil gibt.
Welches Spiel ist der Standard?
Pokémon. Eine Anfrage ohne "tcg" wird als Pokémon gelesen, schick das Feld bei den anderen vier Spielen also immer mit.
Weiterlesen
Mit deiner eigenen Karte testen
Wähl in der Testbox der Dokumentation das Spiel, lade ein Foto hoch und sieh dir das JSON an. 10 Gratis-Erkennungen pro Tag, ohne Anmeldung.
Für die ersten 10 Erkennungen ist kein Account nötig.