Get a card
One printing by id, in any language.
Ids are stable. When a set is re-keyed, the old id keeps resolving to the card under its new id, with meta.movedFrom set to the id you sent. Store data.id.
Query parameters are ignored.
Path parameters
| Parameter | Type | Description |
|---|---|---|
| idrequired | string | A card id. An id retired by a set re-key keeps working and is reported in meta.movedFrom. |
Response
200 The card.
| Field | Type | Description |
|---|---|---|
| data | Card (Card reference) | The card. |
| meta | object | Present only when the id was retired. Absent unless it applies. |
| meta.movedFrom | string | The id you sent. |
Examples
Real responses from the production API, recorded on 2026-10-05 by the script that also checks every field above against them. Arrays are shown in full.
Charizard ex, 151
curl "https://api.tcggraph.com/v1/cards/pkm_sv3pt5_6" \
-H "Authorization: Bearer $TCGGRAPH_API_KEY"const response = await fetch("https://api.tcggraph.com/v1/cards/pkm_sv3pt5_6", {
headers: {
Authorization: `Bearer ${process.env.TCGGRAPH_API_KEY}`,
},
});
const body = await response.json();
if (!response.ok) throw new Error(`${body.error.code}: ${body.error.message}`);import os
import requests
response = requests.get(
"https://api.tcggraph.com/v1/cards/pkm_sv3pt5_6",
headers={"Authorization": f"Bearer {os.environ['TCGGRAPH_API_KEY']}"},
)
body = response.json()
response.raise_for_status()200 · X-Credits-Cost: 1
{
"data": {
"id": "pkm_sv3pt5_6",
"game": "pokemon",
"name": "Charizard ex",
"language": "en",
"printedName": null,
"baseCardId": null,
"englishId": null,
"sameArtwork": [
"pkm_ja_sv2a_6"
],
"pricesFrom": "own",
"pricesTwin": null,
"set": {
"code": "sv3pt5",
"name": "151",
"language": "en",
"releasedAt": "2023-09-22"
},
"collectorNumber": "6",
"rarity": "Double Rare",
"artist": "PLANETA Mochizuki",
"text": null,
"images": {
"small": "https://cards.tcggraph.io/sv/pkm_sv3pt5_6/small.webp",
"normal": "https://cards.tcggraph.io/sv/pkm_sv3pt5_6/normal.webp",
"large": "https://cards.tcggraph.io/sv/pkm_sv3pt5_6/large.webp"
},
"imageFrom": "own",
"hashes": {
"phash": "c35f14b4727b1a8c",
"phashColor": "c35916b46aebb984c35f04a6737b1c8cfb6f84e4d05a1a0b"
},
"prices": [
{
"source": "cardmarket",
"region": "EU",
"listType": "retail",
"finish": "foil",
"currency": "EUR",
"market": 8.41,
"low": 4.5,
"trend": 8.41,
"avg1": 7.94,
"avg7": 8.42,
"avg30": 8.39,
"basis": "product-page",
"updatedAt": "2026-10-05T08:08:04.341Z"
},
{
"source": "tcgplayer",
"region": "NA",
"listType": "retail",
"finish": "foil",
"currency": "USD",
"market": 8.76,
"low": 5.99,
"trend": null,
"avg1": null,
"avg7": null,
"avg30": null,
"basis": null,
"updatedAt": "2026-10-04T22:00:05.544Z"
}
],
"gradedPrices": [
{
"grader": "raw",
"grade": "ungraded",
"currency": "USD",
"price": 8.23,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "any",
"grade": "7",
"currency": "USD",
"price": 13.73,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "any",
"grade": "8",
"currency": "USD",
"price": 18.92,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "any",
"grade": "9",
"currency": "USD",
"price": 24.49,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "any",
"grade": "9.5",
"currency": "USD",
"price": 29.92,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "psa",
"grade": "10",
"currency": "USD",
"price": 125.11,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "bgs",
"grade": "10",
"currency": "USD",
"price": 163,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "cgc",
"grade": "10",
"currency": "USD",
"price": 34.46,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "sgc",
"grade": "10",
"currency": "USD",
"price": 39,
"salesVolume": 383,
"updatedAt": "2026-10-05T09:20:50.686Z"
}
],
"languagePrices": [
{
"source": "cardmarket",
"language": "en",
"finish": "foil",
"currency": "EUR",
"low": 6.5,
"lowNm": 7,
"market": 9.8,
"offers": 50,
"truncated": true,
"truncatedAbove": 10,
"conditions": [
{
"condition": "nm",
"low": 7,
"offers": 46
},
{
"condition": "ex",
"low": 9.45,
"offers": 2
},
{
"condition": "gd",
"low": 6.5,
"offers": 2
}
],
"updatedAt": "2026-10-05T09:01:59.654Z"
},
{
"source": "cardmarket",
"language": "it",
"finish": "foil",
"currency": "EUR",
"low": 4.5,
"lowNm": 4.59,
"market": 5.5,
"offers": 43,
"truncated": true,
"truncatedAbove": 6.8,
"conditions": [
{
"condition": "nm",
"low": 4.59,
"offers": 38
},
{
"condition": "ex",
"low": 4.5,
"offers": 5
}
],
"updatedAt": "2026-10-05T08:08:05.766Z"
},
{
"source": "cardmarket",
"language": "es",
"finish": "foil",
"currency": "EUR",
"low": 8.75,
"lowNm": 8.75,
"market": 12,
"offers": 17,
"truncated": false,
"truncatedAbove": null,
"conditions": [
{
"condition": "nm",
"low": 8.75,
"offers": 15
},
{
"condition": "ex",
"low": 11,
"offers": 1
},
{
"condition": "gd",
"low": 9,
"offers": 1
}
],
"updatedAt": "2026-09-30T11:53:43.291Z"
},
{
"source": "cardmarket",
"language": "de",
"finish": "foil",
"currency": "EUR",
"low": 4.8,
"lowNm": 4.8,
"market": 5.24,
"offers": 5,
"truncated": true,
"truncatedAbove": 6.8,
"conditions": [
{
"condition": "nm",
"low": 4.8,
"offers": 4
},
{
"condition": "ex",
"low": 6,
"offers": 1
}
],
"updatedAt": "2026-10-05T08:08:05.766Z"
},
{
"source": "cardmarket",
"language": "fr",
"finish": "foil",
"currency": "EUR",
"low": 6.8,
"lowNm": 6.8,
"market": 6.8,
"offers": 1,
"truncated": true,
"truncatedAbove": 6.8,
"conditions": [
{
"condition": "nm",
"low": 6.8,
"offers": 1
}
],
"updatedAt": "2026-10-05T08:08:05.766Z"
},
{
"source": "cardmarket",
"language": "pt",
"finish": "foil",
"currency": "EUR",
"low": 10,
"lowNm": 10,
"market": 10,
"offers": 1,
"truncated": false,
"truncatedAbove": null,
"conditions": [
{
"condition": "nm",
"low": 10,
"offers": 1
}
],
"updatedAt": "2026-10-02T12:38:59.692Z"
},
{
"source": "cardmarket",
"language": "ja",
"finish": "foil",
"currency": "EUR",
"low": null,
"lowNm": null,
"market": null,
"offers": 0,
"truncated": false,
"truncatedAbove": null,
"conditions": [],
"updatedAt": "2026-10-02T12:38:52.526Z"
},
{
"source": "cardmarket",
"language": "ko",
"finish": "foil",
"currency": "EUR",
"low": null,
"lowNm": null,
"market": null,
"offers": 0,
"truncated": false,
"truncatedAbove": null,
"conditions": [],
"updatedAt": "2026-10-02T12:38:58.267Z"
}
],
"printings": [
{
"key": "foil",
"label": "Holofoil",
"kind": "surface",
"images": {
"small": "https://cards.tcggraph.io/sv/pkm_sv3pt5_6/small.webp",
"normal": "https://cards.tcggraph.io/sv/pkm_sv3pt5_6/normal.webp",
"large": "https://cards.tcggraph.io/sv/pkm_sv3pt5_6/large.webp"
},
"imageFrom": "card",
"externalIds": {
"cardmarketId": 733601,
"tcgplayerId": 502558
},
"prices": [
{
"source": "cardmarket",
"region": "EU",
"listType": "retail",
"finish": "foil",
"currency": "EUR",
"market": 8.41,
"low": 4.5,
"trend": 8.41,
"avg1": 7.94,
"avg7": 8.42,
"avg30": 8.39,
"basis": "product-page",
"updatedAt": "2026-10-05T08:08:04.341Z"
},
{
"source": "tcgplayer",
"region": "NA",
"listType": "retail",
"finish": "foil",
"currency": "USD",
"market": 8.76,
"low": 5.99,
"trend": null,
"avg1": null,
"avg7": null,
"avg30": null,
"basis": null,
"updatedAt": "2026-10-04T22:00:05.544Z"
}
],
"cardId": "pkm_sv3pt5_6"
}
],
"priceStatus": {
"cardmarket": "priced",
"tcgplayer": "priced",
"graded": "priced"
},
"legalities": {
"expanded": "legal",
"standard": "legal",
"unlimited": "legal"
},
"gameData": {
"hp": 330,
"types": [
"Fire"
],
"attacks": [
{
"cost": [
"Fire"
],
"name": "Brave Wing",
"text": "If this Pokémon has any damage counters on it, this attack does 100 more damage.",
"damage": "60+",
"convertedEnergyCost": 1
},
{
"cost": [
"Fire",
"Fire",
"Fire",
"Fire"
],
"name": "Explosive Vortex",
"text": "Discard 3 Energy from this Pokémon.",
"damage": "330",
"convertedEnergyCost": 4
}
],
"subtypes": [
"Stage 2",
"ex"
],
"abilities": [],
"supertype": "Pokémon",
"weaknesses": [
{
"type": "Water",
"value": "×2"
}
],
"evolvesFrom": "Charmeleon",
"resistances": [],
"retreatCost": [
"Colorless",
"Colorless"
],
"regulationMark": "G",
"convertedRetreatCost": 2,
"nationalPokedexNumbers": [
6
]
},
"externalIds": {
"cardmarketId": 733601,
"tcgplayerId": 502558
}
}
}A retired id
curl "https://api.tcggraph.com/v1/cards/pkm_me5pt5_1" \
-H "Authorization: Bearer $TCGGRAPH_API_KEY"const response = await fetch("https://api.tcggraph.com/v1/cards/pkm_me5pt5_1", {
headers: {
Authorization: `Bearer ${process.env.TCGGRAPH_API_KEY}`,
},
});
const body = await response.json();
if (!response.ok) throw new Error(`${body.error.code}: ${body.error.message}`);import os
import requests
response = requests.get(
"https://api.tcggraph.com/v1/cards/pkm_me5pt5_1",
headers={"Authorization": f"Bearer {os.environ['TCGGRAPH_API_KEY']}"},
)
body = response.json()
response.raise_for_status()200 · X-Credits-Cost: 1
{
"data": {
"id": "pkm_me55_1",
"game": "pokemon",
"name": "Exeggcute",
"language": "en",
"printedName": null,
"baseCardId": null,
"englishId": null,
"sameArtwork": [
"pkm_ja_m6a_1"
],
"pricesFrom": "own",
"pricesTwin": null,
"set": {
"code": "me55",
"name": "30th Celebration",
"language": "en",
"releasedAt": "2026-09-16"
},
"collectorNumber": "1",
"rarity": "Common",
"artist": "Nelnal",
"text": null,
"images": {
"small": "https://cards.tcggraph.io/me/pkm_me5pt5_1/small.webp",
"normal": "https://cards.tcggraph.io/me/pkm_me5pt5_1/normal.webp",
"large": "https://cards.tcggraph.io/me/pkm_me5pt5_1/large.webp"
},
"imageFrom": "own",
"hashes": {
"phash": "c35a54a03d359f96",
"phashColor": "cb5a56a43d259786c17a50903f3d1f96dbd2a42c7c398d07"
},
"prices": [
{
"source": "cardmarket",
"region": "EU",
"listType": "retail",
"finish": "foil",
"currency": "EUR",
"market": 0.03,
"low": 0.02,
"trend": 0.03,
"avg1": 0.1,
"avg7": 0.09,
"avg30": 0.1,
"basis": "product-page",
"updatedAt": "2026-10-05T07:05:50.199Z"
},
{
"source": "tcgplayer",
"region": "NA",
"listType": "retail",
"finish": "foil",
"currency": "USD",
"market": 0.22,
"low": 0.03,
"trend": null,
"avg1": null,
"avg7": null,
"avg30": null,
"basis": null,
"updatedAt": "2026-10-04T22:00:05.544Z"
}
],
"gradedPrices": [
{
"grader": "raw",
"grade": "ungraded",
"currency": "USD",
"price": 0.35,
"salesVolume": 495,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "any",
"grade": "9",
"currency": "USD",
"price": 10.41,
"salesVolume": 495,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "any",
"grade": "9.5",
"currency": "USD",
"price": 11,
"salesVolume": 495,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "psa",
"grade": "10",
"currency": "USD",
"price": 31.59,
"salesVolume": 495,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "bgs",
"grade": "10",
"currency": "USD",
"price": 41,
"salesVolume": 495,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "cgc",
"grade": "10",
"currency": "USD",
"price": 19,
"salesVolume": 495,
"updatedAt": "2026-10-05T09:20:50.686Z"
},
{
"grader": "sgc",
"grade": "10",
"currency": "USD",
"price": 19,
"salesVolume": 495,
"updatedAt": "2026-10-05T09:20:50.686Z"
}
],
"languagePrices": [
{
"source": "cardmarket",
"language": "en",
"finish": "normal",
"currency": "EUR",
"low": 0.09,
"lowNm": 0.09,
"market": 0.15,
"offers": 25,
"truncated": true,
"truncatedAbove": 0.5,
"conditions": [],
"updatedAt": "2026-09-16T17:24:37.809Z"
},
{
"source": "cardmarket",
"language": "en",
"finish": "foil",
"currency": "EUR",
"low": 0.02,
"lowNm": 0.02,
"market": 0.03,
"offers": 10,
"truncated": true,
"truncatedAbove": 0.03,
"conditions": [
{
"condition": "nm",
"low": 0.02,
"offers": 10
}
],
"updatedAt": "2026-10-05T07:05:50.247Z"
},
{
"source": "cardmarket",
"language": "it",
"finish": "foil",
"currency": "EUR",
"low": 0.02,
"lowNm": 0.02,
"market": 0.02,
"offers": 21,
"truncated": true,
"truncatedAbove": 0.03,
"conditions": [
{
"condition": "nm",
"low": 0.02,
"offers": 21
}
],
"updatedAt": "2026-10-05T07:05:50.247Z"
},
{
"source": "cardmarket",
"language": "fr",
"finish": "normal",
"currency": "EUR",
"low": 0.02,
"lowNm": 0.02,
"market": 0.2,
"offers": 18,
"truncated": true,
"truncatedAbove": 0.5,
"conditions": [],
"updatedAt": "2026-09-16T17:24:37.809Z"
},
{
"source": "cardmarket",
"language": "fr",
"finish": "foil",
"currency": "EUR",
"low": 0.02,
"lowNm": 0.02,
"market": 0.02,
"offers": 10,
"truncated": true,
"truncatedAbove": 0.03,
"conditions": [
{
"condition": "nm",
"low": 0.02,
"offers": 10
}
],
"updatedAt": "2026-10-05T07:05:50.247Z"
},
{
"source": "cardmarket",
"language": "de",
"finish": "normal",
"currency": "EUR",
"low": 0.4,
"lowNm": 0.4,
"market": 0.44,
"offers": 3,
"truncated": true,
"truncatedAbove": 0.5,
"conditions": [],
"updatedAt": "2026-09-16T17:24:37.809Z"
},
{
"source": "cardmarket",
"language": "de",
"finish": "foil",
"currency": "EUR",
"low": 0.02,
"lowNm": 0.02,
"market": 0.02,
"offers": 7,
"truncated": true,
"truncatedAbove": 0.03,
"conditions": [
{
"condition": "nm",
"low": 0.02,
"offers": 7
}
],
"updatedAt": "2026-10-05T07:05:50.247Z"
},
{
"source": "cardmarket",
"language": "it",
"finish": "normal",
"currency": "EUR",
"low": 0.2,
"lowNm": 0.2,
"market": 0.2,
"offers": 3,
"truncated": true,
"truncatedAbove": 0.5,
"conditions": [],
"updatedAt": "2026-09-16T17:24:37.809Z"
},
{
"source": "cardmarket",
"language": "es",
"finish": "normal",
"currency": "EUR",
"low": 0.09,
"lowNm": 0.09,
"market": 0.09,
"offers": 1,
"truncated": true,
"truncatedAbove": 0.5,
"conditions": [],
"updatedAt": "2026-09-16T17:24:37.809Z"
},
{
"source": "cardmarket",
"language": "es",
"finish": "foil",
"currency": "EUR",
"low": 0.02,
"lowNm": 0.02,
"market": 0.02,
"offers": 2,
"truncated": true,
"truncatedAbove": 0.03,
"conditions": [
{
"condition": "nm",
"low": 0.02,
"offers": 2
}
],
"updatedAt": "2026-10-05T07:05:50.247Z"
},
{
"source": "cardmarket",
"language": "ja",
"finish": "foil",
"currency": "EUR",
"low": null,
"lowNm": null,
"market": null,
"offers": 0,
"truncated": false,
"truncatedAbove": null,
"conditions": [],
"updatedAt": "2026-10-02T07:04:26.209Z"
},
{
"source": "cardmarket",
"language": "ko",
"finish": "foil",
"currency": "EUR",
"low": null,
"lowNm": null,
"market": null,
"offers": 0,
"truncated": false,
"truncatedAbove": null,
"conditions": [],
"updatedAt": "2026-10-02T07:04:17.309Z"
},
{
"source": "cardmarket",
"language": "pt",
"finish": "foil",
"currency": "EUR",
"low": null,
"lowNm": null,
"market": null,
"offers": 0,
"truncated": false,
"truncatedAbove": null,
"conditions": [],
"updatedAt": "2026-10-03T00:19:42.836Z"
}
],
"printings": [
{
"key": "foil",
"label": "Holofoil",
"kind": "surface",
"images": {
"small": "https://cards.tcggraph.io/me/pkm_me5pt5_1/small.webp",
"normal": "https://cards.tcggraph.io/me/pkm_me5pt5_1/normal.webp",
"large": "https://cards.tcggraph.io/me/pkm_me5pt5_1/large.webp"
},
"imageFrom": "card",
"externalIds": {
"cardmarketId": 907607,
"tcgplayerId": 716435
},
"prices": [
{
"source": "cardmarket",
"region": "EU",
"listType": "retail",
"finish": "foil",
"currency": "EUR",
"market": 0.03,
"low": 0.02,
"trend": 0.03,
"avg1": 0.1,
"avg7": 0.09,
"avg30": 0.1,
"basis": "product-page",
"updatedAt": "2026-10-05T07:05:50.199Z"
},
{
"source": "tcgplayer",
"region": "NA",
"listType": "retail",
"finish": "foil",
"currency": "USD",
"market": 0.22,
"low": 0.03,
"trend": null,
"avg1": null,
"avg7": null,
"avg30": null,
"basis": null,
"updatedAt": "2026-10-04T22:00:05.544Z"
}
],
"cardId": "pkm_me55_1"
}
],
"priceStatus": {
"cardmarket": "priced",
"tcgplayer": "priced",
"graded": "priced"
},
"legalities": {},
"gameData": {
"hp": 60,
"types": [
"Grass"
],
"attacks": [
{
"cost": [
"Colorless"
],
"name": "Hypnosis",
"text": "Your opponent's Active Pokémon is now Asleep.",
"convertedEnergyCost": 1
}
],
"subtypes": [
"Basic"
],
"abilities": [],
"supertype": "Pokémon",
"weaknesses": [
{
"type": "Fire",
"value": "×2"
}
],
"evolvesFrom": null,
"resistances": [],
"retreatCost": [
"Colorless"
],
"regulationMark": "J",
"convertedRetreatCost": 1,
"nationalPokedexNumbers": [
102
]
},
"externalIds": {
"cardmarketId": 907607,
"tcgplayerId": 716435
}
},
"meta": {
"movedFrom": "pkm_me5pt5_1"
}
}Errors
Every error has the same body; switch on error.code. Any endpoint can also answer 401, 402, 403 or 429 for reasons of key, plan or rate; those are on Errors.
| Status | Code | When |
|---|---|---|
| 404 | not_found | No card has, or had, that id. |
Unknown id
curl "https://api.tcggraph.com/v1/cards/pkm_nope_1" \
-H "Authorization: Bearer $TCGGRAPH_API_KEY"const response = await fetch("https://api.tcggraph.com/v1/cards/pkm_nope_1", {
headers: {
Authorization: `Bearer ${process.env.TCGGRAPH_API_KEY}`,
},
});
const body = await response.json();
if (!response.ok) throw new Error(`${body.error.code}: ${body.error.message}`);import os
import requests
response = requests.get(
"https://api.tcggraph.com/v1/cards/pkm_nope_1",
headers={"Authorization": f"Bearer {os.environ['TCGGRAPH_API_KEY']}"},
)
body = response.json()
response.raise_for_status()404
{
"error": {
"code": "not_found",
"message": "No card with id \"pkm_nope_1\"."
}
}