ScavioScavio
Pricing
Tools
Sign InsGet Startedg
13 live endpoints

TCGplayer API

TCGplayer card and sealed product data as structured JSON: market price for every condition and printing, up to a year of price history with copies sold, the latest sales, whole-set price guides, every live listing, and seller profiles, feedback and catalogues, across Pokemon, Magic, Yu-Gi-Oh!, One Piece, Lorcana and 66 more product lines.

Try TCGplayer APIRead the docs

50 free credits on signup, 50 TCGplayer calls. No card, no TCGplayer developer key.

POST /api/v1/tcgplayer/search
sample
query:
try
{  "data": {    "query": "charizard",    "game": "pokemon",    "set": null,    "rarity": null,    "product_type": null,    "total_results": 382,    "page": 1,    "limit": 10,    "sort": "relevance",    "count": 10,    "has_more": true,    "duplicates_removed": 0,    "products": [      {        "product_id": 654213,        "name": "Mega Charizard X ex Ultra Premium Collection",        "url": "https://www.tcgplayer.com/product/654213/pokemon-miscellaneous-cards-and-products-mega-charizard-x-ex-ultra-premium-collection",        "image_url": "https://tcgplayer-cdn.tcgplayer.com/product/654213_in_400x400.jpg",        "game": "Pokemon",        "game_id": 3,        "set_name": "Miscellaneous Cards & Products",        "set_code": "MCAP",        "set_id": 2374,        "number": null,        "rarity": null,        "product_type": null,        "sealed": null,        "foil_only": false,        "release_date": null,        "market_price": 211.28,        "median_price": 270,        "lowest_price": 3,        "lowest_price_with_shipping": 216.98,        "listing_count": 231,        "listings": [          {            "listing_id": 4494491,            "price": 7.99,            "shipping_price": 0,            "total_price": 7.99,            "quantity": 96,            "condition": "Unopened",            "printing": "Normal",            "language": "English",            "language_code": "EN",            "listing_type": "custom",            "direct_listing": false,            "custom_title": "Set of 60 dice",            "custom_description": null,            "photo_count": 1,            "listed_at": "2026-05-02T21:04:29.947Z",            "seller": "… (trimmed for preview)"          },          "… 2 more (trimmed for preview)"        ]      },      "… 9 more (trimmed for preview)"    ],    "facets": {      "card_type": [        {          "value": "Pokemon",          "url_value": "Pokemon",          "count": 215,          "active": false        },        "… 4 more (trimmed for preview)"      ],      "energy_type": [        {          "value": "Fire",          "url_value": "Fire",          "count": 160,          "active": false        },        "… 3 more (trimmed for preview)"      ],      "rarity": [        {          "value": "Promo",          "url_value": "Promo",          "count": 114,          "active": false        },        "… 15 more (trimmed for preview)"      ],      "set": [        {          "value": "Battle Academy",          "url_value": "battle-academy",          "count": 61,          "active": false        },        "… 68 more (trimmed for preview)"      ],      "product_type": [        {          "value": "Cards",          "url_value": "Cards",          "count": 255,          "active": false        },        "… 1 more (trimmed for preview)"      ],      "game": [        {          "value": "Pokemon",          "url_value": "pokemon",          "count": 382,          "active": true        },        "… 7 more (trimmed for preview)"      ],      "seller_country": [        {          "value": "US",          "url_value": "US",          "count": 1017,          "active": false        },        "… 1 more (trimmed for preview)"      ],      "condition": [        {          "value": "Unopened",          "url_value": "Unopened",          "count": 895,          "active": false        },        "… 5 more (trimmed for preview)"      ],      "language": [        {          "value": "English",          "url_value": "English",          "count": 1791,          "active": false        }      ],      "printing": [        {          "value": "Normal",          "url_value": "Normal",          "count": 1106,          "active": false        },        "… 1 more (trimmed for preview)"      ]    }  },  "response_time": 2512}
captured example · 1 credits3 / 3 free

Live calls against the real endpoints. 3 free runs across every tab, then it's your own key.

What is the Scavio TCGplayer API?

The Scavio TCGplayer API is a REST API that returns tcgplayer.com (US marketplace, USD) data as structured JSON, available while TCGplayer's own API is closed to new developers. Its 13 POST endpoints cover search, product detail with market price per condition and printing, live listings, price history with sold volume, the 5 latest sales, games, sets, set price guides, suggestions, trending searches, and seller profiles, feedback and catalogues. Every call costs 1 credit.

