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

Bandai · 9,640 printings

One Piece card scanner API

The alternate art is worth ten times the base card and shares its number.

9,640
Matchable printings
5
Languages
38 ms
Median match
$0
Charged for a miss

The problem

Why One Piece is hard to identify

One Piece is young enough that the catalog is small, and awkward enough that the small catalog is deceptive. The value in this game sits almost entirely in parallel treatments: an alternate art printing of a leader or a popular character carries the same card number as the base version and trades at many multiples of it. The number is not the key here — the treatment is.

Manga rares add a third layer, using panel art in place of an illustration, and pre-release and championship promos reuse existing art with a stamp. Japanese and English print runs are on different schedules, so a card can exist in one market and not the other for months, which makes the language on the printing part of the identity rather than a display detail.

The match returns the treatment and the language explicitly, so an alternate art comes back as an alternate art rather than as the base card with a surprising price attached.

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

    A replayed transcript of One Piece 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 One Piece 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 OP07-119 style code fixes the set and position.
    TreatmentBase, alternate art and manga rare share a number and diverge on price.
    LanguageJapanese and English releases are separately numbered and separately priced.
    Rarity markLeader, SR and SEC change what the parallel is worth.

    Where scanners fail

    One Piece 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 number

    The card code is identical between base and parallel, so any matcher keyed on the printed number returns the cheaper card and understates the value by a factor of ten or more.

    Manga rares

    The illustration is replaced entirely with manga panel art, which means the same card looks nothing like its base printing. Matching on art alone tends to fail rather than mis-match, which is safer but still a miss.

    Japanese-first releases

    A set is Japanese for months before it is English. Treating language as cosmetic means pricing a Japanese card against an English market that has not opened yet.

    Integrate it

    Scanning One Piece 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=one-piece returns, including the One Piece-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 One Piece 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: ["one-piece"],
          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": "op_op01_024",
            "language": "en",
            "finish": "nonfoil",
            "edition": "unlimited",
            "collectorNumber": "OP01-024"
          },
          "card": {
            "id": "op_op01_024",
            "game": "one-piece",
            "name": "Monkey.D.Luffy (024)",
            "set": {
              "code": "OP-01",
              "name": "Romance Dawn"
            },
            "rarity": "SR",
            "prices": [
              {
                "source": "tcgplayer",
                "region": "NA",
                "currency": "USD",
                "market": 2.4
              },
              {
                "source": "cardmarket",
                "region": "EU",
                "currency": "EUR",
                "market": 2.46,
                "trend": 2.46,
                "sellers": 165
              }
            ]
          },
          "alternatives": []
        }
      ],
      "scans": {
        "billed": 1,
        "remaining": 5842
      }
    }

    FAQ

    Scanning One Piece

    Start with One Piece, 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 One Piece, Pokémon and Magic mixed together resolves card by card without you sorting it first.

    Other games