回答 · 認証 · キー
APIキーのローテーションまたは失効
回答: ダッシュボードで新しいキーを作成し、デプロイしてから古いキーを失効させます。失効したキーはRESTと新しいWebSocket接続で 401 invalid_key になり、そのキーで開いていたWebSocketはコード 4001 key_revoked で閉じます。有料プランはアクティブキーを最大20個持てるので、ダウンタイムなしのローテーションが簡単です。Freeはアクティブキーが1つだけなので、先に失効させてから新しいキーを作成します。
ダウンタイムなしのローテーション(有料プラン)#
- ダッシュボード → キーを作成し、名前を付けます(例:
bot-2026-11)。完全なps_live_...の値は一度だけ表示されます。PinnFeedはハッシュと先頭12文字だけを保存します。 - 新しいキーをシークレットストアまたは環境変数
PINNFEED_KEYに入れ、再デプロイします。 - ダッシュボードで古いキーの最終使用が動かなくなったことを確認します。
- 古いキーを失効させます。まだそれを使っているクライアントは
4001(WebSocket)または401(REST)を受け取ります。
コードで4001を扱う#
ws.on('close', (code, reason) => {
if (code === 4001) {
console.error('key revoked: load the new PINNFEED_KEY before reconnecting');
return; // do not reconnect in a loop with a dead key
}
scheduleReconnect();
});
良い習慣#
- アプリ/環境ごとに1キー。漏洩時に失効させる対象が1つで済みます。
- ブラウザやモバイルのコードにキーを置かない。
?key=よりx-api-keyヘッダーを優先。URLはログに残ります。
プラン#
Free:アクティブキー1つ、REST、30秒遅延。有料プラン:アクティブキー最大20。WebSocketはBuilder(月額99ユーロ)から。3日間のトライアル。カード登録が必要で、解約しない場合は3日目の後に課金されます。
18歳以上の方を対象とした教育目的のコンテンツです。予想や利益の約束ではありません。日本では刑法により賭博は原則として禁止されています。
よくある質問#
作成後にもう一度キーを見られますか?#
いいえ。プレフィックスだけが残ります。失くしたら新しいキーを作ってください。
キーはレート制限を共有しますか?#
RESTのレート制限はキー単位。WebSocket接続上限はアカウント全体でカウントされます。
キーの名前は変更できますか?#
はい、ダッシュボードから。名前を変えても値は変わりません。