TCGplayer
TCGplayer Search API
Search tcgplayer.com (US marketplace, prices in USD) for cards and sealed products across every game: Pokemon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana and the rest of the 71 product lines. Up to 50 products per page, sorted by relevance, best match, best selling, name or market price, and filtered by game, set, rarity and cards vs sealed. The query is optional when a game or set is given, to browse it. Each product has its product id, name, URL, image, game, set, card number, rarity, product type, sealed and foil-only flags, release date, market price, median price, lowest price, lowest price with shipping, listing count and up to 3 featured live listings with the seller. Also returns the total result count, has_more and the filter facets with counts. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonquerystringSearch keywords, up to 200 characters. Optional when game or set is given.
Example: charizard
gamestringOnly this game, by url_name from /api/v1/tcgplayer/games: pokemon, magic, yugioh, pokemon-japan, one-piece-card-game, lorcana-tcg...
Example: pokemon
setstringOnly this set, by url_name from /api/v1/tcgplayer/sets or a set facet's url_value.
Example: base-set
raritystringOnly this rarity, as spelled in the rarity facet (Common, Rare, Holo Rare, Secret Rare...).
Example: Holo Rare
product_typestringcards (single cards) or sealed (booster boxes, packs, decks, tins...).
sortstringrelevance (default), best_match, best_selling, name_asc, price_asc or price_desc (by market price). relevance and best_match rankings shift between calls; on page 2 and later, products already on the previous page are removed and counted in duplicates_removed, so a price or name sort pages more predictably.
pageintegerResults page, 1-based, up to 200. Defaults to 1.
Example: 1
limitintegerProducts per page, 1-50. Defaults to 24.
Example: 24
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.tcgplayer.search(query="charizard", game="pokemon", sort="price_desc")["data"]
print(res["total_results"], "products")
for p in res["products"]:
print(p["product_id"], p["name"], p["set_name"], p["market_price"], p["listing_count"])Response