https://github.com/tcgdex/python-sdk
⚡️ TCGdex Python SDK for Pokémon TCG data | Async • Zero config • Multi-language
https://github.com/tcgdex/python-sdk
api async card pdm pokemon pokemon-api pokemon-cards python sdk tcg tcgdex trading
Last synced: 11 months ago
JSON representation
⚡️ TCGdex Python SDK for Pokémon TCG data | Async • Zero config • Multi-language
- Host: GitHub
- URL: https://github.com/tcgdex/python-sdk
- Owner: tcgdex
- Created: 2024-08-29T14:53:01.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-03T20:31:47.000Z (over 1 year ago)
- Last Synced: 2025-03-23T09:48:28.842Z (about 1 year ago)
- Topics: api, async, card, pdm, pokemon, pokemon-api, pokemon-cards, python, sdk, tcg, tcgdex, trading
- Language: Python
- Homepage: https://tcgdex.dev/sdks/python
- Size: 576 KB
- Stars: 6
- Watchers: 1
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TCGdex Python SDK
A fast, type-safe Python SDK for the TCGdex API. Query Pokémon Trading Card Game data easily. 🚀
```python
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
```bash
pip install tcgdex-sdk
```
## 🚀 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](https://github.com/tcgdex/cards-database/blob/master/interfaces.d.ts#L1-L5)
- **Rich Data**: Access cards, sets, series, rarities, and more
- **Lightweight**: Minimal dependencies (only [dacite](https://github.com/konradhalas/dacite))
## 🎯 Quick Examples
### Find Cards by Various Criteria
```python
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
```python
# 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
```python
sdk.card # Core card data
sdk.rarity # Card rarities
sdk.hp # HP values
sdk.illustrator # Card illustrators
```
### Game Mechanics
```python
sdk.type # Pokémon types
sdk.energyType # Energy types
sdk.retreat # Retreat costs
sdk.stage # Evolution stages
```
### Card Details
```python
sdk.variant # Card variants
sdk.suffix # Card suffixes
sdk.regulationMark # Regulation marks
sdk.dexId # Pokédex IDs
```
### Collections
```python
sdk.set # Card sets
sdk.serie # Card series
```
## 🌐 Language Support
```python
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](https://github.com/tcgdex/cards-database/blob/master/interfaces.d.ts#L1-L5)_
__
## 🤝 Contributing
We love contributions! Here's how:
1. 🍴 Fork it
2. 🌿 Create your feature branch (`git checkout -b feature/amazing`)
3. 🔧 Make your changes
4. 🚀 Push to the branch (`git push origin feature/amazing`)
5. 🎉 Open a PR
## 📘 Documentation
- [Full API Documentation](https://www.tcgdex.dev)
- [Python SDK Guide](https://www.tcgdex.dev/sdks/python)
## 💬 Community & Support
- [Discord Server](https://discord.gg/peACSRMZ7V) - Get help and discuss features
- [GitHub Issues](https://github.com/tcgdex/python-sdk/issues) - Bug reports and feature requests
## 📜 License
MIT © [TCGdex](https://github.com/tcgdex)