Доступ к моделям (команда)
Запрет и разрешение моделей для команды
https://gptunnel.ru/api/v1/access/setTeamModelAccess Разрешает или запрещает конкретные модели для команд — версия доступа к моделям, но применяется ко всей команде. Запрос принимает массив пар { teamId, models } (до 25 команд). Каждый элемент обрабатывается независимо; при повторе teamId берётся первое вхождение.
teamId — id команды из POST /api/v1/employees/getTeams; model — id модели из GET /v1/models. Значение permission: allow (разрешить) / forbid (запретить) / default (сбросить).
Кто может менять
Функция доступна ключам с ролью owner или admin (иначе весь запрос вернёт 403). У команд нет роли, поэтому правило «равная или ниже роль» не применяется — любой admin/owner может настраивать любую команду своей организации.
Headers
| Параметр | Тип | Описание |
|---|---|---|
Authorization* | string | API ключ |
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
items* | object[] | Массив пар «команда + модели» (от 1 до 25). Каждый элемент: { teamId, models } |
items[].teamId* | string | Id команды (из GET списка команд) |
items[].models* | object[] | Список пар { model, permission } (от 1 до 100). permission: allow | forbid | default |
В ответе: updated — скольким командам применён доступ к моделям, failed — сколько с ошибкой, failedTeams — перечень команд с ошибкой. Для причины model_not_found в элемент добавляется unknownModels — список неизвестных id моделей этой команды (ни одна её модель не применена).
Причины ошибок в failedTeams:
Причины ошибок
| Параметр | Тип | Описание |
|---|---|---|
not_found | string | Команды с таким id нет в организации |
model_not_found | string | В списке этой команды есть неизвестный id модели. Все неизвестные id — в поле unknownModels; ни одна модель команды не применена |
error | string | Непредвиденная ошибка при обработке этой команды |
Пример запроса
curl --request POST \ --url https://gptunnel.ru/api/v1/access/setTeamModelAccess \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "items": [ { "teamId": "664f0a1b2c3d4e5f60718293", "models": [ { "model": "gpt-4o", "permission": "forbid" }, { "model": "gpt-4o-mini", "permission": "allow" } ] } ]}'import axios from 'axios'
const response = await axios({ method: 'POST', url: 'https://gptunnel.ru/api/v1/access/setTeamModelAccess', headers: { Authorization: 'YOUR_API_KEY', }, data: { items: [ { teamId: '664f0a1b2c3d4e5f60718293', models: [ { model: 'gpt-4o', permission: 'forbid' }, { model: 'gpt-4o-mini', permission: 'allow' }, ], }, ], },})
console.log(response.data)import requests
response = requests.post( 'https://gptunnel.ru/api/v1/access/setTeamModelAccess', headers={'Authorization': 'YOUR_API_KEY'}, json={ 'items': [ { 'teamId': '664f0a1b2c3d4e5f60718293', 'models': [ {'model': 'gpt-4o', 'permission': 'forbid'}, {'model': 'gpt-4o-mini', 'permission': 'allow'}, ], }, ], },)
print(response.json())Пример ответа
{ "code": 0, "updated": 1, "failed": 0, "failedTeams": []}{ "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": 1, "message": "Internal server error.", "trace_id": "66a346f64dcb57627c03d596"}