13
endpoints, all live in production
1
credit per call, every endpoint
71
games and product lines, Pokemon to Lorcana

The TCGplayer data buyers actually need

What a card is worth in each condition and printing, how many copies sell, and who is selling it.

Market price by condition and printing

POST /api/v1/tcgplayer/product

Every SKU of a card, condition x printing x language, with its market price and the sale range behind it. The Charizard 3/70 promo was $7.09 Near Mint (25 sales, $6.00-$9.99) and $4.79 Damaged.

A year of price history and sold volume

POST /api/v1/tcgplayer/price-history

Per SKU, per day or week: market price, copies sold, transactions and the low and high sale. The same Charizard sold 100 copies in 93 transactions over the last month.

The last 5 sales

POST /api/v1/tcgplayer/sales

Date, condition, printing, quantity, price and shipping of the newest sales. The newest Charizard sale was Near Mint at $9.99 plus $1.22 shipping on 2026-11-08.

A whole set's price guide

POST /api/v1/tcgplayer/price-guide

Up to 500 rows per call, one per card per condition and printing, cards or sealed. Pokemon Base Set had 505 card rows.

Every listing, every seller

POST /api/v1/tcgplayer/listings

Live offers with price plus shipping, condition, printing and language, and the seller's rating, sales and Gold Star. Lightning Bolt had 98 Near Mint listings.

71 games, every set

POST /api/v1/tcgplayer/games

Pokemon, Magic, Yu-Gi-Oh!, One Piece, Lorcana, Pokemon Japan and 65 more product lines, each with every set newest first: 221 for Pokemon, 457 for Magic.

All 13 TCGplayer API endpoints

Every route is a POST, returns JSON, and takes the same API key. 1 credit per successful call; errors are not charged.

EndpointReturnsCredits
Search/api/v1/tcgplayer/searchCards and sealed products across every game, up to 50 per page, six sorts, filters for game, set, rarity and cards vs sealed: product id, set, number, rarity, market, median and lowest price, listing count, up to 3 featured listings, plus facets with counts1
Product detail/api/v1/tcgplayer/productOne card or sealed product: market price per SKU (condition x printing x language) with the recent sale range and count behind it, product market, median and lowest price, listing and seller counts, card text, game attributes and images up to 1000 px1
Listings/api/v1/tcgplayer/listingsEvery live seller offer, up to 50 per page, filtered by condition, printing, language, verified sellers or Direct: price, shipping, total, quantity and the seller's rating, sales, Gold Star and location1
Price history/api/v1/tcgplayer/price-historyUp to a year per SKU: market price, quantity sold, transaction count and low and high sale price per day (month), 3 days (quarter) or week (half year, year)1
Recent sales/api/v1/tcgplayer/salesThe 5 most recent sales: date, condition, printing, language, quantity, price and shipping. TCGplayer shows only the newest 51
Set price guide/api/v1/tcgplayer/price-guideA whole set's price table, one row per card per condition and printing, with market and low price, up to 500 rows per page, cards or sealed1
Games/api/v1/tcgplayer/gamesAll 71 product lines with game id and url_name: Pokemon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana, Pokemon Japan and the rest1
Sets/api/v1/tcgplayer/setsEvery set of a game, newest first, with the set id for the price guide, url_name, abbreviation and release date1
Search suggestions/api/v1/tcgplayer/suggestionsThe tcgplayer.com autocomplete: suggested products with product id, set and game, matching sets and game counts1
Trending searches/api/v1/tcgplayer/trendingThe top 10 terms shoppers search right now, overall or for Pokemon, Magic or Yu-Gi-Oh!, with a popularity score1
Seller profile/api/v1/tcgplayer/sellerA seller's location, member since, sales, rating, Gold Star, Direct and Pro flags, games sold and a 365-day feedback summary by star1
Seller feedback/api/v1/tcgplayer/seller-feedbackIndividual buyer feedback from the last 365 days, up to 50 per page, by star rating or with comments only1
Seller products/api/v1/tcgplayer/seller-productsA seller's listed catalogue, up to 50 products per page, by keyword or game, with the seller's own price, condition and quantity next to the market price1

50 free credits on signup covers 50 TCGplayer calls. See plans

Price a card by condition, then track it

Suggestions turns a typed name into a product id; product prices every condition and printing; price-history adds daily or weekly sold volume. The response on the right is a real capture.

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# A Discord or Slack price command: name in, Near Mint prices out - 2 credits
hit = client.tcgplayer.suggestions(query="charizard")["data"]["products"][0]
p = client.tcgplayer.product(product_id=hit["product_id"])["data"]

