Search sealed products

GET /api/v1/onepiece/sealed read:catalog 1 credit

Search sealed One Piece Card Game product — booster packs and boxes, elite trainer boxes, bundles, blisters, tins and collection boxes — with the same query grammar as cards, over the sealed field set. Every product hangs off an expansion, so `expansion.id:…` is the usual way in. Wrapped in `{ success, data, page, page_size, total_count, language }`.

Try it GET /api/v1/onepiece/sealed?page_size=10&include=prices

These inputs are shared across all docs pages, so an id entered here carries over.

response
200 20ms preloaded server-side with the default context
object · 6 keys
{
  "success": true,
  "data": [
    {
      "id": "P-3aopcgtcp",
      "name": "3rd Anniversary One Piece Card Game Treasure Campaign Pack",
      "expansion": {
        "id": "P",
        "name": "Promos",
        "total": 103,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "P",
        "printed_total": 103,
        "release_date": "2022/07/01",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/P.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/P/P-3aopcgtcp.nobg.small.webp",
          "medium": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/P/P-3aopcgtcp.nobg.large.webp",
          "large": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/P/P-3aopcgtcp.nobg.large.webp"
        }
      ],
      "product_type": "other",
      "release_date": "2022/07/01",
      "tcgplayer_id": "661447",
      "pricing": {
        "currency": "USD",
        "market": 43.37,
        "is_on_sale": false,
        "updated_at": "2026-09-19T00:13:29.856Z",
        "trend_7d": {
          "direction": "down",
          "percent": -1.07
        }
      }
    },
    {
      "id": "OP07-5yitfbb",
      "name": "500 Years in the Future Booster Box",
      "expansion": {
        "id": "OP07",
        "name": "500 Years In The Future",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP07",
        "printed_total": 119,
        "release_date": "2024/06/28",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP07.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbb.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbb.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbb.large.webp"
        }
      ],
      "product_type": "booster_box",
      "release_date": "2024/06/28",
      "tcgplayer_id": "532106",
      "pricing": {
        "currency": "USD",
        "market": 327.64,
        "is_on_sale": false,
        "updated_at": "2026-09-21T00:13:29.515Z",
        "trend_7d": {
          "direction": "down",
          "percent": -2.02
        }
      }
    },
    {
      "id": "OP07-5yitfbbc",
      "name": "500 Years in the Future Booster Box Case",
      "expansion": {
        "id": "OP07",
        "name": "500 Years In The Future",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP07",
        "printed_total": 119,
        "release_date": "2024/06/28",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP07.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbbc.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbbc.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbbc.large.webp"
        }
      ],
      "product_type": "booster_box",
      "release_date": "2024/06/28",
      "tcgplayer_id": "532107",
      "pricing": {
        "currency": "USD",
        "market": 3488.58,
        "is_on_sale": false,
        "updated_at": "2026-09-19T00:13:29.856Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0.35
        }
      }
    },
    {
      "id": "OP07-5yitfbp",
      "name": "500 Years in the Future Booster Pack",
      "expansion": {
        "id": "OP07",
        "name": "500 Years In The Future",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP07",
        "printed_total": 119,
        "release_date": "2024/06/28",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP07.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbp.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbp.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfbp.large.webp"
        }
      ],
      "product_type": "booster_pack",
      "release_date": "2024/06/28",
      "tcgplayer_id": "532104",
      "pricing": {
        "currency": "USD",
        "market": 10.86,
        "is_on_sale": false,
        "updated_at": "2026-09-21T00:13:29.515Z",
        "trend_7d": {
          "direction": "up",
          "percent": 1.21
        }
      }
    },
    {
      "id": "OP07-5yitfsbp",
      "name": "500 Years in the Future Sleeved Booster Pack",
      "expansion": {
        "id": "OP07",
        "name": "500 Years In The Future",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP07",
        "printed_total": 119,
        "release_date": "2024/06/28",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP07.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfsbp.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfsbp.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP07/OP07-5yitfsbp.large.webp"
        }
      ],
      "product_type": "sleeved_pack",
      "release_date": "2024/06/28",
      "tcgplayer_id": "532105",
      "pricing": {
        "currency": "USD",
        "market": 27.12,
        "is_on_sale": false,
        "updated_at": "2026-09-21T00:13:29.515Z",
        "trend_7d": {
          "direction": "flat",
          "percent": 0.07
        }
      }
    },
    {
      "id": "OP15-aoksibb",
      "name": "Adventure on Kami's Island Booster Box",
      "expansion": {
        "id": "OP15",
        "name": "Adventure on Kami's Island",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP15",
        "printed_total": 119,
        "release_date": "2026/02/03",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP15.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/OP15/OP15-aoksibb.nobg.small.webp",
          "medium": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/OP15/OP15-aoksibb.nobg.large.webp",
          "large": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/OP15/OP15-aoksibb.nobg.large.webp"
        }
      ],
      "product_type": "booster_box",
      "release_date": "2026/02/03",
      "tcgplayer_id": "682057",
      "pricing": {
        "currency": "USD",
        "market": 257.22,
        "is_on_sale": false,
        "updated_at": "2026-09-21T00:13:29.515Z",
        "trend_7d": {
          "direction": "up",
          "percent": 1.69
        }
      }
    },
    {
      "id": "OP15-aoksibbc",
      "name": "Adventure on Kami's Island Booster Box Case",
      "expansion": {
        "id": "OP15",
        "name": "Adventure on Kami's Island",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP15",
        "printed_total": 119,
        "release_date": "2026/02/03",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP15.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/OP15/OP15-aoksibbc.nobg.small.webp",
          "medium": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/OP15/OP15-aoksibbc.nobg.large.webp",
          "large": "https://rip-product-images.s3.us-east-1.amazonaws.com/products/OP15/OP15-aoksibbc.nobg.large.webp"
        }
      ],
      "product_type": "booster_box",
      "release_date": "2026/02/03",
      "tcgplayer_id": "682058",
      "pricing": {
        "currency": "USD",
        "market": 2947.94,
        "is_on_sale": false,
        "updated_at": "2026-09-21T00:13:29.515Z",
        "trend_7d": {
          "direction": "flat",
          "percent": -0.09
        }
      }
    },
    {
      "id": "OP15-aoksibp",
      "name": "Adventure on Kami's Island Booster Pack",
      "expansion": {
        "id": "OP15",
        "name": "Adventure on Kami's Island",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP15",
        "printed_total": 119,
        "release_date": "2026/02/03",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP15.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksibp.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksibp.small.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksibp.small.webp"
        }
      ],
      "product_type": "booster_pack",
      "release_date": "2026/02/03",
      "tcgplayer_id": "682056",
      "pricing": {
        "currency": "USD",
        "market": 7.81,
        "is_on_sale": false,
        "updated_at": "2026-09-21T00:13:29.515Z",
        "trend_7d": {
          "direction": "up",
          "percent": 1.56
        }
      }
    },
    {
      "id": "OP15-aoksidp",
      "name": "Adventure on Kami's Island - Dash Pack",
      "expansion": {
        "id": "OP15",
        "name": "Adventure on Kami's Island",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP15",
        "printed_total": 119,
        "release_date": "2026/02/03",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP15.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksidp.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksidp.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksidp.large.webp"
        }
      ],
      "product_type": "other",
      "release_date": "2026/02/03",
      "tcgplayer_id": "686290",
      "pricing": {
        "currency": "USD",
        "market": 4.84,
        "is_on_sale": false,
        "updated_at": "2026-09-20T00:13:16.179Z",
        "trend_7d": {
          "direction": "down",
          "percent": -1.22
        }
      }
    },
    {
      "id": "OP15-aoksisbp",
      "name": "Adventure on Kami's Island - Sleeved Booster Pack",
      "expansion": {
        "id": "OP15",
        "name": "Adventure on Kami's Island",
        "total": 119,
        "language": "English",
        "language_code": "en",
        "series": "One Piece",
        "code": "OP15",
        "printed_total": 119,
        "release_date": "2026/02/03",
        "logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP15.logo.png"
      },
      "language": "English",
      "language_code": "en",
      "images": [
        {
          "type": "front",
          "small": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksisbp.small.webp",
          "medium": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksisbp.large.webp",
          "large": "https://api.rip.fun/storage/v1/object/public/tcg/products/OP15/OP15-aoksisbp.large.webp"
        }
      ],
      "product_type": "sleeved_pack",
      "release_date": "2026/02/03",
      "pack_count": 1,
      "tcgplayer_id": "688634",
      "pricing": {
        "currency": "USD",
        "market": 14.08,
        "is_on_sale": false,
        "updated_at": "2026-09-21T00:13:29.515Z",
        "trend_7d": {
          "direction": "down",
          "percent": -3.36
        }
      }
    }
  ],
  "page": 1,
  "page_size": 10,
  "total_count": 274,
  "language": "en"
}
tracks the inputs above
curl -X GET 'https://service.rip.fun/api/v1/onepiece/sealed?page_size=10&include=prices' \
  -H 'X-API-Key: rip_…'

