Documentation
See something wrong or out of place? Reach out on discord or submit an issue on Github to ask a question or offer a correction!
TCGplayer
The bulk of the information offered here from TCGplayer is a direct export from their API endpoints. When relevent, this documentation will link to the TCGplayer API endpoints that yielded the cached response.
Almost all endpoints from their API yield responses with the following format:
{
"totalItems": 440,
"success": true,
"errors": [],
"results": [
// ...
]
}
The Market Price Collection does not include totalItems for some mysterious reason.
Categories Collection
TCGplayer uses categories to roughly translate to a card game or a collection of merchandise.
The cached response returns information from TCGplayer's List All Categories endpoint.
Example URL: https://tcgcsv.com/tcgplayer/categories
Example JSON response:
{
"totalItems": 89,
"success": true,
"errors": [],
"results": [
// ...
{
"categoryId": 3,
"name": "Pokemon",
"modifiedOn": "2025-11-19T15:58:35.27",
"displayName": "Pokemon",
"seoCategoryName": "Pokemon",
"categoryDescription": "Trainers, your Pokémon adventure starts here! Whether you're a champ in the making or trying to catch 'em all from the latest sets, browse and buy Pokémon cards, booster boxes, Elite Trainer Boxes, and card packs at the best prices from thousands of sellers.",
"categoryPageTitle": "TCGplayer - Buy Pokémon TCG Cards, Singles, and Pack",
"sealedLabel": "Sealed Products",
"nonSealedLabel": "Single Cards",
"conditionGuideUrl": "https://store.tcgplayer.com/help/cardconditionguide",
"isScannable": true,
"popularity": 576635,
"isDirect": true
},
// ...
]
}
Groups Collection
TCGplayer uses groups to represent collections of products within a category. Each group roughly translates to a set in a card game.
The cached response returns information from TCGplayer's List All Category Groups endpoint.
URL Scheme: https://tcgcsv.com/tcgplayer/{categoryId}/groups
Example URL: https://tcgcsv.com/tcgplayer/3/groups
Example JSON response:
{
"totalItems": 212,
"success": true,
"errors": [],
"results": [
// ...
{
"groupId": 3170,
"name": "SWSH12: Silver Tempest",
"abbreviation": "SWSH12",
"isSupplemental": false,
"publishedOn": "2022-11-11T00:00:00",
"modifiedOn": "2025-12-12T22:37:34.34",
"categoryId": 3
},
// ...
]
}
Products Collection
TCGplayer uses products to represent sealed boxes, packs, code cards, individual trading cards, and more! Products have nested extendedData which is where TCGplayer usually stores a card's text, rarity, and set number. Products have separate Market Price objects available in a parallel collection that need to be joined via their productId.
The cached response returns information from TCGplayer's List All Products endpoint with the query parameter getExtendedFields set to true.
URL Scheme: https://tcgcsv.com/tcgplayer/{categoryId}/{groupId}/products
Example URL: https://tcgcsv.com/tcgplayer/3/3170/products
Example JSON response:
{
"totalItems": 254,
"success": true,
"errors": [],
"results": [
// ...
{
"productId": 451396,
"name": "Lugia VSTAR",
"cleanName": "Lugia VSTAR",
"imageUrl": "https://tcgplayer-cdn.tcgplayer.com/product/451396_200w.jpg",
"categoryId": 3,
"groupId": 3170,
"url": "https://www.tcgplayer.com/product/451396/pokemon-swsh12-silver-tempest-lugia-vstar",
"modifiedOn": "2025-12-04T15:00:29.8",
"imageCount": 1,
"presaleInfo": {
"isPresale": false,
"releasedOn": null,
"note": null
},
"extendedData": [
{
"name": "Number",
"displayName": "Card Number",
"value": "139/195"
}, {
"name": "Rarity",
"displayName": "Rarity",
"value": "Ultra Rare"
}, {
"name": "Card Type",
"displayName": "Card Type",
"value": "Colorless"
}, {
"name": "HP",
"displayName": "HP",
"value": "280"
}, {
"name": "Stage",
"displayName": "Stage",
"value": "VSTAR"
}, {
"name": "CardText",
"displayName": "Card Text",
"value": `<span style="color:gold"><strong>VSTAR Power</strong></span>\r\n<br>\r\n<strong>Ability — Summoning Star</strong>\r\n<br>\r\…game.)</em>\r\n<br><br>\r\n<em>VSTAR rule — When your Pokémon VSTAR is Knocked Out, your opponent takes 2 Prize cards.</em>`
}, {
"name": "Attack 1",
"displayName": "Attack 1",
"value": "[4] Tempest Dive (220)\r\n<br>\r\nYou may discard a Stadium in play."
}, {
"name": "Weakness",
"displayName": "Weakness",
"value": "Lx2"
}, {
"name": "Resistance",
"displayName": "Resistance",
"value": "F-30"
}, {
"name": "RetreatCost",
"displayName": "Retreat Cost",
"value": "2"
}
]
},
// ...
]
}
Property Definitions for Extended Data:
I currently do not have any meta endpoints that publicise or vendor the extendedData items one can expect from a category or group. Users will need to sample products and inspect the extendedData they find there to see if it's present and useful.
Market Prices Collection
Products have Market Price objects available that need to be joined via their productId. Note: Products are one-to-many with Prices. One product can have multiple price objects.
The cached response returns information from TCGplayer's Product Prices by Group endpoint.
URL Scheme: https://tcgcsv.com/tcgplayer/{categoryId}/{groupId}/prices
Example URL: https://tcgcsv.com/tcgplayer/3/3170/prices
Example JSON response:
{
"success": true,
"errors": [],
"results": [
// ...
{
"productId": 451784,
"lowPrice": 0.1,
"midPrice": 0.51,
"highPrice": 25.51,
"marketPrice": 0.53,
"directLowPrice": 0.44,
"subTypeName": "Holofoil"
}, {
"productId": 451784,
"lowPrice": 0.35,
"midPrice": 0.7,
"highPrice": 2.99,
"marketPrice": 0.74,
"directLowPrice": null,
"subTypeName": "Reverse Holofoil"
}
// ...
]
}
Note the lack of a totalItems property. Prices are in United States Dollars (USD)