ブログに戻る
開発者リソース/2026年1月28日/15 分で読める

PokeTrace API開発者ガイド

PokeTrace APIは60,000+枚以上のポケモンカードのリアルタイム価格データを提供します。このガイドでは、APIをアプリケーションに統合するために必要なすべてをカバーします:認証、エンドポイント、レスポンス形式、エラーハンドリング、本番環境のベストプラクティス。

JSONレスポンスデータを含むPokeTrace API統合を表示するコードエディター
米国とEU市場のリアルタイム価格データでポケモンカードアプリケーションを構築

PSA、BGS、CGCの鑑定価格に加え、TCGPlayer、eBay、CardMarketからの未鑑定カード価格にアクセスできます。

01

クイックスタート

3ステップで開始できます:(1)poketrace.com/dashboardでアカウントを作成、(2)APIキーを生成、(3)リクエストにX-API-Keyヘッダーを追加。これでカードデータのクエリを開始する準備が整いました。

すべてのAPIリクエストのベースURLはhttps://api.poketrace.com/v1です。すべてのエンドポイントにはX-API-Keyヘッダーによる認証が必要です。APIはすべてのエンドポイントで一貫した構造のJSONレスポンスを返します。

APIの状態はstatus.poketrace.comで確認できます。WebSocketリアルタイム更新(Scaleプランのみ)については、APIキーを使用してwss://api.poketrace.com/wsに接続してください。

02

認証

すべてのAPIリクエストには、X-API-Keyヘッダーで渡されるAPIキーが必要です。キーは無料で作成でき、レート制限はキーごとではなくアカウントごとに適用されます—クォータを分割することなく、異なるプロジェクト用に複数のキーを作成できます。

Steps

  1. 1.poketrace.com/dashboardでサインアップ
  2. 2.「作成」をクリックして新しいAPIキーを生成
  3. 3.キーをコピー(形式:pc_xxxxxxxx)
  4. 4.リクエストヘッダーにX-API-Key: YOUR_KEYを含める
cURL
curl -H "X-API-Key: pc_your_key" https://api.poketrace.com/v1/cards
JavaScript
fetch('https://api.poketrace.com/v1/cards', {
  headers: { 'X-API-Key': 'pc_your_key' }
})
Python
APIキーを公開リポジトリにコミットしないでください。環境変数を使用してください:Node.jsではprocess.env.POKETRACE_API_KEY、Pythonではos.environ['POKETRACE_API_KEY']。
03

APIエンドポイント

APIは4つのコアエンドポイントを提供します。カードは市場ごとに分けられています—USカードにはTCGPlayerとeBayのデータがあり、EUカードにはCardMarketのデータがあります。

GET /v1/cards

ページネーションとフィルター付きでカードを一覧表示します。完全な価格情報なしの基本カード情報を返します。

Params: limit(最大100)、cursor、set、search、card_number、variant、market(US/EU)、has_graded

GET /v1/cards?market=US&set=base-set&limit=20
Response:
{
  "data": [{
    "id": "019bff77-befa-771d-bab0-f5909f0a78c9",
    "name": "Charizard",
    "cardNumber": "4/102",
    "set": { "slug": "base-set", "name": "Base Set" },
    "variant": "Holofoil",
    "rarity": "Rare Holo",
    "market": "US",
    "currency": "USD"
  }],
  "pagination": { "hasMore": true, "nextCursor": "YnNfNQ==", "count": 1 }
}

GET /v1/cards/:id

ソースとティア別の価格を含む完全なカード詳細を取得します。USカードにはebay(全ティア)+ tcgplayer(未鑑定のみ)が含まれます。EUカードにはcardmarket(過去の平均値付き価格トレンド)+ cardmarket_unsold(ティア/国別の内訳付きアクティブリスティング)が含まれます。