print(p["name"], p["set_name"], "market", p["market_price"])
for s in p["skus"]:
    if s["condition"] == "Near Mint":
        print(s["printing"], s["language"], s["market_price"],
              "recent sales", s["lowest_sale_price"], "-", s["highest_sale_price"])
200 response.jsoncaptured
{
  "data": {
    "product_id": 219058,
    "name": "Charizard - 3/70 (#39 Charizard Stamped)",
    "url": "https://www.tcgplayer.com/product/219058/pokemon-battle-academy-charizard-3-70-39-charizard-stamped",
    "images": {
      "small": "https://tcgplayer-cdn.tcgplayer.com/product/219058_in_200x200.jpg",
      "medium": "https://tcgplayer-cdn.tcgplayer.com/product/219058_in_400x400.jpg",
      "large": "https://tcgplayer-cdn.tcgplayer.com/product/219058_in_1000x1000.jpg"
    },
    "game": "Pokemon",
    "game_id": 3,
    "set_name": "Battle Academy",
    "set_code": "BTA",
    "set_id": 2686,
    "number": "003/070",
    "rarity": "Promo",
    "product_type": "Cards",
    "product_type_id": 1,
    "sealed": false,
    "foil_only": false,
    "normal_only": true,
    "release_date": "2020-07-31",
    "market_price": 7.09,
    "median_price": 8.44,
    "lowest_price": 4,
    "lowest_price_with_shipping": 4.9,
    "listing_count": 64,
    "seller_count": 61,
    "description": "Ability — Resolute Flame\nThis Pokémon's attacks do 30 more damage to your opponent's Active Pokémon for each of their Pokémon-GX and Pokémon-EX in play.",
    "flavor_text": "NO. 006 Flame Pokémon HT: 5'07\" WT: 199.5 lbs.\nIts wings can carry this Pokémon close to an altitude of 4,600 feet. It blows out fire at very high temperatures.",
    "note": null,
    "attributes": {
      "stage": "Stage 2",
      "energy_type": [
        "Fire"
      ],
      "card_type": [
        "Pokemon"
      ],
      "retreat_cost": "2",
      "card_type_b": "Fire",
      "weakness": "Wx2",
      "attack1": "[1RR] Fiery Blast (130)\nDiscard an Energy from this Pokémon.",
      "hp": "160"
    },
    "details": [
      {
        "name": "Card Number / Rarity",
        "value": "003/070 / Promo"
      },
      {
        "name": "Card Type / HP / Stage",
        "value": "Fire / 160 / Stage 2"
      }
    ],
    "sku_count": 5,
    "skus": [
      {
        "sku_id": 4514135,
        "condition": "Near Mint",
        "printing": "Normal",
        "language": "English",
        "market_price": 7.09,
        "lowest_sale_price": 6,
        "highest_sale_price": 9.99,
        "sale_count": 25,
        "calculated_at": "2026-11-08T17:49:17.632Z"
      },
      {
        "sku_id": 4514136,
        "condition": "Lightly Played",
        "printing": "Normal",
        "language": "English",
        "market_price": 6.25,
        "lowest_sale_price": 4.99,
        "highest_sale_price": 7.99,
        "sale_count": 25,
        "calculated_at": "2026-11-08T20:32:08.712Z"
      },
      {
        "sku_id": 4514137,
        "condition": "Moderately Played",
        "printing": "Normal",
        "language": "English",
        "market_price": 5.79,
        "lowest_sale_price": 2.5,
        "highest_sale_price": 8.79,
        "sale_count": 25,
        "calculated_at": "2026-11-06T23:52:39.623Z"
      },
      {
        "sku_id": 4514138,
        "condition": "Heavily Played",
        "printing": "Normal",
        "language": "English",
        "market_price": 5.95,
        "lowest_sale_price": 4.25,
        "highest_sale_price": 7.95,
        "sale_count": 12,
        "calculated_at": "2026-11-01T15:28:17.606Z"
      },
      {
        "sku_id": 4514139,
        "condition": "Damaged",
        "printing": "Normal",
        "language": "English",
        "market_price": 4.79,
        "lowest_sale_price": 2.5,
        "highest_sale_price": 6.52,
        "sale_count": 21,
        "calculated_at": "2026-11-07T06:08:15.348Z"
      }
    ]
  },
  "response_time": 4826
}

Why not the official TCGplayer API?

TCGplayer has its own developer API. Here is where the Scavio TCGplayer API differs.

