$ ./tcg-discord-bot --start
Live TCG Prices
in Your Discord Server
A fully self-hosted, open-source Discord bot that brings real-time trading card prices to any server. Slash commands for price lookup, alerts, portfolio tracking, and leaderboards — across all 8 supported TCG games.
Everything Your Server Needs
Six feature categories, dozens of commands. Self-hosted means you own your data.
Price Lookup
Search by name with autocomplete, fetch by UUID, cross-game search, side-by-side comparison, random card pulls, and full set browsing.
Price History
Chart price history over 7d, 30d, 90d, or 1 year. Rendered as an embed image directly in Discord. Available on the Trader plan.
Price Alerts
Watch any card and get notified when it crosses a price threshold. Polls hourly, 24h cooldown, pause/resume without losing your alert.
Portfolio Tracking
Track your collection with live valuations, total value, and P&L vs your purchase price. Scoped per user and server.
Leaderboards
Server-wide portfolio leaderboards by live value, and most-watched card leaderboards by alert count. Built-in community competition.
Server Admin
Set a default game, localize responses in 9 languages, enable daily market reports at 09:00 UTC, and get new set release notifications.
Full Command Reference
› Lookup Commands
| Command | Description |
|---|---|
| /price <card> [game] | Search by name with autocomplete + pagination buttons |
| /card <id> | Fetch card by UUID with full price block (every condition, eBay, PSA/BGS/CGC) |
| /find <card> | Cross-game search — parallel query across all 8 games simultaneously |
| /compare <card1> <card2> | Side-by-side price comparison with percentage delta |
| /random [game] | Pull a random card, optional game filter |
| /set <set> | Browse cards in a set with autocomplete + pagination |
› History Trader Plan
| Command | Description |
|---|---|
| /history <card> [period] | Price history chart (7d / 30d / 90d / 1y) rendered as an embed image |
› Alert Commands
| Command | Description |
|---|---|
| /alert add card:<name> price:<usd> direction:[above|below] [channel] | Watch a card and notify when it crosses a price threshold |
| /alert list | Show all active alerts for your user |
| /alert remove id:<n> | Delete an alert by ID |
| /alert pause id:<n> | Pause an alert without deleting it |
| /alert resume id:<n> | Resume a paused alert |
Alerts poll hourly (configurable via ALERTS_CRON). 24h cooldown between notifications per card.
› Portfolio Commands
| Command | Description |
|---|---|
| /portfolio add card:<name> [qty] [purchase_price] | Add a card with optional quantity and purchase price |
| /portfolio show | Live valuations, total value, and P&L vs purchase price |
| /portfolio remove card:<name> | Remove a card from your portfolio (with autocomplete) |
Portfolios are scoped per (user, guild) — each server has its own portfolio per member.
› Server-Wide Commands
| Command | Description |
|---|---|
| /leaderboard portfolios | Top portfolio holders ranked by live total value |
| /leaderboard cards | Most-watched cards ranked by alert count |
| /games | List all supported games and their catalog sizes |
› Admin Commands Manage Server permission required
| Command | Description |
|---|---|
| /config show | Display current server configuration |
| /config default-game <game> | Set the default game filter for all commands |
| /config locale <locale> | Set response language: en, pl, fr, de, es, it, ja, nl, pt-BR |
| /config daily-report channel:<ch> enabled:<bool> | Daily market report posted at 09:00 UTC to a chosen channel |
| /config notify-set-releases channel:<ch> | Post a message when new sets are released |
What It Looks Like
Example bot response for /price charizard
Charizard — Base Set (PSA 10)
Pokemon · Base Set · Holo Rare
Quick Start
Three steps from zero to a running bot.
Get a Bot Token
Create an application at discord.com/developers, add a Bot, and copy your token. Enable the Message Content and Server Members intents.
Get an API Key
Sign up at tcgpricelookup.com for a free key (200 req/day) or Trader plan ($14.99/mo) for price history access. Set it as TCG_API_KEY in your env.
Deploy
Clone the repo, copy .env.example to .env, add your keys, and run with Docker or push to Railway/Render/fly.io.
# Clone and configure $ git clone https://github.com/TCG-Price-Lookup/tcg-discord-bot $ cd tcg-discord-bot && cp .env.example .env # Edit .env: set DISCORD_TOKEN and TCG_API_KEY # Run with Docker $ docker compose up -d
Deployment Options
Docker
Dockerfile included. Run anywhere Docker runs.
docker compose up -d Railway
Connect your GitHub repo, set env vars, deploy.
Render
Free tier available. Background worker service type.
fly.io
Global edge deployment. fly launch and done.
- ›Price lookup commands
- ›Alerts & portfolio
- ›Leaderboards
- ›Everything in Free
- ›/history command
- ›7d / 30d / 90d / 1y charts
- ›Everything in Trader
- ›Priority support
- ›SLA available
Ready to add TCG prices to your server?
Grab a free API key and deploy the bot in minutes. Open source, self-hosted, zero vendor lock-in.