A fast, type-safe Python SDK for the TCGdex API. Query Pokémon Trading Card Game data easily. 🚀
from tcgdexsdk import TCGdex # Fetch a card in one line card = await TCGdex().card.get("swsh3-136") card = TCGdex().card.getSync("swsh3-136") print(f"Found: {card.name} ({card.localId}/{card.set.cardCount.total})")
⚡️ Quick Install
🚀 Features
- Type-Safe: Full typing support for better IDE integration
- Async/Await: Built for modern Python applications and compatible with synchronous operations
- Zero Config: Works out of the box
- Multi-Language: Support for English, French, German, Japanese, Chinese, and more
- Rich Data: Access cards, sets, series, rarities, and more
- Lightweight: Minimal dependencies (only dacite)
🎯 Quick Examples
Find Cards by Various Criteria
sdk = TCGdex("en") # Get the cards made by the illustrator cards = await sdk.illustrator.get("5ban Graphics") cards = sdk.illustrator.getSync("5ban Graphics") # Get the data about the Sword & Shield serie by ID series = await sdk.serie.get("swsh") series = sdk.serie.getSync("swsh") # Get all cards with 110 HP hp_cards = await sdk.hp.get("110") hp_cards = sdk.hp.getSync("110") # List all available rarities rarities = await sdk.rarity.list() rarities = sdk.rarity.listSync() # List all cards with the name being "Furret" rarities = await sdk.card.list(Query().equal("name", "Furret")) rarities = sdk.card.listSync(Query().equal("name", "Furret"))
Working with Sets and Series
# Get set details darkness_ablaze = await sdk.set.get("Darkness Ablaze") # darkness_ablaze = sdk.set.getSync("Darkness Ablaze") print(f"Set: {darkness_ablaze.name} ({darkness_ablaze.cardCount.total} cards)") # Get series info swsh = await sdk.serie.get("swsh") # swsh = sdk.serie.getSync("swsh") print(f"Series: {swsh.name} ({len(swsh.sets)} sets)")
🛠 Available Endpoints
Card Data
sdk.card # Core card data sdk.rarity # Card rarities sdk.hp # HP values sdk.illustrator # Card illustrators
Game Mechanics
sdk.type # Pokémon types sdk.energyType # Energy types sdk.retreat # Retreat costs sdk.stage # Evolution stages
Card Details
sdk.variant # Card variants sdk.suffix # Card suffixes sdk.regulationMark # Regulation marks sdk.dexId # Pokédex IDs
Collections
sdk.set # Card sets sdk.serie # Card series
🌐 Language Support
from tcgdexsdk import TCGdex, Language # Using string sdk = TCGdex("en") # English sdk = TCGdex("fr") # French # Using enum (type-safe) sdk = TCGdex(Language.EN) sdk = TCGdex(Language.FR) # After creating the instance you can change at any time the language sdk.setLanguage(Language.FR) # or sdk.setLanguage("fr")
full list of languages available here
__
🤝 Contributing
We love contributions! Here's how:
- 🍴 Fork it
- 🌿 Create your feature branch (
git checkout -b feature/amazing) - 🔧 Make your changes
- 🚀 Push to the branch (
git push origin feature/amazing) - 🎉 Open a PR
📘 Documentation
💬 Community & Support
- Discord Server - Get help and discuss features
- GitHub Issues - Bug reports and feature requests
📜 License
MIT © TCGdex