Request fields

FieldTypeRequiredDescription
qstringAdvanced search over the sealed fields: `name` (the default field, so a bare term matches the name), `id`, `product_type`, `expansion.id`, `expansion.name`, `expansion.release_date`, `language`, `price` and `is_on_sale`. Same syntax, caps and error shape as the card search — e.g. `product_type:booster_box expansion.id:sv3pt5`, `price:[100 TO *]`. Card-only fields (`rarity`, `hp`, `colors`, …) are not in scope here and return 400 with a suggestion.
languagestringLanguage code, or a comma list. **Defaults to `en`**, exactly as the card lists do: a product inherits its expansion’s language, so an unfiltered page would interleave catalogs. Pass `language=all` for every language. The applied value comes back in the envelope.
orderBystringComma list; `-` prefix = DESC, e.g. `-release_date`. Max 3 keys. Sealed sorts on `name`, `price`, `release_date` and `id` — a shorter list than cards, since a product has no rarity or number to sort by. Missing values sort LAST in both directions, and every sort carries a unique `id` tiebreak, so paging a sorted result set can neither skip nor repeat a row.
page / page_sizenumberPagination. `page` ≥ 1 (default 1), `page_size` 1–100 (default 100, `pageSize` also accepted). Out-of-range values are rejected, never clamped. `page × page_size` capped at 10,000, so narrow with `q` to go deeper. Always compare `total_count` against the rows you received — 100 is a cap, not a promise, and a truncated page looks identical to a complete one. Collections you might assume fit in a single call do not: there are more than 100 One Piece expansions, so an unpaginated `/expansions` omits the newest sets and everything you would have walked from them.
selectstringComma list of top-level fields to keep (`id` always included). Trims response size and does not change the credit cost.
product_typestringShorthand for `q=product_type:…`, to filter to one product family. Takes the values listed below; an unrecognised one is a 400 rather than an empty page.
includestringSet to `prices` to embed the pricing object on every returned object. **No surcharge** — metering is a flat 1 credit per request whatever the response carries, so hydrating a page of 100 with prices costs the same as without, and strictly less than a second call per row.

