TCDB APItcdb.com ↗
Access TCDB trading card set listings, full checklists, insert/parallel details, card search, and price data via a structured REST API.
What is the TCDB API?
The TCDB API provides 5 endpoints for querying the Trading Card Database, covering set listings, full card checklists, insert and parallel variant data, individual card search, and price history. The get_set_details endpoint alone returns base checklist cards, insert/parallel sub-sets, and set metadata in a single call. Data spans multiple sports and years, with each card record carrying structured fields like player name, team, card number, and notation flags such as RC, SP, and AU.
curl -X GET 'https://api.parse.bot/scraper/123aeda8-4611-4871-a592-2109a3f6434f/list_sets?year=2025&query=Donruss&sport=Football' \ -H 'X-API-Key: $PARSE_API_KEY'
List all trading card sets for a specific year and sport, optionally filtered by name. Returns an array of set summaries including set IDs usable with get_set_details and get_checklist. Results are not paginated; the full list for the given year/sport is returned in one response. When query is provided, only sets whose name contains the query (case-insensitive) are returned.
| Param | Type | Description |
|---|---|---|
| year | string | Year to list sets for (e.g. '2025', '2024', '2023'). |
| query | string | Optional search query to filter sets by name (case-insensitive substring match). When omitted, all sets for the year/sport are returned. |
| sport | string | Sport name to filter sets. |
{
"type": "object",
"fields": {
"sets": "array of set summary objects with sid, name, url, sport, and year"
},
"sample": {
"data": {
"sets": [
{
"sid": "506623",
"url": "https://www.tcdb.com/ViewSet.cfm/sid/506623/2025-Bowman",
"name": "2025 Bowman",
"year": "2025",
"sport": "Baseball"
}
]
},
"status": "success"
}
}About the TCDB API
Set Discovery and Checklist Retrieval
The list_sets endpoint accepts year, sport, and an optional query string to return an array of set summary objects, each with a sid, name, url, sport, and year. Set IDs returned here feed directly into get_set_details and get_checklist. get_checklist handles pagination internally and returns all cards in a set as a flat array, with each card carrying number, name, team, and notations.
Set Details with Inserts and Parallels
get_set_details goes further than a bare checklist: it returns a metadata object with a freeform overview string, a base_checklist array, and an inserts_and_parallels array where each entry contains its own sid, name, and cards array. The total_inserts_parallels integer tells you how many insert/parallel sets exist for the set regardless of how many were fetched. Use the limit_inserts parameter to control how many insert checklists are retrieved, since each one is a separate round-trip.
Card Search and Price Data
search_cards accepts a query (player or character name), set_name, year, and sport, and returns paginated results at 100 cards per page. Each result includes year, set_name, manufacturer, card_number, player_name, parallel_variation, and a url. At least one of query or set_name must be supplied. get_set_prices takes a sid and optional page parameter, returning up to 100 priced cards per page with card_number, name, notations, variation, card_url, image_url, and a prices object covering Median Raw, Avg. Grade 9, and Avg. Grade 10 values. Only cards that have recorded prices appear in these results.
The TCDB API is a managed, monitored endpoint for tcdb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tcdb.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official tcdb.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a collection tracker that maps your cards against full set checklists from
get_checklist, flagging rookie cards and short prints vianotations. - Pull insert and parallel sub-set data with
get_set_detailsto catalog every variant within a release, including their individual card lists. - Use
search_cardswith a player name query to find every card ever produced for a specific athlete across all years and sets. - Retrieve graded card price benchmarks (Grade 9 and Grade 10 averages) from
get_set_pricesto inform buying or selling decisions. - Enumerate all sets released in a given year and sport using
list_setsto populate a set registry or database. - Compare Median Raw prices across multiple sets for the same player by chaining
search_cardsresults into repeatedget_set_pricescalls. - Generate set completion reports by cross-referencing owned card numbers against the full checklist returned by
get_checklist.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does TCDB have an official developer API?+
What does `get_set_details` return beyond the base checklist?+
metadata object with set overview text, an inserts_and_parallels array where each entry has its own sid, name, and full cards array, and a total_inserts_parallels count. Use limit_inserts to cap how many insert checklists are fetched, since each adds latency.Are market transaction histories or individual sale records available?+
get_set_prices, but not raw transaction logs or sale-by-sale histories. You can fork this API on Parse and revise it to add an endpoint targeting individual sale record data if that surface becomes accessible.Does `get_set_prices` return prices for every card in a set?+
total_pages may be lower than the total card count in the corresponding checklist. get_checklist or get_set_details should be used to get the full card roster regardless of pricing.