Official Python SDK for the CardShowData TCG pricing API
Project description
CardShowData Python SDK
Official Python client for the CardShowData TCG pricing API.
Install
pip install cardshowdata
Quick Start
from cardshowdata import CardShowData
client = CardShowData(api_key="csd_live_...")
# Get a card by pretty ID
card = client.cards.get("pk_bs_004")
print(card.name) # "Charizard"
print(card.image) # "https://images.cardshowdata.com/..."
# Search cards
page = client.cards.search(tcg="pk", q="name:charizard")
for card in page.data:
print(f"{card.name} — {card.expansion.name}")
# Get pricing (all values in cents)
price = client.pricing.get("aaaa-bbbb-cccc-dddd")
print(price.market_price_cents) # 12500
# Bulk pricing
prices = client.pricing.bulk(["uuid1", "uuid2", "uuid3"])
# Browse the catalog
tcgs = client.catalog.list_tcgs()
sets = client.catalog.list_sets("pk")
Async
from cardshowdata import AsyncCardShowData
async with AsyncCardShowData(api_key="csd_live_...") as client:
card = await client.cards.get("pk_bs_004")
async for product in client.catalog.list_products_all("pk"):
print(product.product_name)
Auto-Pagination
Endpoints with pagination have _all() methods that automatically fetch every page:
# Offset-paginated (cards)
for card in client.cards.search_all(tcg="pk", q="name:pikachu"):
print(card.name)
# Cursor-paginated (catalog products, pricing changes)
for product in client.catalog.list_products_all("pk"):
print(product.pretty_id)
for change in client.pricing.changes_all(since="2026-04-01T00:00:00Z"):
print(f"{change.pretty_id}: {change.pct_change}%")
Resources
| Resource | Methods |
|---|---|
client.cards |
get(), search(), search_all(), list_by_expansion(), get_ebay_sales() |
client.pricing |
get(), bulk(), history(), changes(), changes_all() |
client.catalog |
list_tcgs(), list_sets(), get_taxonomy(), list_products(), list_products_all(), export_csv(), resolve(), search() |
client.grading |
get(), history(), changes(), changes_all() |
client.lifecycle |
get() |
client.usage |
get() |
client.sales |
submit(), submit_batch(), submit_csv() |
client.feedback |
submit() |
client.onboarding |
quickstart() |
Error Handling
from cardshowdata import NotFoundError, RateLimitError
try:
card = client.cards.get("nonexistent")
except NotFoundError:
print("Card not found")
except RateLimitError as e:
print(f"Rate limited — retry after {e.retry_after}s")
Errors: AuthenticationError (401), PermissionError (403), NotFoundError (404), RateLimitError (429), ApiError (5xx).
Configuration
client = CardShowData(
api_key="csd_live_...", # or set CSD_API_KEY env var
base_url="https://api.cardshowdata.com", # default
timeout=30, # seconds
max_retries=3, # auto-retry on 429/5xx
)
Rate limit info is available after any request:
print(client.rate_limit.remaining) # requests left this minute
Requirements
- Python 3.10+
- httpx 0.27+
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cardshowdata-2.0.0.tar.gz.
File metadata
- Download URL: cardshowdata-2.0.0.tar.gz
- Upload date:
- Size: 34.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b309e7e46164204f5499e0df627db991acb536db54105ef29fc1e6531017b19
|
|
| MD5 |
6ecc96e1a54ad10cddc36e4f19d3fc0e
|
|
| BLAKE2b-256 |
56d8096b6a30a6c491a44c23ecf2c3555fd6de2d944f03f430faf79b39bbed27
|
File details
Details for the file cardshowdata-2.0.0-py3-none-any.whl.
File metadata
- Download URL: cardshowdata-2.0.0-py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53f6961912ec2cbf467275e918707cd19842e224d0444a92da05077ae12cc328
|
|
| MD5 |
02f8df9911e4460a7ac376434a2126e1
|
|
| BLAKE2b-256 |
093ff1b34c20aa0b669420b2d6534a1ac54601dece09d88b16e1b4d1aaee2155
|