The TCID Registry API provides programmatic access to the Trading Card Identification Number registry. The API returns structured metadata for every registered card type, keyed by its permanent TCID identifier.
The TCID identifier itself is always free to reference. API membership unlocks enriched metadata, batch processing, and commercial use rights.
Authentication
All API requests require a Bearer token passed in the Authorization header. API keys are issued per organization at the time of membership enrollment.
Authorization: Bearer YOUR_API_KEYxxxxxxxxxxxxxxxxFree tier users access the registry via the website lookup at tradingcardid.org/lookup and do not receive API keys. Free Registered and all paid tiers receive an API key. Request a free API key to get started.
Base URL
https://api.tradingcardid.org/v1
All endpoints are versioned. The current version is v1. Breaking changes will be introduced in a new version with a minimum 90-day deprecation notice.
Access Tiers
TCID API access is governed by membership tier. All tiers include the right to reference TCID identifiers in your own systems.
| Tier | Lookups / Month | API Key | Batch / Bulk | Price |
|---|---|---|---|---|
| Free | Unlimited | No | No | $0; website only |
| Free Registered | 5,000 | Yes | No | $0; registration required |
| Bronze | 10,000 | Yes | Yes | Contact Us |
| Silver | 100,000 | Yes | Yes | Contact Us |
| Gold | Unlimited | Yes | Yes | Contact Us |
Dealers, appraisers, insurers, and individual collectors can access the full registry API for free. Registration takes under a minute and gives you 5,000 lookups per month at no cost.
Get Free API KeyThe Free tier requires no account and is limited to website lookup at tradingcardid.org/lookup; no API key is issued. Free Registered adds a personal API key with full metadata access, but no parse, mapper, or batch/bulk operations. Bronze and above are for commercial integrations requiring bulk access or higher volume. Contact us for paid tier pricing.
Endpoints
Returns full metadata for a single card type identified by its TCID.
| Parameter | Type | Description |
|---|---|---|
| tcid | string | The TCID to resolve (e.g., SCXA7KDPJPK) required |
GET https://api.tradingcardid.org/v1/cards/SCXA7KDPJPK Authorization: Bearer YOUR_API_KEY
{
"tcid": "SCXA7KDPJPK",
"sport": "Baseball",
"manufacturer": "Topps",
"season": "2025",
"product": "2025 Topps Series 1",
"card_number": "1",
"player": "Aaron Judge",
"team": "New York Yankees",
"card_type": "Base",
"parallel": "Base",
"print_run": null,
"autograph": false,
"relic": false
}Search the registry by player, product, manufacturer, or sport. Returns paginated results.
| Parameter | Type | Description |
|---|---|---|
| player | string | Player name (partial match supported) |
| sport | string | Baseball, Football, Basketball, Hockey |
| manufacturer | string | Topps, Panini, Leaf, Upper Deck |
| season | string | e.g. 2025, 2024-25 |
| product | string | Product name (partial match supported) |
| autograph | boolean | Filter to autograph cards |
| page | integer | Page number (default: 1) |
| per_page | integer | Results per page (default: 25, max: 25 for Free Registered; max: 100 for Bronze and above) |
GET https://api.tradingcardid.org/v1/cards/search?player=Judge&sport=Baseball&autograph=true Authorization: Bearer YOUR_API_KEY
{
"results": [ /* array of card objects */ ],
"count": 12,
"page": 1,
"per_page": 25,
"tier_info": {
"tier": "FREE_REGISTERED",
"requests_used": 14,
"requests_remaining": 4986
}
}Each result object also includes match_confidence (0–100) and match_status (Exact, High Confidence, Review Required, Not Found) scored against your query parameters. Results are sorted by confidence descending.
Data Fields
All fields are returned for Free Registered and above. The free website lookup at tradingcardid.org/lookup does not provide programmatic API access. image_ref_url and notes are enrichment fields and may be null for registry entries not yet fully enriched.
| Field | Type | Description |
|---|---|---|
| tcid | string | The permanent TCID identifier |
| sport | string | Sport (Baseball, Football, Basketball, Hockey) |
| manufacturer | string | Card manufacturer |
| season | string | Product season or year |
| product | string | Product name |
| subset | string | null | Set or subset within the product (e.g., "Base", "Base Legends Prizms Ruby Wave") |
| card_number | string | Card number within the set |
| player | string | Player name |
| team | string | Team at time of card production |
| card_type | string | Base, Parallel, Autograph, Rookie, etc. |
| parallel | string | null | Parallel name, if applicable |
| autograph | boolean | Whether the card includes an autograph |
| relic | boolean | Whether the card includes a memorabilia relic |
| print_run | integer | null | Numbered print run, if applicable (e.g. 10 for a /10 card) |
| image_ref_url | string | null | Manufacturer image reference URL |
| notes | string | null | Additional registry notes |
Error Codes
| HTTP Status | Code | Description |
|---|---|---|
| 400 | invalid_tcid | Malformed TCID format |
| 401 | unauthorized | Missing or invalid API key |
| 403 | tier_restricted | Endpoint not available on current tier |
| 404 | not_found | TCID not found in registry |
| 429 | rate_limited | Monthly lookup limit exceeded |
| 500 | server_error | Internal server error |
Rate Limits
Limits are enforced per API key per calendar month. Rate limit status is returned in response headers on all registry endpoints.
X-RateLimit-Tier: SILVER X-RateLimit-Limit: 100000 X-RateLimit-Remaining: 98312
Licensing
TCID identifiers are published under Creative Commons Attribution 4.0 International (CC BY 4.0). You may reference, store, and redistribute TCID identifiers in any system, commercial or otherwise, provided attribution is maintained.
API access is governed by the TCID API Terms of Service. Commercial use of enriched metadata (player names, product details, images) requires Bronze membership or above and compliance with manufacturer data terms.