Skip to content

Quick Start

Get up and running with TCG API in under 2 minutes.

Terminal window
curl -X POST "https://api.tcgapi.dev/v1/auth/register" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "your-secure-password"}'
Terminal window
# Login first (save the session cookie)
curl -X POST "https://api.tcgapi.dev/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "your-secure-password"}' \
-c cookies.txt
# Create an API key
curl -X POST "https://api.tcgapi.dev/v1/keys" \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"name": "my-app"}'

Response:

{
"data": {
"id": "abc123",
"key": "tcg_live_a1b2c3d4e5f6...",
"name": "my-app",
"tier": "free"
}
}

Save your API key — it’s only shown once.

Terminal window
# List all supported games
curl "https://api.tcgapi.dev/v1/games"
# Search for cards (requires API key)
curl "https://api.tcgapi.dev/v1/search?q=charizard" \
-H "X-API-Key: tcg_live_a1b2c3d4e5f6..."
Terminal window
# Get all Pokemon sets
curl "https://api.tcgapi.dev/v1/games/pokemon/sets" \
-H "X-API-Key: YOUR_KEY"
# Get cards in a specific set
curl "https://api.tcgapi.dev/v1/sets/123/cards" \
-H "X-API-Key: YOUR_KEY"
Terminal window
# Get a specific card with its current price
curl "https://api.tcgapi.dev/v1/cards/456" \
-H "X-API-Key: YOUR_KEY"
# Search with filters
curl "https://api.tcgapi.dev/v1/search?q=pikachu&game=pokemon&sort=price_desc" \
-H "X-API-Key: YOUR_KEY"
# Top price movers today
curl "https://api.tcgapi.dev/v1/prices/top-movers?game=pokemon" \
-H "X-API-Key: YOUR_KEY"
const API_KEY = 'tcg_live_...';
const BASE = 'https://api.tcgapi.dev/v1';
async function searchCards(query, game) {
const params = new URLSearchParams({ q: query });
if (game) params.set('game', game);
const resp = await fetch(`${BASE}/search?${params}`, {
headers: { 'X-API-Key': API_KEY },
});
return resp.json();
}
// Search for Charizard cards
const results = await searchCards('charizard', 'pokemon');
console.log(`Found ${results.meta.total} cards`);
import requests
API_KEY = "tcg_live_..."
BASE = "https://api.tcgapi.dev/v1"
HEADERS = {"X-API-Key": API_KEY}
# Search for cards
resp = requests.get(f"{BASE}/search", params={"q": "charizard", "game": "pokemon"}, headers=HEADERS)
data = resp.json()
print(f"Found {data['meta']['total']} cards")
for card in data["data"][:5]:
print(f" {card['name']} - ${card['price']['market_price']}")

The free tier gives you 100 requests per day — enough to test and prototype. Rate limit info is included in every response:

{
"rate_limit": {
"daily_limit": 100,
"daily_remaining": 95,
"daily_reset": "2026-02-20T00:00:00.000Z"
}
}

Need more? See pricing for Pro (10K/day) and Business (100K/day) plans.