Built on the CardOS Card Data API

Play the One Piece Card Game
in a browser tab.

A tutorial that teaches by dealing you a hand, a bot to practise against, a real opponent with a clock on the other side, and a deck builder that knows what you may legally play. Every card, price and expansion comes from one public API.

No account needed to play the bot, run the tutorial, or take a seat at a friend’s table. Start with the 13-step tutorial.

Three ways to sit down

The engine is deterministic and pure — the same seed and the same actions give the same game, which is what lets a match replay from its log and lets the bot look ahead.

A builder that knows the rules

Pick a leader and the pool narrows to what you can legally play. Copy limits count card numbers, not printings, so four copies spread across three arts are still four copies.

Legality is a four-way answer, not a tick

Standard rotates on 1 April, so “is this legal” depends on when you ask. The builder shows which of these your list is, on the day you ask, for the 2026–2027 season — and it says “we can’t check this card” rather than guessing in either direction.

Standard legal
Construction rules pass and every card is inside this season’s blocks.
Legal in Extra
A well-formed list holding a card that has rotated out. Not broken — a different format.
Can’t verify
Nothing has rotated, but a card’s Block Number is missing from our data. Neither a pass nor a fail.
N issues
A construction rule is broken — size, copies, colour, leader or language. The only one that is your bug.
  • Search by colour, cost, power, trait, keyword, rules text, set, Block Number, format and rarity — or type the query out, cost:[1 TO 3] keyword:Blocker, and see exactly which of your terms were understood
  • Choose the art on any card that has more than one. It changes the picture and the price, and it cannot change what the deck holds — the four-copy limit counts card numbers
  • Describe a deck in a sentence and watch Claude draft the fifty. The cards that are illegal in your format are removed from its pool before it is shown one, so it cannot draft them

Lists go in and out as text

One qty × code line per card, leader first — what the sims and tournament sheets take. Paste anything close to it and the importer reports what it read, line by line, before you commit. It will not guess a card from a name.

1xOP16-080
4xOP09-086
4xOP09-093
4xOP09-096
4xOP09-099
2xOP16-102
The first lines of (Black/Yellow) Marshall.D.Teach, exported by the same button the app uses — 50 cards in the whole list.

Bandai’s featured decks, imported and then actually judged

We read every featured decklist Bandai publishes and kept the ones whose own numbers add up. Then we ran them through the same format check as your decks — which is how we found that most of them can no longer be played in Standard. Every card in them still resolves through the card API; only the lists are ours to hold.

Decks imported

99

of 103 published pages — 4 rejected because the source list does not sum to a legal deck

Standard legal today

47

judged against the 2026–2027 season, on the day you loaded this page

Legal in Extra only

52

well-formed lists holding at least one card that has rotated out

Colours covered

6

every colour in the game has a featured deck to start from

Learn it from the cards themselves

A card’s text tells you when an effect fires, what it needs and what it does — once you can see which part is which. /learn colours the printed text and then walks the turn, the zones and a single attack from declaration to damage.

A coach that has to look the card up

The coach carries no card list in its context. To name a card it has to query the catalog first and cite the code, and the results it gets back are labelled with whether they are legal in the format you asked about — so it can explain a rotated card without recommending one.

Everything else on /learn is counted from the catalog rather than written down: the cost curve of the whole pool, how many cards carry each keyword, how much of it has a Counter.

Asking the coach needs an account. Reading the rest of /learn does not.

The same deck can cost almost anything

Prices ride on the card object, so every list on the site knows what it is worth. The interesting part is that the number depends on a decision that changes nothing about how the deck plays.

Priced honestly or not at all

  • A card we have no price for renders as $— and is left out of the total, which then says how many it left out
  • Every deck compares what its own arts cost against the cheapest art of each card, and names the difference
  • The builder deliberately shows no running total — a price ticking while you add cards turns deckbuilding into shopping

Published decks, and a meta page that admits what it doesn’t know

Any deck you build can be made public. Public decks can be upvoted and discussed, and the meta tab aggregates them into what people here are actually playing.

2 decks have been published

Sorted by trending, top or newest, each one readable card by card with its cost curve, its legality verdict and what it costs to buy.

No percentages under 12 decks

A share chart is a machine for making four data points look like a finding. Below 12 published decks, the meta tab renders counts and no percentages at all; above it, every bar carries a 95% interval, and the page says how wide the sample was either way.

Right now that means counts: there are 2 public decks.

None of this is scraped

Every card, every image, every price and every expansion on this site is one request away. There is no vendored catalog and no nightly scrape — the app is a client, and this page is the argument that a serious one is a weekend’s work.

Powered by rip.fun
  • Cards, art, expansions and market prices come off one object, in both languages, with art variants modelled as separate printings of a shared card number
  • The API key is server-side. The browser only ever talks to our own /api/cards/* proxy, which holds the key and caches the answers
  • Two things the API cannot know — Bandai’s published Block Number reassignments, and how many people here are playing a card — so the catalog is mirrored into Postgres and those two are answered locally. Everything else it now sorts and filters itself

Two things we hold ourselves

Block Numbers, which are printed on the card but are not on the payload with Bandai’s published reassignments folded in — and which decide Standard legality from April 2026. And 99 decklists, because the API publishes no decklists at all. Neither is card data: the lists are card numbers and quantities, and every card in them still resolves through the API. Both files are written to be deleted the day they are not needed.

GET /api/v1/onepiece/cards/{id}
# One card: its printed text, its art, its set and its price.
curl -H "X-API-Key: rip_…" \
  "https://service.rip.fun/api/v1/onepiece/cards/ST01-006?include=prices"

{
  "success": true,
  "data": {
    "id": "ST01-006",
    "name": "Tony Tony.Chopper",
    "type": "Character",
    "cost": "1",
    "power": "1000",
    "colors": ["Red"],
    "subtypes": ["Animal", "Straw Hat Crew"],
    "rules": ["[Blocker] (After your opponent declares an attack,
                you may rest this card to make it the new target
                of the attack.)"],
    "expansion": { "id": "ST01", "name": "Straw Hat Crew" },
    "pricing": { "currency": "USD", "market": …, "trend_7d": { … } }
  }
}

Pick a leader, or borrow one of Bandai’s.

Free, no install, and your lists are yours — export them to the standard text format any time.