TCGplayer developer API

  • Closed to new developers: "We are no longer granting new API access at this time" (docs.tcgplayer.com, checked 2026-11-09)
  • Existing keys must follow TCGplayer's API terms, including its restrictions and required attributions
  • Since September 2026 TCGplayer has been reviewing existing API users' access, rate limits and agreements
  • Its own authentication and response format, a separate integration from every other marketplace you track

Scavio TCGplayer API

  • One Scavio key, issued at signup with no application, shared with eBay, Amazon and 70+ other platforms
  • Market price for every condition, printing and language, with the recent sale range behind it
  • Up to a year of price history with copies sold per day or week
  • Every live listing with seller rating and sales, plus seller profiles, feedback and catalogues
  • Whole-set price guides, up to 500 rows in one call
  • 1 credit per call on every endpoint

Scavio returns publicly available tcgplayer.com data only, never signs in to a TCGplayer account and never places orders.

What developers build with it

Collection and portfolio trackers

Value a collection at the market price of each card's exact condition and printing, and chart it over time from price history.

product + price-history

Discord and Slack price bots

Turn a typed card name into a product id with suggestions, then answer with Near Mint and played prices in two calls.

suggestions + product

Store repricing

Compare your listings with the cheapest live offers in the same condition and printing, shipping included, and reprice to match.

listings + seller-products

Set price lists and buylist sheets

Pull a whole set's market and low prices, card by card and condition by condition, in one 500-row call.

sets + price-guide

Price spike and dip alerts

Store market price and copies sold per day and alert when a card moves outside its usual range or its sales volume jumps.

price-history + sales

Sealed product investing

Track booster boxes, collections and tins by market price and sold volume, from release day on.

search + price-history

Resale and arbitrage

Compare TCGplayer's market price and recent sales with eBay sold listings before you buy or list.

product + sales + eBay API

Seller vetting

Check a seller's rating, sales and the last year of feedback, and read the one- and two-star comments, before a large order.

seller + seller-feedback

New-set demand research

Watch what shoppers search for around a release and which new sets show up first.

trending + sets

How to get TCGplayer data as JSON

  1. 1

    Get an API key

    Sign up for a Scavio account and copy your key from the dashboard. You get 50 free credits on signup, 50 TCGplayer calls, with no card and no TCGplayer developer key.

  2. 2

    Find the card

    Send {"query": "charizard", "game": "pokemon"} to https://api.scavio.dev/api/v1/tcgplayer/search with an Authorization: Bearer header. Each result has its product_id, set, number, rarity and market price.

  3. 3

    Price it by condition and printing

    Pass the product_id to /api/v1/tcgplayer/product for the market price of every SKU, or to /api/v1/tcgplayer/listings for every live offer.

  4. 4

    Add history

    Send the product_id with "range": "annual" to /api/v1/tcgplayer/price-history for a year of weekly market prices and copies sold.

One key, 55 platformsMCP server for agentsPython & JS SDKsn8n community node

TCGplayer API FAQ

Does TCGplayer have an API?

+

TCGplayer has its own developer API, but it is closed to new developers: its documentation says "We are no longer granting new API access at this time" (docs.tcgplayer.com, checked 2026-11-09). Existing keys still work under TCGplayer's API terms. The Scavio TCGplayer API is a separate option anyone can sign up for: 13 POST endpoints that return what tcgplayer.com shows as structured JSON.

How do I get a TCGplayer API key now?

+

You cannot get a new key from TCGplayer while new access is closed. With Scavio you sign up, copy your Scavio key from the dashboard and call /api/v1/tcgplayer/... with it as a Bearer token. There is no application or approval step, and 50 free credits come with the account.

Can I get the TCGplayer market price by condition and printing?

+

Yes. /api/v1/tcgplayer/product returns every SKU of a product, one per condition x printing x language, with its market price, the lowest and highest recent sale price and the number of sales behind it. The Charizard 3/70 promo was $7.09 Near Mint (25 sales between $6.00 and $9.99), $6.25 Lightly Played and $4.79 Damaged. Those sale figures are recent sales, not live listings; for live offers use /api/v1/tcgplayer/listings.

Can I get TCGplayer price history and sold volume?

+

Yes. /api/v1/tcgplayer/price-history returns up to a year per SKU: market price, quantity sold, transaction count and the low and high sale price, in daily buckets for a month, 3-day buckets for a quarter and weekly buckets for a half year or year. Over one month the Charizard 3/70 sold 100 copies in 93 transactions. A bucket with no sales has null sale prices.