Response fields (data)

FieldDescription
data[].id / nameSealed product identity
data[].product_typeOne of `booster_pack`, `sleeved_pack`, `booster_box`, `booster_pack_case`, `bundle`, `pack_art_bundle`, `blister_pack`, `three_pack_blister_pack`, `elite_trainer_box`, `ultra_premium_collection`, `collection_box`, `special_box`, `tin`, `other`. Omitted on the few products we hold no type for. There is deliberately no `starter_deck` value: decks are stored as `other`, and nothing in the data reliably separates them from the rest of that bucket — so don’t filter for one that never arrives.
data[].expansionThe expansion this product belongs to, serialized inline — the same object `/expansions/{id}` returns. It is complete even for the promo, tin and UPC sets the expansion endpoints don’t list, so a nested `expansion.id` can 404 on `GET /expansions/{id}` while the object beside it is fully populated. Read it from here rather than re-fetching.
data[].language / language_codeCanonicalized language + ISO code, inherited from the expansion — a product is printed in exactly the language its set was.
data[].release_date`YYYY/MM/DD` — the **expansion’s** street date. A product carries no date of its own, so every product in a set reports the same day, and a later reprint still reports the original one.
data[].msrpManufacturer’s list price. Present only where MSRP is what we price the product at rather than the market — today that is the Azuki catalog, which has no sales history behind it. Absent everywhere else; it is not a second opinion sitting next to `pricing.market`.
data[].pack_count / cards_per_packConfiguration, when known
data[].tcgplayer_idTCGplayer product id for cross-referencing, when we have one
data[].images[]Product photography, `{ type, small, medium, large }` with `type` always `front`. Same caveat as cards: `medium` is an alias of `large`.
data[].pricingPresent only with `include=prices`: `{ currency, market, updated_at, is_on_sale, sale_price, trend_7d }`, amounts as numbers. `market` is `null` for anything priced at MSRP rather than by a market — the whole Azuki catalog today — so read `msrp` above for those and never chart the two as one series. The condition ladder and the trailing history come only from the dedicated prices endpoint below.

Errors

StatusCodeWhen
400parse_errormalformed `q` syntax: an unclosed quote or parenthesis, a missing term, a stray operator. `details.position` is the 0-based character offset of the offending token.
400unknown_fielda `q` term names a field this resource does not register (`subtype:` for `subtypes:`, a card field on `/sealed`), or `orderBy` names a field you cannot sort on. The message carries a did-you-mean suggestion and `details.position` points at it. Unknown fields are rejected, never ignored — an empty page would be the more expensive answer.
400invalid_valuethe field exists but the value does not fit it: a range on a field that has no ordering, a non-numeric bound, a value outside a closed vocabulary.
400query_too_complex`q` exceeds 512 characters, 20 terms or 5 levels of parenthesis nesting, `orderBy` names more than 3 keys, or a value breaks the wildcard guardrails (a leading `*`, more than 3 per value, fewer than 2 literal characters). Filter builders hit this before people do — count terms as you assemble, and fall back to several narrower calls rather than one wide one.
400invalid_pagination`page`/`page_size` non-numeric, out of range, or `page × page_size` > 10,000
400invalid_language`language` is not a language code — expected `en`, `ja`, a comma list of codes, or `all`
400invalid_distinct`distinct` is anything other than `code`
400invalid_select`select` names more than 40 fields. Names that do not exist are ignored rather than rejected, so a typo silently drops the field — check the response, not just the status.
400invalid_include`include` carries a value this endpoint does not offer. Cards and sealed accept `prices`; the expansion endpoints accept none at all.
404not_foundno such object for this game (a Pokémon id on `/onepiece` is "not found")
400invalid_value`product_type`, as the shorthand param or a `q` term, is not one of the documented values. `starter_deck` is the one people try first; it has never existed.

See Errors for the response envelope and the full code list.