TCGplayer product
One TCGplayer product (card or sealed product): name, game, set, set code, number, rarity, type, market, median and lowest prices, listing and seller counts, release date, card text and every card attribute, image, each SKU (condition, printing, language) and the latest sales. Pass id, a url, or q with latest=true (first search result). Also flavor_text. With sku_prices=1, each SKU also has its market price, lowest and highest listed price, number of prices and when they were calculated.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
id | string | TCGplayer product id (id of a search result, or the number in a tcgplayer.com/product/... link). Example: 42382 |
url | string | Instead of id: a tcgplayer.com/product/... link. |
q | string | With latest=true: search words; the first search result is used (other search filters such as game also apply). |
latest | string | true: run the search with q and the other search filters and use its first result. |
sku_prices | 0 | 1 | 1 to add market, lowest and highest price per SKU (condition, printing, language). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/tcgplayer/v1/product?id=42382" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/tcgplayer/v1/product",
params={"id": "42382"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/tcgplayer/v1/product");
url.searchParams.set("id", "42382");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).