Can I see the latest TCGplayer sales?

+

Yes, the 5 most recent: /api/v1/tcgplayer/sales returns each sale's date, condition, printing, language, quantity, price and shipping, optionally only in some conditions. TCGplayer shows only the newest 5, so it is not a full sold history; for how many copies sold and at what range, use price-history.

Which games does it cover? Pokemon, Magic, Yu-Gi-Oh!?

+

Every product line on TCGplayer, 71 at launch: Pokemon, Magic: The Gathering, Yu-Gi-Oh!, One Piece Card Game, Disney Lorcana, Flesh and Blood, Digimon, Star Wars: Unlimited and the rest, plus supplies such as sleeves and deck boxes. Japanese Pokemon products are their own line, pokemon-japan. /api/v1/tcgplayer/games lists them all with the url_name search and sets take.

Can I pull a whole set's prices at once?

+

Yes. Get the set's set_id from /api/v1/tcgplayer/sets, then call /api/v1/tcgplayer/price-guide: one row per card per condition and printing with market and low price, up to 500 rows per page for 1 credit. Pokemon Base Set (604) had 505 card rows.

Does it cover sealed products like booster boxes?

+

Yes. Search with product_type sealed for booster boxes, packs, collections, tins and decks; product, listings, sales and price-history work on them like cards (condition Unopened). price-guide with product_type sealed lists a set's sealed products.

Can I get TCGplayer seller data?

+

Yes. Every listing carries the seller's key, rating percent, sales, Gold Star, verified and Direct flags and location. /api/v1/tcgplayer/seller returns a full profile with a 365-day feedback summary by star, /seller-feedback the individual feedback entries, and /seller-products the seller's listed catalogue with their own prices.

How do I build a Discord price bot or a collection app with it?

+

Use /api/v1/tcgplayer/suggestions to turn what a user types into a product id, then /api/v1/tcgplayer/product for the market price of each condition and printing: 2 credits per lookup. For a collection app, store each card's product id and SKU and refresh the value from product or price-history on a schedule.

Is there a free TCGplayer API?

+

Scavio gives 50 free credits on signup, one time and with no card, which covers 50 TCGplayer calls since every endpoint costs 1 credit. Paid plans start at $15 per month for 3,000 credits.

How much does a TCGplayer request cost?

+

Every TCGplayer endpoint costs 1 credit per call, including product (all SKUs), price-history (up to a year), price-guide (up to 500 rows) and seller (profile and feedback summary). Invalid requests, unknown ids (404) and temporary outages (502) are not charged.

How fast and fresh is the data?

+

Every request fetches live from tcgplayer.com when you call it; nothing is cached, and each response carries fetched_at. In our captures, price-history took 0.7 seconds, games and sets 1.0, suggestions 1.2, seller 1.4, search 2.0, product 4.8 and listings 5.9. Upstream checks sometimes fail; the API retries automatically, and a call that still fails is a 502 that is not charged.

What does it not return?

+

No product reviews, no buylist prices, no store locator and no full sold-listing history: sales is the newest 5 only, and price-history gives sold volume per day or week rather than individual sales. Prices are tcgplayer.com's US marketplace prices in US dollars.

Is using TCGplayer data legal?

+

Scavio returns publicly available tcgplayer.com data and does not sign in to buyer or seller accounts, place orders or change listings. You remain responsible for how you use the data, including compliance with TCGplayer's terms. Talk to your own counsel for your specific use case.

Explore more of Scavio

Best TCGplayer price APIs

Seven options priced and tested the week Delta Reign released, November 2026.

How to get TCGplayer price history

A year of market price and copies sold per condition, step by step.

A Pokemon card price API with history

Backfill a year per card or sealed product, then keep your own.

TCGplayer API docs

All 13 endpoints with params and real responses.

TCGplayer price history

Daily or weekly market price and sold volume per SKU.

TCGplayer set price guide

A whole set's prices in one call.

eBay API

Live and sold listings for resale and graded card comps.

Etsy API

Listings, shops and reviews.

Mercado Libre API

Listings, prices and sellers in Latin America.

Amazon API

Search, product detail by ASIN and seller offers.

Walmart API

Search, product, reviews and store-level pricing.

Target API

Search, categories, detail and reviews.

Costco API

Warehouse prices, stock and coupons.

Google Shopping API

Compare prices across stores for one product.

Try the TCGplayer API free

50 free credits on signup, no card. Your first request is a POST with a card name in it.

Get your API keySee pricing
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy