Skip to content
Public API · v1

Pokékipe Public API

ポケモン競技分析を無料で。Smogon が毎月公開する利用統計をベースに、毎月更新されます。ライトな用途ならアカウント不要。アカウント設定から個人キーを発行すれば、バルク取得時のレート制限の上限を引き上げられます。

  • エンドポイント

    100+

  • 対応フォーマット

    30+

  • 更新

    毎月

  • 認証

    任意

  • ライセンス

    CC BY 4.0

存在理由

この API は何で、何ではないか

/api/v1/ に対してコードを 1 行書く前に、知っておくべき 4 つのこと。

この API とは

ポケモン競技データに対する読み取り専用の JSON 層。「今月の Gen 9 OU、1500+ ELO のメタは?」「このトーナメントの Top Cut でこのポケモンを止めたのは誰?」といった問いに、安定して文書化された形で 1 リクエストで答えます。

データの出どころ

Smogon の月次バトルログ (公開されている chaos JSON)、公式トーナメントのフィード (Pokémon Company、VGC、Smogon Tour)、コミュニティ運営のイベントについては Limitless TCG などのコミュニティソース。Pokékipe はその上で取り込み、正規化、エンリッチを行い、整理した結果をこの API として公開しています。

この API ではないもの

Pokémon Showdown へのライブブリッジでも、対戦シミュレーターでも、ダメージ計算機のエンドポイントでも、チームビルダーでもありません。それらのツールはサイト本体にあります。API はその下のデータレイヤーです。

出典へのクレジット

クレジットは出典に。Smogon、chaos 形式の JSON を公開してくれているエクスポーター、そして毎月実際にプレイしているコミュニティ。このデータセットが存在するのは彼らのおかげです。Pokékipe はそれをクエリ可能にしているだけで、元データを所有しているわけではありません。

はじめに

30 秒でいちばん最初の呼び出し

フォーマット一覧を取得する、コピペで動く 3 つのサンプル。APIキー不要、セットアップ不要、サインアップ不要。言語タブを選んで、貼り付けて、実行するだけ。

curl -s https://pokekipe.com/api/v1/formats \
  | jq '.[0:3]'

パスは下のリファレンスにあるどのエンドポイントにも置き換えられます。最初の呼び出しはキャッシュが温まっていれば 1 秒以内に返ります。

認証

認証とレート制限

匿名の呼び出しでもライトな用途には十分です。アカウント設定から発行できる個人キー (無料) は、データを大量に取得するアナリストやツール開発者向けにレート制限の上限を引き上げます。キーは新しいエンドポイントを開放するものではなく、上限を上げるだけです。

匿名 (キーなし)

デフォルト

ヘッダーを何も付けずに呼び出してください。バケットは IP ごとなので、セッション中に数件のリクエストを送る程度の小さなスクリプトや LLM エージェントなら、まず制限には触れません。

  • アカウント不要、サインアップ不要、ヘッダー設定も不要。
  • IP ごとのバケット。アドホックなスクリプトや LLM エージェントの tool-use に向きます。
  • バルク取得を続けると 429 が返ります。そのときは個人キーに切り替えてください。

/ 分

60

/ 日

5,000

認証済み (個人キー使用)

バルク取得におすすめ

キーは X-API-Key (または Authorization: Bearer pk_live_…) で送ってください。匿名呼び出しと併用でき、キーは上限を引き上げるだけで、新しいエンドポイントを開放するわけではありません。

  • ユーザー単位のバケット。IP が変わってもカウントはリセットされません。
  • ルートごとの上限がすべて引き上がります。
  • アカウントごとに最大 5 個まで、いつでも失効可能。

/ 分

600

/ 日

100,000

全レスポンスに付くヘッダー

成功レスポンスにはすべて、下記のレート制限ヘッダーが付きます。クライアントはこれを見るだけでリトライなしに自分のペースを調整できます。レスポンスごとに 1 度読み、Remaining がゼロになる前、残り数件の段階で減速してください。

