iceFetch は、Minecraft Bedrock の NetherNet サーバーのステータス確認と、サーバーが提示する ICE candidate の取得ができる、小さな無料の JSON API を公開しています。サイト上のツールと同じことを行えます。

エンドポイント

エンドポイントできること
GET /api/info?host=&port=&tls=サーバーの /v1/join ステータス JSON(名前・バージョン・人数など)を返します。
POST /api/offerシグナリングの offer を送信し、{ candidates[], answer, iceUfrag, … } を返します。
# ステータス
curl "https://icefetch.tools.kt04.com/api/info?host=play.example.net&port=19132"

# candidate
curl -X POST https://icefetch.tools.kt04.com/api/offer \
  -H 'content-type: application/json' \
  -d '{"host":"play.example.net","port":19132}'

/api/offer のボディ: host(必須)、port(既定 19132)、networkId(任意・10 進 uint64)、tls(自動判定。true/false で強制)、fresh(120 秒キャッシュを無視)。

リクエスト / レスポンスの型

// GET /api/info  — クエリ文字列
host   : string            // 必須 — ホスト名または IP
port   : number            // 任意、既定 19132
tls    : "true" | "false"  // 任意 — 省略時は自動判定

// 200 →
{ ok: boolean, status: number, tls: boolean, info: object | null }


// POST /api/offer  — Content-Type: application/json
{
  host      : string,   // 必須
  port?     : number,   // 既定 19132
  networkId?: string,   // 10進 uint64(1〜20桁)。省略時はランダム
  tls?      : boolean,  // 省略時は自動判定
  fresh?    : boolean   // true = 120 秒キャッシュを無視
}

// 200 →
{
  ok: boolean,
  answer: string,             // 生の SDP answer
  candidates: Candidate[],
  answerFingerprint: string,
  iceUfrag: string,
  exhausted: boolean,         // 200 だが candidate 0 件 = サーバーの UDP ポートプール枯渇
  cached?: boolean, stale?: boolean
}

Candidate = {
  raw: string, foundation: string, component: number, transport: string,
  priority: number, address: string, port: number, type: string,
  relatedAddress?: string, relatedPort?: number
}

エラー時はどちらのエンドポイントも { ok: false, error: … }(error は文字列、または { httpStatus, body } 等のオブジェクト)を 4xx/5xx ステータスで返します。

レート制限

制限は 3 種類あり、それぞれ独立して適用されます。

キーなし(IP ごと)API キーあり
/api/info月 2,000 回月 20,000 回
/api/offer月 200 回月 2,000 回

すべての応答に、現在のクォータがヘッダで含まれます。

X-RateLimit-Scope:     ip | key
X-RateLimit-Limit:     <月間の上限>
X-RateLimit-Remaining: <今月の残り回数>
X-RateLimit-Reset:     <クォータがリセットされる unix 時刻>

クォータを使い切ると、API は HTTP 429 を Retry-After ヘッダとともに返します。

API キーの送り方

次のいずれかのヘッダでキーを送ります。

X-API-Key: ice_xxxxxxxx
# または
Authorization: Bearer ice_xxxxxxxx
下の「GitHub でサインイン」からキーを取得できます。アカウント作成のために GitHub のユーザー名と ID を読み取るだけ(スコープは read:user)で、リポジトリにはアクセスせず、こちらから何かを投稿することもありません。

API キーを取得

GitHub でサインインすると、無料アカウントが作成され API キーを取得できます。

GitHub でサインイン

ツール解説記事APIプライバシー規約 · iceFetch は Mojang および Microsoft とは無関係です。