TCDB APItcdb.com ↗
Access TCDB trading card set listings, full checklists, insert/parallel details, card prices, and individual card attributes via 6 structured API endpoints.
What is the TCDB API?
The TCDB API gives developers structured access to trading card data from the Trading Card Database across 6 endpoints. Use list_sets to browse sets by year and sport, get_checklist to retrieve every card in a set with notations like RC, SP, and AU, or search_cards to find individual cards by player name and set name across all years. Each card object returns identity fields — sid, cid, and a canonical ViewCard URL — that chain directly into detail and pricing endpoints.
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 Checklists
list_sets accepts year, sport, and an optional query substring filter, returning an array of set summaries with sid, name, url, sport, and year. That sid feeds directly into get_checklist, which pages through all cards in a set and returns each card's number, name, team, notations, sid, cid, and url. get_set_details goes further: it fetches the base checklist plus up to limit_inserts insert and parallel checklists, each classified as 'insert' or 'parallel' with a parent_sid reference. Because each insert fetch adds latency, use offset_inserts and limit_inserts to paginate through total_inserts_parallels in batches.
Card Search and Pricing
search_cards accepts query (player or character name), set_name, year, sport, and page, returning up to 100 results per page with year, set_name, manufacturer, card_number, player_name, parallel_variation, and url. At least one of query or set_name is required. get_set_prices takes a sid and optional page and returns cards that have listed prices, with fields including card_number, name, notations, variation, card_url, image_url, and a prices object covering Median Raw, Avg. Grade 9, and Avg. Grade 10.
Individual Card Details
get_card_details resolves a single card by card_number plus either sid or the combination of year, set_name, and optionally sport. Supply cid when multiple checklist rows share the same card number to pin the exact card. The response includes front and back images (each with side, url, and alt), tags, team, year, sport, set_name, title, median price, and the matching cid and sid for further lookups.
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 set registry tool that lists every 2024 baseball set and links to its full checklist using
list_setsandget_checklist. - Track rookie card (
RCnotation) inventory across a specific set by filteringget_checklistresults on thenotationsfield. - Pull Median Raw, Avg. Grade 9, and Avg. Grade 10 prices for every card in a set with
get_set_pricesto power a collection valuation tool. - Index all insert and parallel subsets for a given product using
get_set_detailswith paginatedoffset_insertsandlimit_inserts. - Search for a specific player's cards across all years and manufacturers using
search_cardswith aqueryparameter. - Display front and back card images alongside team, year, and notation data in a collector app using
get_card_details. - Compare parallel variations within a set by chaining
search_cardsresults toget_card_detailsusing the returnedurlfield.
| 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 notations does `get_checklist` return, and what do they mean?+
cards array includes a notations field containing abbreviations as they appear on TCDB, such as RC (Rookie Card), SP (Short Print), AU (Autograph), and VAR (Variation). The field is a string and may contain multiple notation codes for a single card.Does `get_set_prices` return prices for every card in a set?+
get_set_prices only includes cards that have at least one listed price on TCDB. Cards with no price data are omitted from results. The total_pages field in the response tells you how many pages of priced cards exist for that sid.Does the API expose sold-listing history or population report data?+
get_set_prices and card attributes from get_card_details, but historical sale records and graded population counts are not included. You can fork this API on Parse and revise it to add an endpoint targeting that data.How should I handle sets with a large number of inserts and parallels?+
get_set_details returns total_inserts_parallels so you know the full count upfront. Use offset_inserts combined with limit_inserts to retrieve insert and parallel checklists in smaller batches, since each additional insert fetched increases response time. The base checklist is always returned regardless of the insert pagination parameters.