ToAPIsToAPIs
API キー

API キーをローテーション

シークレットを置換し, 新しい完全な key を返します

POST
/api/v1/api-keys/{api_key_id}/rotate

中国本土のユーザー向け: 中国本土のユーザーは https://api.toapis.cn を API エンドポイント (Base URL)としてご利用ください. 本ドキュメント内の例では https://api.toapis.com を https://api.toapis.cn に置き換えてください.

動作

指定キーに新しいシークレットを発行します. シークレット漏洩や定期ローテーションに使います. 成功時は完全な key を返し, 元の ID, 名前, 状態, 有効期限, クォータ, 制限は変わりません. 無効化・期限切れ・枯渇したキーもローテーションできますが, 自動では再有効化されません. 失効済みキーは 404 です.

ローテーション成功後, 旧シークレットは直ちに無効になり, 新旧が同時に使える移行期間はありません. 同一キーに複数のローテーションを並行して送ると最後に送信されたシークレットのみが有効になり, それ以外は直ちに無効になるため, ローテーションは直列に実行してください.

認証

Authorizationstringヘッダー必須

Bearer YOUR_SYSTEM_ACCESS_TOKEN を使用します. モデルキーは不可, X-User-Id は不要です. 共通ルールは利用方法を参照してください.

リクエストパラメータ

api_key_idstringパス必須

自分の通常モデルキーの十進 ID 文字列. sk- シークレットではありません.

空でない本文は Content-Type: application/json が必要で, 上限は 16384 バイトです. 最上位は JSON オブジェクトとし, 未知または重複するフィールドやクエリパラメータは拒否します. 本文の読み取り期限は 10 秒です.

本文は空または {} のみです.

リクエスト例

リクエスト例

curl --request POST \
  --url 'https://api.toapis.com/api/v1/api-keys/43/rotate' \
  --header 'Authorization: Bearer YOUR_SYSTEM_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{}'
import requests

response = requests.post(
    "https://api.toapis.com/api/v1/api-keys/43/rotate",
    headers={"Authorization": "Bearer YOUR_SYSTEM_ACCESS_TOKEN"},
    json={},
    timeout=30,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.toapis.com/api/v1/api-keys/43/rotate", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_SYSTEM_ACCESS_TOKEN", "Content-Type": "application/json" },
  body: JSON.stringify({}),
  signal: AbortSignal.timeout(30_000),
});
if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
console.log(await response.json());

レスポンスフィールド

例は架空のデータです. メタデータはキー詳細, 共通のレスポンスとエラーは利用方法を参照してください.

data.keystring

sk- 接頭辞を含む完全なシークレット. 今回の作成またはローテーション応答のみで返します.

レスポンス例

レスポンス例

{
  "code": 0,
  "message": "",
  "data": {
    "id": "43",
    "name": "Example Key",
    "key_hint": "****new4",
    "status": "enabled",
    "created_at": "2026-11-01T08:00:00Z",
    "expires_at": "2027-01-01T00:00:00Z",
    "unlimited": false,
    "remaining_credits": "500",
    "daily_limit_credits": null,
    "monthly_limit_credits": null,
    "key": "sk-example11111111111111111111111111111111111111new4",
    "model_limits": [],
    "allow_ips": []
  }
}