ヘッダー意味
X-RateLimit-Tierあなたが属するティア。匿名 (キーなし)、または認証済み (JWT または APIキーが解決済み)。
X-RateLimit-Limit-Minティア別の 1 分あたりの上限 (匿名 60、認証済み 600)。
X-RateLimit-Limit-Dayティア別の 1 日あたりの上限 (匿名 5 000、認証済み 100 000)。
X-RateLimit-Remaining-Min現在の 1 分ウィンドウで残っている呼び出し回数。ゼロが近づいたら減速してください。
X-RateLimit-Remaining-Day現在の 1 日ウィンドウで残っている呼び出し回数。毎日同じ時刻にリセットされます。
Retry-After429 のときだけ送信されます。リトライまでこの秒数だけ待機してください。1 分ウィンドウなら通常 60 秒未満です。

エラー

起こりうるエラー

標準の HTTP ステータスコードです。ボディは常に JSON で、原因を示す "detail" フィールドを含みます。4xx はリクエスト側の契約違反、5xx はこちらの問題 (バックオフしてリトライ) として扱ってください。

200

OK

OK。ボディはリファレンスに記載された JSON ペイロードです。空配列は「行がない」という意味であり、「欠損」ではありません。失敗ではなくデータとして扱ってください。

304

Not Modified

Not Modified。キャッシュヘッダーが検証されました。再パースは不要で、キャッシュ済みのボディをそのまま使えます。If-None-Match か If-Modified-Since を送ると自動で返ります。

400

Bad Request

Bad Request。クエリパラメータかボディの形が不正です。detail メッセージに該当のフィールド名が入っています。入力を直さずにリトライしないでください。

401

Unauthorized

Unauthorized。APIキーかセッションが必要なリクエストですが、いずれも提示されなかったか、認証情報が無効/失効しています。同じまま再送せず、認証情報を発行し直してください。

404

Not Found

Not Found。パスやリソースが存在しません。Pokémon ごとのルートでは、その Pokémon にまだ使用データがないだけのことが多く、こちらのタイポではありません。

429

Too Many Requests

Too Many Requests。レート制限の上限に達しました。Retry-After を読んで待ってください。指数バックオフは行儀がよいですが、ウィンドウが短いのでほぼ不要です。

500

Server Error

Internal Server Error。こちら側で何かが落ちました。数秒待って 1 回だけリトライしてください。続くようならリクエスト URL を添えて Discord で連絡をお願いします。

503

Service Unavailable

Service Unavailable。デプロイ中か一時的に過負荷です。バックオフしながらリトライしてください。状況はコミュニティ Discord で告知します。

基本ルール

利用規約

基本ルールは 4 つ。一度読んでおけば、未来の自分が Discord で質問する手間を 1 つ減らせます。

出典へのクレジット

再配布や再公開の際はクレジット表記が必要です。Pokékipe (https://pokekipe.com へのリンク)、および毎月公開元の chaos JSON を提供している Smogon にクレジットを記載してください。

ベストエフォート、SLA なし

ベストエフォート、SLA はありません。データは「現状のまま」提供され、稼働率の保証はありません。積極的にキャッシュし、エンドポイントが遅いときや 429 を返すときは穏やかにフォールバックしてください。

バージョニング

/api/v1/ 配下のスキーマは v1 のライフサイクル中、後方互換を保ちます。破壊的変更は /api/v2/ に分離し、Discord で事前告知のうえ、旧パスには sunset ヘッダーを付けます。

商用利用

商用利用は CC BY 4.0 のもとで自由に行えます。この API の上に何かを作ったら、ぜひコミュニティ Discord で教えてください。

リファレンス · OpenAPI 3ライブ、3 ペイン

全エンドポイントを 1 か所で

すべてのエンドポイントを、説明、パラメータ表、リクエスト/レスポンスのスキーマ、curl・JavaScript・Python のコードサンプルとセットで閲覧できます。1 つの検索ボックスから API 全体を検索でき、任意のオペレーションへのディープリンクや URL の共有もそのまま行えます。

  • 100+ エンドポイント
  • ·
  • 3-pane ナビ・本文・サンプル
  • ·
  • 全文検索
  • ·
  • ライブのリクエストサンプル