/api/v1/onepiece/cards/{id}/printings read:catalog 1
creditEvery printing that shares this card’s code — the base art, each alternate and special art, and the same set in every language it was printed in. Each one is a full Card object with its own id, its own images and (with `include=prices`) its own price: in One Piece the spread across one code reaches 1000×, so which printing you mean is a purchase decision, not a display detail. Prefer this over guessing at id suffixes.
`variants[]` on a card describes that one row’s finish, not its siblings — this endpoint is how you find the siblings.
Order is canonical and does not depend on which printing you asked by: the anchor’s language first, then the rest alphabetically, then id — which puts a base art ahead of its own parallels. `EB01-001vaa` returns the same page, in the same order, as `EB01-001`.
Every language is returned by default, since a code names the same card in each one; pass `language=ja` (or a comma list) to narrow, and read `language_code` per row. `total_count` is the true family size even if the 50-row cap truncated the page.
This one is not paginated. It answers in a single request — `page` and `page_size` are not read, and the envelope always reports `page: 1, page_size: 50`. There is no second page to walk: narrow with `language` if a family is large enough to hit the cap.
GET /api/v1/onepiece/cards/swshp_ja-104vh/printings?include=prices These inputs are shared across all docs pages, so an id entered here carries over.
{
"success": true,
"data": [
{
"id": "OP01-001",
"name": "Roronoa Zoro",
"number": "1",
"printed_number": "1",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001.small.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001.large.webp"
}
],
"expansion": {
"id": "OP01",
"name": "Romance Dawn",
"total": 121,
"language": "English",
"language_code": "en",
"series": "One Piece",
"code": "OP01",
"printed_total": 121,
"release_date": "2022/12/02",
"logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
},
"language": "English",
"language_code": "en",
"tcgplayer_id": "454512",
"variants": [
{
"name": "normal",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001.small.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001.large.webp"
}
]
}
],
"type": "Leader",
"power": "5000",
"attribute": "Slash",
"colors": [
"Red"
],
"rules": [
"[DON!! x1] [Your Turn] All of your Characters gain +1000 power."
],
"life": "5",
"subtypes": [
"Supernovas",
"Straw Hat Crew"
],
"rarity": "Leader",
"pricing": {
"currency": "USD",
"market": 2.03,
"is_stale": false,
"conditions": [
{
"condition": "NM",
"price": 2.03
},
{
"condition": "MP",
"price": 1.67
}
],
"graded": [
{
"company": "BGS",
"grade": "10",
"value": 889.5,
"low": 698.75,
"high": 1003.25,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "CGC",
"grade": "10",
"value": 58.72,
"low": 48.76,
"high": 59.09,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "8",
"value": 22.5,
"low": 19.13,
"high": 25.87,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9",
"value": 27,
"low": 22.95,
"high": 31.05,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9.5",
"value": 44.19,
"low": 37.56,
"high": 50.82,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "10",
"value": 274.07,
"low": 258.44,
"high": 450.72,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "8",
"value": 22.5,
"low": 19.13,
"high": 25.87,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "9",
"value": 31.65,
"low": 31.08,
"high": 32.41,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "9.5",
"value": 148.5,
"low": 142.47,
"high": 244.25,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "SGC",
"grade": "10",
"value": 164.5,
"low": 154.5,
"high": 270.25,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
}
],
"market_updated_at": "2026-09-21T03:37:55.911Z",
"trend_7d": {
"direction": "down",
"percent": -7.31
}
}
},
{
"id": "OP01-001vaa",
"name": "Roronoa Zoro (altArt)",
"number": "1",
"printed_number": "1",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001vaa.small.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001vaa.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001vaa.large.webp"
}
],
"expansion": {
"id": "OP01",
"name": "Romance Dawn",
"total": 121,
"language": "English",
"language_code": "en",
"series": "One Piece",
"code": "OP01",
"printed_total": 121,
"release_date": "2022/12/02",
"logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png"
},
"language": "English",
"language_code": "en",
"tcgplayer_id": "454513",
"variants": [
{
"name": "normal",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001vaa.small.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001vaa.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01-001vaa.large.webp"
}
]
}
],
"type": "Leader",
"power": "5000",
"attribute": "Slash",
"colors": [
"Red"
],
"rules": [
"[DON!! x1] [Your Turn] All of your Characters gain +1000 power."
],
"life": "5",
"subtypes": [
"Supernovas",
"Straw Hat Crew"
],
"rarity": "Leader",
"pricing": {
"currency": "USD",
"market": 708.88,
"is_stale": false,
"conditions": [],
"graded": [
{
"company": "BGS",
"grade": "10",
"value": 1066.43,
"low": 960,
"high": 960,
"confidence": "med",
"value_kind": "blended",
"sold_count": 1
},
{
"company": "BGS",
"grade": "9.5",
"value": 649.36,
"low": 644,
"high": 916,
"confidence": "med",
"value_kind": "blended",
"sold_count": 2
},
{
"company": "CGC",
"grade": "10",
"value": 368.37,
"low": 185.99,
"high": 553.99,
"confidence": "med",
"value_kind": "blended",
"sold_count": 2
},
{
"company": "GENERIC",
"grade": "7",
"value": 105,
"low": 89.25,
"high": 120.75,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "8",
"value": 131.13,
"low": 131.12,
"high": 131.13,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9",
"value": 636,
"low": 629,
"high": 643,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9.5",
"value": 699.5,
"low": 691.75,
"high": 707.25,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "10",
"value": 908.59,
"low": 653.48,
"high": 1499.99,
"confidence": "high",
"value_kind": "sold",
"sold_count": 21,
"trend": {
"direction": "down",
"percent": -17.4
}
},
{
"company": "PSA",
"grade": "7",
"value": 104.5,
"low": 104.25,
"high": 104.75,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "8",
"value": 130.8,
"low": 130.65,
"high": 130.94,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "9",
"value": 950,
"low": 870,
"high": 990,
"confidence": "med",
"value_kind": "sold",
"sold_count": 3
},
{
"company": "PSA",
"grade": "9.5",
"value": 432.28,
"low": 431.45,
"high": 435.1,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "SGC",
"grade": "10",
"value": 771,
"low": 746.88,
"high": 787.5,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
}
],
"market_updated_at": "2026-09-21T03:37:55.911Z",
"trend_7d": {
"direction": "up",
"percent": 0.61
}
}
},
{
"id": "OP01_ja-001",
"name": "Roronoa Zoro",
"number": "1",
"printed_number": "1",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001.large.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001.large.webp"
}
],
"expansion": {
"id": "OP01_ja",
"name": "Romance Dawn",
"total": 121,
"language": "Japanese",
"language_code": "ja",
"series": "One Piece",
"code": "OP01",
"printed_total": 121,
"release_date": "2022/12/02",
"logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png",
"translation": {
"en": {
"name": "Romance Dawn"
}
}
},
"language": "Japanese",
"language_code": "ja",
"tcgplayer_id": null,
"variants": [
{
"name": "normal",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001.large.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001.large.webp"
}
]
}
],
"type": "Leader",
"power": "5000",
"attribute": "Slash",
"colors": [
"Red"
],
"rules": [
"[DON!! x1] [Your Turn] All of your Characters gain +1000 power."
],
"life": "5",
"subtypes": [
"Supernovas",
"Straw Hat Crew"
],
"rarity": "Leader",
"pricing": {
"currency": "USD",
"market": 36,
"is_stale": false,
"conditions": [],
"graded": [
{
"company": "BGS",
"grade": "10",
"value": 246,
"low": 245.08,
"high": 246.98,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "CGC",
"grade": "10",
"value": 55.05,
"low": 45,
"high": 77,
"confidence": "med",
"value_kind": "blended",
"sold_count": 2
},
{
"company": "GENERIC",
"grade": "8",
"value": 13,
"low": 11.05,
"high": 14.95,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9",
"value": 25.4,
"low": 21.59,
"high": 29.21,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9.5",
"value": 53.74,
"low": 53.72,
"high": 53.75,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "10",
"value": 167.81,
"low": 159.9,
"high": 163.1,
"confidence": "med",
"value_kind": "blended",
"sold_count": 2
},
{
"company": "PSA",
"grade": "8",
"value": 13,
"low": 11.05,
"high": 14.95,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "9",
"value": 25.4,
"low": 21.59,
"high": 29.21,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "9.5",
"value": 53.57,
"low": 53.44,
"high": 53.64,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "SGC",
"grade": "10",
"value": 109,
"low": 107.5,
"high": 110.5,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
}
],
"market_updated_at": "2026-09-21T02:21:45.765Z",
"trend_7d": {
"direction": "flat",
"percent": 0
}
}
},
{
"id": "OP01_ja-001vaa",
"name": "Roronoa Zoro (altArt)",
"number": "1",
"printed_number": "1",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001vaa.large.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001vaa.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001vaa.large.webp"
}
],
"expansion": {
"id": "OP01_ja",
"name": "Romance Dawn",
"total": 121,
"language": "Japanese",
"language_code": "ja",
"series": "One Piece",
"code": "OP01",
"printed_total": 121,
"release_date": "2022/12/02",
"logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/OP01.logo.png",
"translation": {
"en": {
"name": "Romance Dawn"
}
}
},
"language": "Japanese",
"language_code": "ja",
"tcgplayer_id": null,
"variants": [
{
"name": "normal",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001vaa.large.webp",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001vaa.large.webp",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/OP01_ja-001vaa.large.webp"
}
]
}
],
"type": "Leader",
"power": "5000",
"attribute": "Slash",
"colors": [
"Red"
],
"rules": [
"[DON!! x1] [Your Turn] All of your Characters gain +1000 power."
],
"life": "5",
"subtypes": [
"Supernovas",
"Straw Hat Crew"
],
"rarity": "Leader",
"pricing": {
"currency": "USD",
"market": 12.5,
"is_stale": false,
"conditions": [],
"graded": [
{
"company": "BGS",
"grade": "10",
"value": 456,
"low": 449.67,
"high": 489.14,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "CGC",
"grade": "10",
"value": 35.46,
"low": 35.13,
"high": 35.49,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "8",
"value": 61,
"low": 51.85,
"high": 70.15,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9",
"value": 113.97,
"low": 96.87,
"high": 131.07,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "GENERIC",
"grade": "9.5",
"value": 194.57,
"low": 194.55,
"high": 194.6,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "10",
"value": 690.23,
"low": 524.05,
"high": 1236.01,
"confidence": "med",
"value_kind": "blended",
"sold_count": 2
},
{
"company": "PSA",
"grade": "8",
"value": 51.36,
"low": 50.49,
"high": 54.2,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "9",
"value": 98.88,
"low": 97.05,
"high": 112.96,
"confidence": "low",
"value_kind": "feed",
"sold_count": 1
},
{
"company": "PSA",
"grade": "9.5",
"value": 167.52,
"low": 167.28,
"high": 188.05,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "SGC",
"grade": "10",
"value": 202.5,
"low": 189.25,
"high": 210.75,
"confidence": "med",
"value_kind": "feed",
"sold_count": 0
}
],
"market_updated_at": "2026-09-15T05:54:59.488Z",
"trend_7d": {
"direction": "flat",
"percent": 0
}
}
}
],
"page": 1,
"page_size": 50,
"total_count": 4,
"language": "all"
}curl -X GET 'https://service.rip.fun/api/v1/onepiece/cards/swshp_ja-104vh/printings?include=prices' \ -H 'X-API-Key: rip_…'
| Field | Type | Required | Description |
|---|---|---|---|
language | string | — | Narrow to one or more languages. Unlike the search endpoints this does NOT default to English — a code spans languages by definition. |
include | string | — | Set 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. |
data)| Field | Description |
|---|---|
data[].id | Card id (variant printings carry a suffix, e.g. `…vh` for holofoil, `…vrh` for reverse holofoil) |
data[].name / supertype / subtypes | Card identity + classification |
data[].rarity / number / printed_number / artist | Print metadata |
data[].images[] | `{ type, small, medium, large }`, `type` always `front`. Use `small` for grids and `large` for detail views. Two caveats: `medium` is always an alias of `large` (only two sizes are stored), and on cards whose source supplied a single rendition `small` is an alias too — it points at the same file as `large`. Compare the two URLs before assuming `small` is cheap; where they differ it is roughly 6× smaller. |
data[].language / language_code | Card language: `English`/`en`, `Japanese`/`ja`. Each printing is its own object. |
data[].tcgplayer_id | TCGplayer product id for cross-referencing, or null when we don’t have one |
data[].expansion | Nested expansion object (id, name, series, total, release_date, logo, symbol, …) |
data[].variants[] | `{ name, images[] }`, one self-describing element per card printing |
data[].pricing | Present only with `include=prices` — and then always present, even where we hold nothing: `market` comes back `null` and the two arrays empty rather than the key being dropped. `{ currency, market, market_updated_at, is_stale, trend_7d, conditions[], graded[] }`, with every amount a **number** rather than a decimal string. `trend_7d` is `{ direction, percent }`, and it is the only trend window there is. See the Pricing data guide. |
data[].pricing.conditions[] | `{ condition, price }` raw ladder (NM/LP/MP/HP/DMG) for the card’s variant — those two fields only |
data[].pricing.graded[] | Reconciled graded value per company+grade: `{ company, grade, value, low, high, confidence, value_kind, sold_count, trend? }` |
| Status | Code | When |
|---|---|---|
| 404 | not_found | no 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.