tcgpricelookup / sdk
PHP SDK for TCG Price Lookup — live trading card prices across Pokemon, MTG, Yu-Gi-Oh, Lorcana, One Piece, SWU, Flesh and Blood
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.5
Requires (Dev)
- phpunit/phpunit: ^10.0
README
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.
Install
composer require tcgpricelookup/sdk
Requires PHP 8.1+.
Quickstart
<?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; }
Get an API key
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.
API surface
Cards
// 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
$sets = $client->sets->list(['game' => 'mtg', 'limit' => 50]);
Games
$games = $client->games->list(); foreach ($games['data'] as $game) { echo $game['slug'] . ': ' . $game['count'] . ' cards' . PHP_EOL; }
Batch lookups
Pass an ids array and the SDK auto-chunks into 20-ID batches:
$results = $client->cards->search([ 'ids' => ['uuid1', 'uuid2', /* ... */], ]);
Error handling
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"; }
Configuration
$client = new Client('tlk_live_...', [ 'base_url' => 'https://api.tcgpricelookup.com/v1', 'timeout' => 60.0, 'user_agent' => 'my-app/1.0', ]);
Sister SDKs
- 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.
License
MIT — see LICENSE.
Built by TCG Price Lookup. Get a free API key at tcgpricelookup.com/tcg-api.