GET /v1/cards/019bff77-befa-771d-bab0-f5909f0a78c9
Response:
// USカード
{
  "data": {
    "id": "019bff77-befa-771d-bab0-f5909f0a78c9",
    "name": "Charizard",
    "market": "US",
    "currency": "USD",
    "prices": {
      "ebay": {
        "PSA_10": { "avg": 5200, "low": 4800, "high": 5600, "saleCount": 47 },
        "NEAR_MINT": { "avg": 890, "low": 750, "high": 1050, "saleCount": 156 }
      },
      "tcgplayer": {
        "NEAR_MINT": { "avg": 420, "low": 380, "high": 480, "saleCount": 89 }
      }
    }
  }
}

// EUカード
{
  "data": {
    "id": "eu_273550",
    "name": "Charizard",
    "market": "EU",
    "currency": "EUR",
    "prices": {
      "cardmarket": { "avg": 385, "avg1d": 380, "avg7d": 375, "avg30d": 370 },
      "cardmarket_unsold": {
        "NEAR_MINT": { "avg": 420, "low": 350, "high": 890, "saleCount": 125, "country": { "DE": { "avg": 410 }, "FR": { "avg": 450 } } }
      }
    }
  }
}

GET /v1/sets

メタデータ付きですべてのカードセットを一覧表示します。セットのslugを使用してカードをフィルタリングします。

Params: search、game(pokemon、pokemon-japanese)、limit、cursor

GET /v1/sets?search=base&limit=5
Response:
{
  "data": [
    { "slug": "base-set", "name": "Base Set", "releaseDate": "1999-01-09", "cardCount": 102 },
    { "slug": "base-set-2", "name": "Base Set 2", "releaseDate": "2000-02-24", "cardCount": 130 }
  ],
  "pagination": { "hasMore": true, "nextCursor": "YmFzZS1zZXQtMg==", "count": 2 }
}

GET /v1/auth/info

APIキー情報と使用状況の統計を取得します。残りリクエスト数、リセット時間、プラン詳細を確認できます。

GET /v1/auth/info
Response:
{
  "data": {
    "key": "pc_a1b2c3d4...",
    "name": "Production",
    "active": true,
    "createdAt": "2026-01-17T10:00:00Z",
    "lastUsedAt": "2026-01-17T12:30:00Z",
    "user": {
      "plan": "Free",
      "remaining": 208,
      "limit": 250,
      "resetsAt": "2026-01-18T00:00:00Z"
    }
  }
}

GET /v1/cards/:id/prices/:tier/history

特定のティアの価格履歴データを取得します。チャートやトレンド分析に便利です。

Params: period(7d、30d、90d、1y、all)、limit、cursor

GET /v1/cards/019bff77.../prices/PSA_10/history?period=30d
Response:
{
  "data": [
    { "date": "2026-01-27", "source": "ebay", "avg": 5200, "low": 4800, "high": 5600, "saleCount": 3 },
    { "date": "2026-01-26", "source": "ebay", "avg": 5150, "low": 4750, "high": 5500, "saleCount": 5 }
  ],
  "pagination": { "hasMore": true, "nextCursor": "MjAyNi0wMS0yNQ==", "count": 2 }
}
04

レート制限

レート制限はキーごとではなくアカウントごとに適用されます。すべてのレスポンスには現在の使用状況を示すヘッダーが含まれます。

Free

250 / day

USのみ

未鑑定コンディションのみ

Pro

10,000 / day

US + EU

未鑑定 + 鑑定(PSA、BGS、CGC)

Scale

100,000 / day

US + EU

未鑑定 + 鑑定 + WebSocket

Response Headers

  • X-RateLimit-Limit — プランの1日あたりのリクエスト上限
  • X-RateLimit-Remaining — 今日の残りリクエスト数
  • X-RateLimit-Reset — 制限がリセットされるISO8601タイムスタンプ
  • X-Plan — 現在のプラン(Free、Pro、Scale)
レスポンスを積極的にキャッシュしてください。価格は数時間ごとに更新されます—15〜60分間キャッシュすることでAPIコールを大幅に削減できます。
05

完全なコード例

これらの例をコピー&ペーストして始めましょう。YOUR_KEYを実際のAPIキーに置き換えてください。

JavaScript / Node.js

