Изменить API Key
PATCH /api/open/v1/keys/:idПараметры запроса
Section titled “Параметры запроса”Обновляются только поля, присутствующие в теле запроса; отсутствующие поля остаются без изменений. Требуется хотя бы одно изменяемое поле: пустое тело, null или {} возвращает 400.
| Параметр | Где | Тип | Обязательный | Описание |
|---|---|---|---|---|
id | path | integer | Да | ID Key, положительное целое число |
name | body | string | Нет | Имя; не может быть пустым после удаления пробелов, до 50 символов (символов, не байт) |
status | body | integer | Нет | 1 включить, 2 отключить; любое другое значение возвращает 400 (3 / 4 выставляются автоматически) |
expired_time | body | integer | Нет | Срок действия, unix-секунды; 0 / -1 означает бессрочно |
remain_amount | body | number | Нет | Доступная сумма в валюте сайта, два знака после запятой; не может быть отрицательной или превышать максимум |
unlimited | body | boolean | Нет | Безлимитный ли Key |
model_limits_enabled | body | boolean | Нет | Включить ли белый список моделей |
model_limits | body | string | Нет | Разрешённые модели через запятую |
allow_ips | body | string | Нет | Разрешённые IP, по одному на строку; пустая строка означает отсутствие ограничений |
status принимает только 1 (включить) или 2 (отключить). Для включения Key должен быть пригоден после этого обновления: не истёк (expired_time равен -1 или находится в будущем) и либо безлимитный, либо с remain_amount > 0; иначе 400. Поля можно передать вместе, например {"status": 1, "expired_time": 1767225600}. Отключить можно из любого состояния, а явный status всегда важнее автоматического восстановления.
Пример запроса
Section titled “Пример запроса”Пополнить исчерпанный Key (он автоматически вернётся в состояние «включён»):
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \ -H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \ -H "Content-Type: application/json" \ -d '{"remain_amount": 20.00}'Продлить срок действия:
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \ -H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \ -H "Content-Type: application/json" \ -d '{"expired_time": 1767225600}'Отключить Key (запросы с ним отклоняются до повторного включения):
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \ -H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \ -H "Content-Type: application/json" \ -d '{"status": 2}'Снова включить Key, продлив срок действия в том же запросе, чтобы он гарантированно был пригоден:
curl -X PATCH https://www.routeapi.ai/api/open/v1/keys/12 \ -H "Authorization: Bearer $ROUTEAPI_MANAGEMENT_KEY" \ -H "Content-Type: application/json" \ -d '{"status": 1, "expired_time": 1767225600}'Пример ответа
Section titled “Пример ответа”Возвращает обновлённый объект Key с маскированным key:
{ "success": true, "message": "", "data": { "id": 12, "name": "bot", "key": "sk-abcd**********wxyz", "status": 1, "created_time": 1729000000, "accessed_time": 1729000000, "expired_time": -1, "remain_amount": 20.00, "unlimited": false, "used_amount": 10.00, "model_limits_enabled": false, "model_limits": "", "allow_ips": "" }}Описание полей см. в Объект Key.
Ошибки
Section titled “Ошибки”| HTTP | code | Сценарий |
|---|---|---|
| 400 | invalid_request | id не является положительным целым числом, или тело не является корректным JSON |
| 400 | invalid_request | Тело пустое, null или не содержит ни одного изменяемого поля |
| 400 | invalid_request | status не равен 1 или 2 (состояния 3 / 4 выставляются автоматически) |
| 400 | invalid_request | status: 1 при том, что Key всё ещё истёк или исчерпан; продлите expired_time, пополните remain_amount или включите unlimited (поля можно передать в одном запросе) |
| 400 | invalid_request | Имя длиннее 50 символов, либо remain_amount отрицательна или превышает максимум |
| 400 | invalid_request | expired_time не в будущем (и не равно 0 / -1) или позже 9999-12-31 |
| 400 | invalid_request | Для безлимитного Key передан только remain_amount, либо безлимитный Key переводится в ограниченный без remain_amount |
| 404 | not_found | Key не существует или не принадлежит вам |
Прочие общие коды ошибок см. в Ошибки и лимиты.
Примечания
Section titled “Примечания”- Передача только
remain_amount: для Key с ограниченным лимитом применяется сразу; для безлимитного Key возвращает 400 — в этом случае нужно также передать"unlimited": false. "unlimited": falseбезremain_amount: для безлимитного Key возвращается 400 (чтобы баланс не обнулялся молча); Key, который уже был ограничен, сохраняет текущий баланс.- Истёкший (
3) или исчерпанный (4) Key автоматически возвращается в состояние «включён» (1), если обновление делает его снова пригодным (продлёнexpired_time, положительныйremain_amountилиunlimited). Это автоматическое восстановление работает только еслиstatusне передан. 2— состояние после ручного отключения. Оно никогда не восстанавливается автоматически; чтобы включить Key снова, передайтеstatus: 1. Пока Key не в состоянии1, вызовы моделей с ним отклоняются.- Все поля проверяются до записи: если хотя бы одно поле не проходит проверку, возвращается 400 и ни одно поле не изменяется.
- Изменение Key через API платформы записывается в журнал аудита.