Skip to content
Crypto-only, prepaid. Top up a balance and we draw from it monthly — nothing is ever charged automatically.
tcggraph

Bandai · 8,120 printings

Digimon card scanner API

Alternate art parallels with the same card number, across four languages.

8,120
Matchable printings
4
Languages
38 ms
Median match
$0
Charged for a miss

The problem

Why Digimon is hard to identify

Digimon follows Bandai's house pattern, which means parallels rather than reprints carry the value. Alternate art versions of popular cards share the base card's number and code, and box toppers, pre-release promos and tournament packs reuse art with stamps or foiling changes. The number tells you which card; the treatment tells you what it is worth.

With four printed languages and a Japanese release cadence ahead of the English one, language is part of the product identity here too. The match returns the parallel and the language explicitly rather than folding them into a single card record.

wss://api.tcggraph.com/v1/scanidle
    0
    Frames
    0
    Matched
    0
    Unbilled

    A replayed transcript of Digimon cards from the public demo catalog, including a frame that does not resolve and is not billed. Nothing is being inferred in your browser.

    What settles it

    The fields a match is decided on

    Read in the order a person grading Digimon would read them. The match returns all of them, so you never have to infer a printing from a card name.

    FieldWhy it decides the price
    Card numberThe BT16-045 style code fixes set and position.
    Parallel treatmentAlternate art shares the number and multiplies the price.
    LanguageFour printed languages on separate release schedules.
    Promo stampPre-release and tournament promos are separate products.

    Where scanners fail

    Digimon traps that return the wrong printing

    Each of these is a case where the artwork is right and the answer is still wrong. A confident wrong match costs more than a refused one, which is why an unresolved frame is free.

    Alternate art shares the code

    As with One Piece, the printed code does not change between base and parallel, so it cannot be the key.

    Stamped promos

    A stamp in the corner is the only difference from the base card, and it is often the part of the card a sleeve or a thumb covers.

    Integrate it

    Scanning Digimon in about fifteen lines

    Pin the socket to one game and matching gets both faster and more certain, because there are fewer near-identical candidates to rule out.

    The card inside a match is the same object /v1/cards?game=digimon returns, including the Digimon-specific fields. If you already read this API, a scanner is a new input to code you have written rather than a second integration.

    Scanning is metered separately from data, so pointing a camera at a stack all morning cannot spend the credits your repricer needs at midnight.

    Scan pricing

    $29/mo · 6,000 matched cards

    Or $0.012 per matched card with no plan at all. Down to $0.0025 at volume, and a frame we cannot place is never billed.

    Compare scan plans
    Live Digimon scanning
    const socket = new WebSocket("wss://api.tcggraph.com/v1/scan", [
      "tcggraph.v1",
      `bearer.${process.env.TCGGRAPH_KEY}`,
    ]);
    
    socket.onopen = () =>
      socket.send(
        JSON.stringify({
          type: "config",
          games: ["digimon"],
          minConfidence: 0.92,
          prices: ["cardmarket", "tcgplayer"],
        }),
      );
    
    socket.onmessage = (event) => {
      const frame = JSON.parse(event.data);
    
      for (const match of frame.matches ?? []) {
        // The printing, not just the card: set, number, language, finish.
        intake.add(match.printing, match.card.prices);
      }
    
      // Unresolved frames arrive too, and cost nothing.
      for (const miss of frame.unresolved ?? []) showHint(miss.reason);
    };
    
    for await (const jpeg of camera.frames()) socket.send(jpeg);
    A match, with both price feeds
    {
      "requestId": "scan_01K5Z8P4XQJ7YB3M",
      "latencyMs": 41,
      "matches": [
        {
          "confidence": 0.9962,
          "billed": true,
          "box": {
            "x": 0.171,
            "y": 0.064,
            "w": 0.658,
            "h": 0.872
          },
          "printing": {
            "id": "dgm_bt1_084",
            "language": "en",
            "finish": "holofoil",
            "edition": "unlimited",
            "collectorNumber": "BT1-084"
          },
          "card": {
            "id": "dgm_bt1_084",
            "game": "digimon",
            "name": "Omnimon",
            "set": {
              "code": "BT1",
              "name": [
                "BT-01: Booster New Evolution",
                "BT-06: Booster Double Diamond",
                "BT01-03: Release Special Booster Ver.1.0",
                "BTC-01: Booster Ultimate Evolution",
                "PB-12E: Digimon Card Game 2nd Anniversary Set",
                "Ultimate Cup 2022"
              ]
            },
            "rarity": "Common",
            "prices": []
          },
          "alternatives": []
        }
      ],
      "scans": {
        "billed": 1,
        "remaining": 5842
      }
    }

    FAQ

    Scanning Digimon

    Start with Digimon, add the rest for nothing

    One key covers every game we carry, and scans are pooled across all of them. There is no per-game surcharge and no separate model to enable — a stack with Digimon, Pokémon and Magic mixed together resolves card by card without you sorting it first.

    Other games