認証

APIキーを使用してTCG Price Lookup APIリクエストを認証する方法。


APIキー

TCG Price Lookup APIへのすべてのリクエストにはAPIキーが必要です。すべてのリクエストの X-API-Key ヘッダーにAPIキーを含めてください:

curl -H "X-API-Key: your-api-key" \
  "https://api.tcgpricelookup.com/v1/search?q=charizard"

APIキーはアカウントとプランに紐付けられています。無料プランには1日200リクエストが含まれています。Trader(月額$14.99、1日10,000リクエスト)とBusiness(月額$89.99、1日100,000リクエスト)プランについては料金ページをご覧ください。

キーの取得方法

  1. tcgpricelookup.comでアカウントを作成
  2. ダッシュボード → APIキーに移動
  3. 新しいキーを生成をクリック
  4. キーをコピー — 全文が表示されるのは一度だけです

キーは以下のような形式です:

tcg_live_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

キーを安全に保管する

APIキーをソースコードにハードコードしないでください。 環境変数を使用してください:

# .env(.gitignoreに追加してください!)
TCG_API_KEY=tcg_live_sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# .gitignore
.env
.env.local
.env.*.local

実行時に環境からキーにアクセスします:

// Node.js
const apiKey = process.env.TCG_API_KEY;
# Python
import os
api_key = os.environ["TCG_API_KEY"]
# Shell
export TCG_API_KEY="tcg_live_sk_..."

SDKでの使用方法

すべての公式SDKは認証を自動的に処理します。初期化時にAPIキーを渡すと、以降のすべてのリクエストに含まれます:

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

const tcg = new TCGLookup({ apiKey: process.env.TCG_API_KEY });
const results = await tcg.search('black lotus');
# Python
import os
from tcglookup import TCGLookup

tcg = TCGLookup(api_key=os.environ["TCG_API_KEY"])
results = tcg.search("black lotus")
// Go
import (
    "os"
    tcg "github.com/TCG-Price-Lookup/tcglookup-go"
)

client := tcg.NewClient(tcg.WithAPIKey(os.Getenv("TCG_API_KEY")))
results, err := client.Search("black lotus", nil)
// Rust
use tcglookup::Client;

let client = Client::new(std::env::var("TCG_API_KEY").unwrap());
let results = client.search("black lotus", None).await?;
// PHP
use TCGPriceLookup\TCGLookup;

$tcg = new TCGLookup(['api_key' => getenv('TCG_API_KEY')]);
$results = $tcg->search('black lotus');

セキュリティのベストプラクティス

API呼び出しはサーバーサイドで行ってください。 APIキーはあなたのクォータ全体へのアクセスを付与します。ブラウザのJavaScriptで公開された場合、誰でも見つけてリクエストを消費できます。すべてのAPI呼び出しをバックエンド経由でルーティングし、結果をフロントエンドにプロキシしてください。

環境変数を使用してください。 キーをコードベース、gitにコミットされた設定ファイル、クライアントサイドのバンドルには入れないでください。ローカルでは .env ファイルを、本番環境ではホストのシークレット管理(例:Vercel環境変数、AWS Secrets Manager、Railwayシークレット)を使用してください。

定期的にキーをローテーションしてください。 APIキーはパスワードと同様に扱ってください。定期的にローテーションし、漏洩の疑いがある場合はすぐに再生成してください。

環境ごとに別々のキーを使用してください。 開発用と本番用に別々のキーを生成してください。開発用キーが漏洩した場合の影響範囲を最小限に抑えられます。

一般的な認証エラー

APIキーが未指定 — 401

{
  "error": {
    "code": "MISSING_API_KEY",
    "message": "The X-API-Key header is required.",
    "status": 401
  }
}

X-API-Key ヘッダーを含め忘れています。SDKがキーで初期化されていること、環境変数が読み込まれていることを確認してください。

APIキーが無効 — 401

{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid or expired.",
    "status": 401
  }
}

キーが存在しないか、無効化されています。ダッシュボードを開いて確認するか、再生成してください。

プランの制限 — 403

{
  "error": {
    "code": "PLAN_RESTRICTION",
    "message": "Price history requires a Trader plan or above.",
    "status": 403
  }
}

ご利用のプランでは、呼び出しているエンドポイントが利用できません。価格履歴はTraderまたはBusinessプランが必要です。プランをアップグレードしてください。

APIキーの管理

キーの再生成 — ダッシュボード → APIキー → 再生成に移動します。古いキーは即座に無効になるため、再生成前にすべてのデプロイを更新してください。

アクセスの無効化 — キーが漏洩した疑いがある場合は、ダッシュボードで無効化をクリックしてください。新しいキーを生成して再デプロイしてください。

使用状況の確認 — ダッシュボードには1日のリクエスト数と残りのクォータが表示されます。同じ情報は、すべてのAPIレスポンスの X-RateLimit-Remaining ヘッダーでリアルタイムに確認できます。