ToAPIsToAPIs
API-ключи

Заменить секрет API-ключа

Заменяет секрет и возвращает новый полный key, сохраняя ID, имя, статус, срок, квоту и лимиты

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

Для пользователей из материкового Китая: используйте https://api.toapis.cn в качестве эндпоинта (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-объектом. Неизвестные и повторные поля, а также query-параметры отклоняются. Срок чтения тела записи составляет 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": []
  }
}