The official PHP SDK for the TCG Price Lookup API — live trading card prices across Pokemon, Magic: The Gathering, Yu-Gi-Oh!, Disney Lorcana, One Piece TCG, Star Wars: Unlimited, and Flesh and Blood.
One API for every major trading card game. TCGPlayer market prices, eBay sold averages, and PSA / BGS / CGC graded comps — all in one place.
composer require tcgpricelookup/sdkRequires PHP 8.1+.
<?php
require __DIR__ . '/vendor/autoload.php';
use TcgPriceLookup\Client;
$client = new Client('tlk_live_...');
$results = $client->cards->search([
'q' => 'charizard',
'game' => 'pokemon',
'limit' => 5,
]);
foreach ($results['data'] as $card) {
echo $card['name'] . ' — ' . $card['set']['name'] . PHP_EOL;
}Sign up at tcgpricelookup.com/tcg-api. Free tier includes 10,000 requests per month with TCGPlayer market prices. Trader plan unlocks eBay sold averages, PSA / BGS / CGC graded prices, and full price history.
// Search
$client->cards->search([
'q' => 'blue-eyes white dragon',
'game' => 'yugioh', // pokemon | mtg | yugioh | onepiece | lorcana | swu | fab
'set' => 'lob',
'limit' => 20,
'offset' => 0,
]);
// Get one
$card = $client->cards->get('<card-uuid>');
// Daily price history (Trader plan)
$history = $client->cards->history('<card-uuid>', ['period' => '30d']);$sets = $client->sets->list(['game' => 'mtg', 'limit' => 50]);$games = $client->games->list();
foreach ($games['data'] as $game) {
echo $game['slug'] . ': ' . $game['count'] . ' cards' . PHP_EOL;
}Pass an ids array and the SDK auto-chunks into 20-ID batches:
$results = $client->cards->search([
'ids' => ['uuid1', 'uuid2', /* ... */],
]);use TcgPriceLookup\Exception\{
AuthenticationException,
PlanAccessException,
NotFoundException,
RateLimitException,
};
try {
$history = $client->cards->history('<uuid>', ['period' => '1y']);
} catch (AuthenticationException $e) {
echo "Bad API key\n";
} catch (PlanAccessException $e) {
echo "History requires Trader plan — upgrade at tcgpricelookup.com/tcg-api\n";
} catch (NotFoundException $e) {
echo "Card not found\n";
} catch (RateLimitException $e) {
echo "Rate limited. Quota: {$client->rateLimit['remaining']}/{$client->rateLimit['limit']}\n";
}$client = new Client('tlk_live_...', [
'base_url' => 'https://api.tcgpricelookup.com/v1',
'timeout' => 60.0,
'user_agent' => 'my-app/1.0',
]);- tcglookup-js — JavaScript / TypeScript
- tcglookup-py — Python
- tcglookup-go — Go
- tcglookup-rs — Rust
- tcglookup CLI — terminal client
- tcg-api-examples — runnable code samples in 8 languages
- tcg-discord-bot — self-hosted Discord bot with slash commands
The full developer ecosystem index lives at awesome-tcg.
MIT — see LICENSE.
Built by TCG Price Lookup. Get a free API key at tcgpricelookup.com/tcg-api.