/api/v1/:tcg/cards/:card_id read:catalogFetch one card by its id. Add `include=prices` for our compact `pricing` object (market, condition ladder, reconciled graded values). For the full pricing payload (aggregate sold bands + last_sold_at) use the dedicated /prices endpoint. A card id that belongs to the other game returns 404. Wrapped in `{ success, data }`.
GET /api/v1/pokemon/cards/swshp_ja-104vh?include=prices These inputs are shared across all docs pages — an id entered here carries over.
{
"success": true,
"data": {
"id": "swshp_ja-104vh",
"name": "Charizard VMAX",
"number": "104",
"printed_number": "104",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/swshp_ja/104vh.small.png",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/swshp_ja/104vh.large.png",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/swshp_ja/104vh.large.png"
}
],
"expansion": {
"id": "swshp_ja",
"name": "Sword & Shield Promos",
"total": 340,
"language": "Japanese",
"language_code": "ja",
"series": "Sword & Shield",
"code": "PROMO",
"printed_total": 340,
"release_date": "2019/11/01",
"logo": "https://api.rip.fun/storage/v1/object/public/tcg/sets/swshp_ja.logo.png",
"symbol": "https://api.rip.fun/storage/v1/object/public/tcg/sets/swshp_ja.symbol.png",
"translation": {
"en": {
"name": "Sword & Shield Promos"
}
}
},
"language": "Japanese",
"language_code": "ja",
"tcgplayer_id": null,
"variants": [
{
"name": "holofoil",
"images": [
{
"type": "front",
"small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/swshp_ja/104vh.small.png",
"medium": "https://api.rip.fun/storage/v1/object/public/tcg/cards/swshp_ja/104vh.large.png",
"large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/swshp_ja/104vh.large.png"
}
]
}
],
"supertype": "Pokémon",
"subtypes": [
"VMAX"
],
"types": [
"Fire"
],
"attacks": [
{
"cost": [
"Colorless",
"Colorless",
"Colorless"
],
"converted_energy_cost": 3,
"name": "Claw Slash"
},
{
"cost": [
"Fire",
"Fire",
"Fire",
"Colorless",
"Colorless"
],
"converted_energy_cost": 5,
"name": "G-Max Wildfire",
"text": "Discard 2 Energy from this Pokémon."
}
],
"rarity": "Promo",
"artist": "aky CG Works",
"pricing": {
"currency": "USD",
"market": 4392,
"is_stale": false,
"conditions": [
{
"condition": "NM",
"price": 4392
}
],
"graded": [
{
"company": "BGS",
"grade": "9",
"value": 3120,
"low": 2652,
"high": 3588,
"confidence": "low",
"value_kind": "feed",
"sold_count": 0
},
{
"company": "PSA",
"grade": "10",
"value": 7172.5,
"low": 9950,
"high": 9950,
"confidence": "med",
"value_kind": "blended",
"sold_count": 1
}
],
"market_updated_at": "2026-07-29T19:48:27.200Z",
"trend_7d": {
"direction": "flat",
"percent": -0.49
}
}
}
}curl -X GET 'https://service.rip.fun/api/v1/pokemon/cards/swshp_ja-104vh?include=prices' \ -H 'X-API-Key: rip_…'
| Field | Type | Required | Description |
|---|---|---|---|
card_id | string | yes | Path param — the card id, e.g. `swshp_ja-104vh`. |
include | string | — | `prices` to include the compact `pricing` object. |
select | string | — | Comma list of top-level fields to keep. |
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 / types | Card identity + classification (One Piece cards expose `type` / `cost` / `power` / `attribute` / `colors` instead of `types`/`hp`) |
data[].rarity / number / printed_number / artist | Print metadata |
data[].hp / attacks / weaknesses / resistances / abilities | Pokémon game data (omitted when not applicable) |
data[].images[] | `{ type, small, medium, large }` — `medium` is aliased to `large` (only two sizes stored) |
data[].language / language_code | Card language — `English`/`en`, `Japanese`/`ja`, `Chinese`/`zh` (Simplified `zh-Hans`, Traditional `zh-Hant`) |
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`. Our own dedicated pricing: `{ currency, market, market_updated_at, is_stale, trend_7d, conditions[], graded[] }`. See the Pricing guide. |
data[].pricing.conditions[] | `{ condition, price }` raw ladder (NM/LP/MP/HP/DMG) for the card’s variant |
data[].pricing.graded[] | Reconciled graded value per company+grade: `{ company, grade, value, low, high, confidence, value_kind, sold_count, trend? }`. The dedicated /prices endpoint adds `band` + `last_sold_at`. |
| Status | Code | When |
|---|---|---|
| 404 | not_found | no card with that id for this game |
See Errors for the response envelope and the full code list.