はじめに

5分以内にTCG Price Lookup APIの使用を開始する方法。


1. APIキーを取得

tcgpricelookup.comでサインアップし、ダッシュボードから無料のAPIキーを取得してください。無料プランには1日200リクエストが含まれており、クレジットカードは不要です。

サインイン後、ダッシュボード → APIキーセクションに移動してください。キーは以下のような形式です:

tcg_live_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

このキーは秘密にしてください。バージョン管理にコミットしたり、クライアントサイドのコードに公開したりしないでください。

2. SDKをインストール

お好みの言語を選んで公式SDKをインストールしてください:

# JavaScript / TypeScript
npm install tcglookup

# Python
pip install tcglookup

# Go
go get github.com/TCG-Price-Lookup/tcglookup-go

# Rust
cargo add tcglookup

# PHP
composer require tcg-price-lookup/tcglookup

すべてのSDKは認証、リクエストのシリアライズ、エラー解析、レートリミットヘッダーを自動的に処理します。

3. 最初のリクエストを送信

各対応言語での最小限の例を示します:

// JavaScript / TypeScript
import { TCGLookup } from 'tcglookup';

const tcg = new TCGLookup({ apiKey: 'your-api-key' });

const results = await tcg.search('charizard', { game: 'pokemon', limit: 5 });
console.log(results.data);
// → ライブ市場価格を含むカードオブジェクトの配列
# Python
from tcglookup import TCGLookup

tcg = TCGLookup(api_key="your-api-key")

results = tcg.search("charizard", game="pokemon", limit=5)
for card in results.data:
    print(card.name, card.prices.market)
# curl
curl -H "X-API-Key: your-api-key" \
  "https://api.tcgpricelookup.com/v1/search?q=charizard&game=pokemon&limit=5"

APIが返すレスポンス

検索リクエストが成功した場合、レスポンスは以下のような構造になっています:

{
  "data": [
    {
      "id": "pokemon-sv4-charizard-ex-006",
      "name": "Charizard ex",
      "game": "pokemon",
      "set": "Paradox Rift",
      "setCode": "sv4",
      "number": "006",
      "rarity": "Double Rare",
      "image": "https://images.tcgpricelookup.com/pokemon/sv4/006.jpg",
      "prices": {
        "market": 42.50,
        "low": 35.00,
        "mid": 41.00,
        "high": 55.00,
        "conditions": {
          "near_mint": 42.50,
          "lightly_played": 38.25,
          "moderately_played": 34.00,
          "heavily_played": 29.75,
          "damaged": 21.25
        },
        "graded": {
          "psa_10": 125.00,
          "psa_9": 75.00,
          "bgs_9_5": 110.00,
          "cgc_9_5": 95.00
        }
      },
      "sources": ["tcgplayer", "ebay"],
      "updatedAt": "2026-04-10T12:00:00Z"
    }
  ],
  "total": 47,
  "limit": 5,
  "offset": 0
}

レスポンスの主要なフィールドについて:

  • data — リストエンドポイントではカードオブジェクトの配列、詳細エンドポイントでは単一のオブジェクト
  • total — 全ページを通じた一致カードの総数
  • limit / offset — リクエストに対応したページネーションパラメータ
  • prices.market — 複数のソースから集計された現在の市場価格(USD)
  • prices.conditions — Near Mintから Damagedまでのコンディション別価格
  • prices.graded — PSA、BGS、CGCグレーデッドカードの価格(データが利用可能な場合)

4. 特定のカードを取得

検索でカードIDを取得したら、そのカードの全詳細を取得できます:

const card = await tcg.getCard('pokemon-sv4-charizard-ex-006');
console.log(card.data.prices.graded.psa_10); // → 125.00

よくある注意点とヒント

検索結果のカードIDを使用してください。 カードIDは {game}-{setCode}-{slug} の形式に従います。手動でIDを作成しようとせず、検索エンドポイントで有効なIDを取得してください。

レスポンスを少なくとも5分間キャッシュしてください。 カード価格はリアルタイムではなく定期的に更新されます。同じカードに対してAPIを何度も叩くと、1日のクォータを無駄に消費します。

複数カードの取得にはバッチリクエストを優先してください。 10枚以上のカードの価格が必要な場合は、個別リクエストの代わりに POST /v1/cards/batch を使用してください。1回のバッチ呼び出しは1リクエストとしてカウントされます。

ページネーションにはtotalを確認してください。 total > limit + offset の場合、さらにページがあります。offsetlimit分増やして次のページを取得してください。

ブラウザのコードにAPIキーを公開しないでください。 API呼び出しはサーバーサイドで行い、結果をフロントエンドにプロキシしてください。

次のステップ

リクエストができるようになったら、ドキュメントの残りの部分を参照してください:

  • 認証 — 環境変数、セキュリティのベストプラクティス、キーの管理
  • APIエンドポイント — 検索、カード詳細、価格履歴、セット、バッチリクエストの完全リファレンス
  • レスポンス形式 — カードオブジェクトのすべてのフィールドの詳細な説明
  • エラーハンドリング — エラーとレートリミットの適切な処理方法
  • レートリミット — クォータ、ヘッダー、キャッシュ戦略、アップグレードオプション