const API_KEY = process.env.POKETRACE_API_KEY;
const BASE_URL = 'https://api.poketrace.com/v1';

async function getCard(cardId) {
  const response = await fetch(`${BASE_URL}/cards/${cardId}`, {
    headers: { 'X-API-Key': API_KEY }
  });
  
  if (!response.ok) {
    const error = await response.json();
    throw new Error(error.message);
  }
  
  return response.json();
}

async function searchCards(query, market = 'US') {
  const params = new URLSearchParams({ search: query, market, limit: '20' });
  const response = await fetch(`${BASE_URL}/cards?${params}`, {
    headers: { 'X-API-Key': API_KEY }
  });
  return response.json();
}

// Usage
const card = await getCard('019bff77-befa-771d-bab0-f5909f0a78c9');
console.log(`${card.data.name}: $${card.data.prices.ebay.PSA_10.avg} (PSA 10)`);

Python

cURL

# Get a single card
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards/019bff77-befa-771d-bab0-f5909f0a78c9"

# Search for cards
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards?search=charizard&market=US&limit=10"

# List all sets
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/sets?limit=50"

# Check your usage
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/auth/info"

# Get price history
curl -H "X-API-Key: YOUR_KEY" \
  "https://api.poketrace.com/v1/cards/019bff77.../prices/PSA_10/history?period=30d"
06

エラーハンドリング

APIは標準のHTTPステータスコードを使用します。すべてのエラーレスポンスにはerrorとmessageフィールドが含まれます。

400

Bad Request

パラメータが無効

{ "error": "Invalid limit parameter", "message": "Limit must be between 1 and 100" }
401

Unauthorized

APIキーがないか無効

{ "error": "API key required", "message": "Include your API key in the X-API-Key header" }
403

Forbidden

プランのアップグレードが必要

{ "error": "Pro plan required", "message": "Graded card prices require a Pro plan.", "code": "UPGRADE_REQUIRED" }
404

Not Found

リソースが存在しない

{ "error": "Card not found", "message": "No card exists with this ID" }
429

Rate Limited

リクエストが多すぎる

{ "error": "Rate limit exceeded", "message": "Daily limit reached. Resets at 2026-01-18T00:00:00Z", "retryAfter": 3600 }
429エラーの場合、retryAfterフィールド(秒)またはX-RateLimit-Resetヘッダーを使用してください。指数バックオフを実装してください:リトライ間隔を1秒、次に2秒、次に4秒と増やします。
07

よくある質問

USカードとEUカードの違いは何ですか?

カードは市場固有です。USカードにはTCGPlayerとeBayの価格がUSDで含まれます。EUカードにはCardMarketの価格がEURで、国別(DE、FR、ITなど)の内訳付きで含まれます。各カードは1つの市場にのみ属します。

どの鑑定会社がサポートされていますか?

PSA、BGS、CGC、ACE、TAGなど15社の鑑定会社をサポートしています。鑑定価格はProおよびScaleプランで利用可能です。各カードのgradedOptionsフィールドに利用可能なグレードが表示されます。

リアルタイムの価格更新を取得するにはどうすればよいですか?

WebSocket接続はScaleプランで利用可能です。APIキーを使用してwss://api.poketrace.com/wsに接続してください。特定のカードを購読すると、新しい販売が発生したときに即座に価格更新を受け取ることができます。

商用プロジェクトにAPIを使用できますか?

はい。無料ティアは非商用利用が許可されています。ProとScaleプランには商用ライセンスが含まれています。詳細については利用規約をご確認ください。

価格データはどの程度正確ですか?

価格はTCGPlayer、eBay、CardMarketからの検証済み完了販売に基づいています。数時間ごとに更新されます。各価格ティアには信頼度スコア(high、medium、low)とsaleCountが含まれているため、信頼性を評価できます。

今すぐ構築を始めましょう

無料のAPIキーを取得して、ポケモンカードアプリケーションの構築を始めましょう。1日250リクエスト、クレジットカード不要。

無料APIキーを取得