Gibt es eine API, die gegradete Slabs (PSA, BGS, CGC) von einem Foto liest?
Direkte Antwort
Ja. Die NeoSatoshi Detection API liest Grading-Firma, Note und Zertifikatsnummer von PSA-, BGS- und CGC-Labels und gibt sie in cards[].graded zurück, neben der Karte, die sie durch das Plastik erkannt hat. Das klappt für Pokémon, One Piece, Disney Lorcana, Yu-Gi-Oh!, Magic: The Gathering und Star Wars: Unlimited, mit derselben Anfrage wie bei einer Rohkarte und zu denselben Kosten von einem Karten-Scan. Die Note wird vom Label gelesen, nie geschätzt, und die Zertifikatsnummer wird nicht bei der Grading-Firma geprüft.
Was für einen Slab zurückkommt
Schick das Foto genau wie bei einer Rohkarte: Es gibt keinen Slab-Modus und keinen zusätzlichen Parameter. Jede Karte in der Antwort hat ein Feld graded. Bei einer Rohkarte ist es null, bei einem Slab ein Objekt, zum Beispiel bei einem CGC-Slab aus Lorcana:
cards[].graded
{
"grader": "CGC",
"grade": "10 Pristine",
"cert_number": "1234567890",
"card_check": "agree",
"label": {
"name": "Minnie Mouse",
"number": "241",
"code": "241/204",
"set": "Fabled",
"year": "2025"
}
}grader: PSA, BGS oder CGC.null, wenn der Slab erkannt wurde, die Firma aber nicht.grade: ein Text auf der Skala der jeweiligen Firma, etwa "10", "9.5", "10 Black Label", "10 Pristine" oder "Authentic".null, wenn sie nicht gelesen werden konnte.cert_number: wie auf dem Label gedruckt,null, wenn nicht gelesen. Sie wird nicht mit der Datenbank der Grading-Firma abgeglichen.card_check:agree,disagreeoderunknown. Vergleicht, was das Label nennt, mit der Karte, die die API erkannt hat.label: Name, Nummer, Code, Set und Jahr, wie sie auf dem Label stehen, jeweilsnull, wenn sie fehlen.
In Python ausprobieren
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). Starte python slabs.py slab.jpg oder gib das Spiel an: python slabs.py slab.jpg lorcana.
Python: slabs.py
import sys
from scan import detect # scan.py from the scanner app tutorial
def slab_line(card):
slab = card.get("graded")
if slab is None:
return "raw card"
company = slab["grader"] or "company not read"
grade = slab["grade"] or "grade not read"
cert = slab["cert_number"] or "not read"
return f"{company} {grade}, cert {cert}"
def needs_a_person(card):
"""A slab whose company or grade is missing, or whose label names another card."""
slab = card.get("graded")
if slab is None:
return False
return not slab["grader"] or not slab["grade"] or slab["card_check"] == "disagree"
tcg = sys.argv[2] if len(sys.argv) > 2 else "pokemon"
for card in detect(sys.argv[1], tcg)["cards"]:
flag = " <- check by hand" if needs_a_person(card) else ""
print(card.get("name"), "|", slab_line(card) + flag)Regeln für deine App
- Liste nie einen Slab ohne Firma und Note. Fehlt eins davon, frag deine Nutzer; liste ihn nie ersatzweise als Rohkarte.
- Bei
card_check: "disagree"zeig den Slab einem Menschen: Das Label nennt eine andere Karte als die erkannte, und beide können die richtige sein. pricesbleiben die Preise der Rohkarte. Sie sind kein Preis für den Slab, der zu seinem eigenen Preis verkauft wird.- Die API liest die Note, die die Firma gedruckt hat. Sie beurteilt nie den Zustand einer Rohkarte und prüft nicht, ob ein Slab echt ist.
Wie gut sie liest
Gemessen auf eBay-Fotos echter Slabs, 144 bis 704 pro Spiel bei Pokémon, One Piece, Yu-Gi-Oh! und Lorcana: Die Note wurde bei 93 bis 95 % gelesen, und wo sie gelesen wurde, waren Firma und Note bei 98 bis 100 % richtig. Magic: 80 von 90 Slabs gegradet erkannt, alle richtig. Star Wars: Unlimited: 50 von 62 erkannt, 49 Noten richtig. Spiegelungen auf dem Label, quer fotografierte Slabs und knapper Bildausschnitt sind die üblichen Gründe, warum eine Note ungelesen bleibt.
Häufige Fragen
Was ist mit SGC, TAG und anderen Firmen?
Ihre Slabs kommen als Rohkarte oder mit grader auf null zurück, nie mit einer Note. Gelesen werden heute nur PSA, BGS und CGC.
Kostet ein Slab mehr?
Nein. Ein Slab ist ein Karten-Scan, wie eine Rohkarte. Ein Foto ohne Karte kostet nichts.
Geht das mit mehreren Slabs auf einem Foto?
Schick einen Slab pro Foto. Pokémon-Fotos mit mehreren Karten werden Karte für Karte verarbeitet, aber alle unsere Slab-Messungen beruhen auf einem Slab pro Foto, und die anderen Spiele nehmen ohnehin eine Karte pro Foto.
Weiterlesen
Den Slab-Abschnitt der Doku lesen
Alle Felder von cards[].graded, die Felder pro Spiel und ein Testfeld für dein eigenes Foto. 10 kostenlose Erkennungen pro Tag, ohne Anmeldung.
Für die ersten 10 Erkennungen ist kein Account nötig.