Общий лимит
Общий лимит
POST
https://gptunnel.ru/api/v1/access/setGlobalLimit Задаёт общий дневной и/или месячный лимит расходов сотрудника по всем моделям В отличие от лимитов на модели, это один лимит на сотрудника (не по конкретным моделям), и он имеет приоритет над лимитами по моделям. Каждому логину — свой лимит; при повторе логина берётся первое вхождение.
Значения
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
items* | object[] | Массив пар «логин + лимиты» (от 1 до 25). Каждый элемент: { login, dailyLimit?, monthlyLimit? } |
items[].login* | string | Логин сотрудника |
items[].dailyLimit | number | Общий дневной лимит в рублях (RUB). 0 = без лимита |
items[].monthlyLimit | number | Общий месячный лимит в рублях (RUB). 0 = без лимита |
Нужно передать хотя бы одно из полей dailyLimit / monthlyLimit. Обновляются только переданные поля.
Кто может менять
Запрос выполняется от имени роли создателя API-ключа. Менять общий лимит можно у сотрудников с ролью равной или ниже своей (кроме своего аккаунта):
- ключ должен принадлежать роли owner или admin (иначе весь запрос вернёт
403); - действовать можно над сотрудником с равной или более низкой ролью; сотрудника с более высокой ролью или свой собственный аккаунт изменить нельзя (по такому логину —
forbidden).
Headers
| Параметр | Тип | Описание |
|---|---|---|
Authorization* | string | API ключ |
В ответе: updated — скольким логинам применён общий лимит, failed — сколько с ошибкой, failedLogins — перечень логинов с ошибкой (причина и пояснение по каждому).
Причины ошибок в failedLogins:
Причины ошибок
| Параметр | Тип | Описание |
|---|---|---|
not_found | string | Сотрудника с таким логином нет в организации |
forbidden | string | Роль цели выше вашей, либо это ваш собственный аккаунт |
error | string | Непредвиденная ошибка при обработке этого сотрудника |
Пример запроса
curl --request POST \ --url https://gptunnel.ru/api/v1/access/setGlobalLimit \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "items": [ { "login": "ivanov", "dailyLimit": 1000, "monthlyLimit": 20000 }, { "login": "petrov", "monthlyLimit": 5000 } ]}'import axios from 'axios'
const response = await axios({ method: 'POST', url: 'https://gptunnel.ru/api/v1/access/setGlobalLimit', headers: { Authorization: 'YOUR_API_KEY', }, data: { items: [ { login: 'ivanov', dailyLimit: 1000, monthlyLimit: 20000 }, { login: 'petrov', monthlyLimit: 5000 }, ], },})
console.log(response.data)import requests
response = requests.post( 'https://gptunnel.ru/api/v1/access/setGlobalLimit', headers={'Authorization': 'YOUR_API_KEY'}, json={ 'items': [ {'login': 'ivanov', 'dailyLimit': 1000, 'monthlyLimit': 20000}, {'login': 'petrov', 'monthlyLimit': 5000}, ], },)
print(response.json())Пример ответа
{ "code": 0, "updated": 2, "failed": 0, "failedLogins": []}{ "code": 3, "message": "Invalid input, check schema issues.", "details": []}{ "error": { "message": "Unauthorized", "type": "unauthorized_request_error", "param": null, "code": null }}{ "code": 7, "message": "Not allowed to perform this action for the organization."}{ "code": 13, "message": "Employee management is not available from a personal account. Use a business organization API key."}{ "code": 1, "message": "Internal server error.", "trace_id": "66a346f64dcb57627c03d596"}