Get a sealed product

GET /api/v1/azuki/sealed/{id} read:catalog 1 credit

Fetch a single sealed product by id: its configuration (pack count, cards per pack), its expansion in full, and MSRP where MSRP is what we price it at. Ids are matched case-insensitively and the response carries the stored spelling, same as cards. No `language` handling — an id already names one product.

Try it GET /api/v1/azuki/sealed/sv3pt5-etb?include=prices

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

response
200 21ms preloaded server-side with the default context
object · 2 keys
{
  "success": true,
  "data": {
    "id": "azk-01-gabb",
    "name": "Gates Awakened Booster Box",
    "expansion": {
      "id": "azk-01",
      "name": "Gates Awakened",
      "total": 154,
      "language": "English",
      "language_code": "en",
      "series": "Azuki TCG",
      "code": "AZK-01",
      "printed_total": 129,
      "release_date": "2026/06/29",
      "logo": "https://tcg.azuki.com/azuki_tcg_logo.svg",
      "symbol": "https://tcg.azuki.com/azuki_tcg_logo.svg"
    },
    "language": "English",
    "language_code": "en",
    "images": [
      {
        "type": "front",
        "small": "https://cdn11.bigcommerce.com/s-ua4dd/images/stencil/1280x1280/products/353454/526131/Gamenerdzimagez8491_-_Copy__83238.1777568311.png?c=2",
        "medium": "https://cdn11.bigcommerce.com/s-ua4dd/images/stencil/1280x1280/products/353454/526131/Gamenerdzimagez8491_-_Copy__83238.1777568311.png?c=2",
        "large": "https://cdn11.bigcommerce.com/s-ua4dd/images/stencil/1280x1280/products/353454/526131/Gamenerdzimagez8491_-_Copy__83238.1777568311.png?c=2"
      }
    ],
    "product_type": "booster_box",
    "release_date": "2026/06/29",
    "pack_count": 24,
    "pricing": {
      "currency": "USD",
      "market": 119.99,
      "is_on_sale": false,
      "updated_at": "2026-08-31T03:38:19.896Z"
    }
  }
}
tracks the inputs above
curl -X GET 'https://service.rip.fun/api/v1/azuki/sealed/sv3pt5-etb?include=prices' \
  -H 'X-API-Key: rip_…'

Request fields

FieldTypeRequiredDescription
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
404not_foundno such object for this game (a Pokémon id on `/onepiece` is "not found")

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