docs
API кабинета

API-ключи

Markdown

Методы, поля запросов и ответы.

Полное руководство

В разделе 5 методов. Откройте метод, чтобы посмотреть условия доступа, поля запроса и ответ.

Метод и путьОписаниеДоступ
GET /api/v1/keysСписок — API-ключиТокен кабинета
POST /api/v1/keysСоздание API-ключаТокен кабинета
DELETE /api/v1/keys/:idУдаление — API-ключиТокен кабинета
GET /api/v1/keys/:idПолучение по идентификатору — API-ключиТокен кабинета
PUT /api/v1/keys/:idИзменение API-ключаТокен кабинета
GET /api/v1/keys — Список — API-ключи

Доступ: Токен кабинета

GET/api/v1/keys
Чтение; ID берётся из вашего предыдущего ответа
curl --fail-with-body "https://ailoot.ai/api/v1/keys" \
  -H "Authorization: Bearer $TOKEN"

Query-параметры

ПолеТипОбязательноПроверка / описание
sort_bystringнет; по умолчанию: created_at
sort_orderstringнет; по умолчанию: desc
searchstringнет
statusstringнет
pageintegerнет; по умолчанию: 1; positive; page_size/limit <=1000
page_sizeintegerнет; по умолчанию: 20; positive; page_size/limit <=1000
limitintegerнет; по умолчанию: 20; positive; page_size/limit <=1000

Тело запроса не требуется. Передавайте указанные выше параметры в URL.

Ответ

JSON-ответ содержит code, message и data. Содержимое data описано в схемах ниже.

Схемы данных ответа: APIKey. Поля и типы — на страницах «Схемы данных».

Схема ответа, значения условные
{
  "code": 0,
  "message": "success",
  "data": {
    "items": [
      {
        "id": "PLACEHOLDER_ID (integer)",
        "user_id": "PLACEHOLDER_USER_ID (integer)",
        "key": "PLACEHOLDER_KEY (string)",
        "name": "PLACEHOLDER_NAME (string)",
        "status": "PLACEHOLDER_STATUS (string)",
        "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
        "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
        "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
        "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
        "quota": "PLACEHOLDER_QUOTA (number)",
        "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
        "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
        "created_at": "PLACEHOLDER_CREATED_AT (string)",
        "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
        "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
        "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
        "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
        "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
        "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
        "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
        "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
        "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
        "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
        "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
        "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
        "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
        "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
        "user": "PLACEHOLDER_USER (object)"
      }
    ],
    "total": "PLACEHOLDER_TOTAL (integer)",
    "page": "PLACEHOLDER_PAGE (integer)",
    "page_size": "PLACEHOLDER_PAGE_SIZE (integer)",
    "pages": "PLACEHOLDER_PAGES (integer)"
  }
}

Особенности: Все личные данные и объекты ограничены субъектом JWT.

Особенности: Ответ содержит секретный key; не публиковать реальные значения.

POST /api/v1/keys — Создание API-ключа

Доступ: Токен кабинета

POST/api/v1/keys

Поля JSON / формы

ПолеТипОбязательноПроверка / описание
namestringдаrequired
custom_keystringнет; Необязательное собственное значение ключа; может быть null
ip_whitelistarrayнет; Список разрешённых IP
ip_blacklistarrayнет; Список запрещённых IP
quotanumberнет; Лимит трат ключа в USD; может быть null
expires_in_daysintegerнет; Срок действия в днях; может быть null
rate_limit_5hnumberнет; может быть null
rate_limit_1dnumberнет; может быть null
rate_limit_7dnumberнет; может быть null
Шаблон тела запроса
{
  "name": "PLACEHOLDER_NAME (string)",
  "custom_key": "PLACEHOLDER_CUSTOM_KEY (string)",
  "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
  "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
  "quota": "PLACEHOLDER_QUOTA (number)",
  "expires_in_days": "PLACEHOLDER_EXPIRES_IN_DAYS (integer)",
  "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
  "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
  "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)"
}

PLACEHOLDER обозначает ваш ввод и его тип. Замените значения и оставьте только нужные необязательные поля; строковые маркеры не отправляются вместо чисел, boolean, объектов или массивов.

Схема запроса: CreateAPIKeyRequest

Ответ

JSON-ответ содержит code, message и data. Содержимое data описано в схемах ниже.

Схемы данных ответа: APIKey. Поля и типы — на страницах «Схемы данных».

Схема ответа, значения условные
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "user_id": "PLACEHOLDER_USER_ID (integer)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}

Особенности: Все личные данные и объекты ограничены субъектом JWT.

Особенности: Операция изменяет состояние или продолжает одноразовую авторизацию; пример описывает контракт и не выполняется.

Особенности: Idempotency-Key поддерживается; повтор возвращает сохранённый ответ с X-Idempotency-Replayed.

Особенности: Ответ содержит секретный key; не публиковать реальные значения.

DELETE /api/v1/keys/:id — Удаление — API-ключи

Доступ: Токен кабинета

DELETE/api/v1/keys/:id

Параметры пути

ПолеТипОбязательноПроверка / описание
idintegerда

Тело запроса не требуется.

Ответ

JSON-ответ содержит code, message и data. Содержимое data описано в схемах ниже.

Схема ответа, значения условные
{
  "code": 0,
  "message": "success",
  "data": {
    "message": "VALUE_FROM_RESPONSE"
  }
}

Особенности: Все личные данные и объекты ограничены субъектом JWT.

Особенности: Операция изменяет состояние или продолжает одноразовую авторизацию; пример описывает контракт и не выполняется.

Особенности: Ответ содержит секретный key; не публиковать реальные значения.

GET /api/v1/keys/:id — Получение по идентификатору — API-ключи

Доступ: Токен кабинета

GET/api/v1/keys/:id
Чтение; ID берётся из вашего предыдущего ответа
curl --fail-with-body "https://ailoot.ai/api/v1/keys/$ID" \
  -H "Authorization: Bearer $TOKEN"

Параметры пути

ПолеТипОбязательноПроверка / описание
idintegerда

Тело запроса не требуется. Передавайте указанные выше параметры в URL.

Ответ

JSON-ответ содержит code, message и data. Содержимое data описано в схемах ниже.

Схемы данных ответа: APIKey. Поля и типы — на страницах «Схемы данных».

Схема ответа, значения условные
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "user_id": "PLACEHOLDER_USER_ID (integer)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}

Особенности: Все личные данные и объекты ограничены субъектом JWT.

Особенности: Ответ содержит секретный key; не публиковать реальные значения.

PUT /api/v1/keys/:id — Изменение API-ключа

Доступ: Токен кабинета

PUT/api/v1/keys/:id

Параметры пути

ПолеТипОбязательноПроверка / описание
idintegerда

Поля JSON / формы

ПолеТипОбязательноПроверка / описание
namestringнет
statusstringнетomitempty,oneof=active inactive
ip_whitelistarrayнет; Разрешённые IP: null не изменяет список, пустой массив очищает его; может быть null
ip_blacklistarrayнет; Запрещённые IP: null не изменяет список, пустой массив очищает его; может быть null
quotanumberнет; Лимит трат ключа в USD; 0 — без лимита; может быть null
expires_atstringнет; Время окончания действия в формате ISO 8601; может быть null
reset_quotabooleanнет; Сбросить израсходованную часть лимита трат; может быть null
rate_limit_5hnumberнет; может быть null
rate_limit_1dnumberнет; может быть null
rate_limit_7dnumberнет; может быть null
reset_rate_limit_usagebooleanнет; Сбросить расход лимитов за окна; может быть null
Шаблон тела запроса
{
  "name": "PLACEHOLDER_NAME (string)",
  "status": "PLACEHOLDER_STATUS (string)",
  "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
  "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
  "quota": "PLACEHOLDER_QUOTA (number)",
  "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
  "reset_quota": "PLACEHOLDER_RESET_QUOTA (boolean)",
  "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
  "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
  "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
  "reset_rate_limit_usage": "PLACEHOLDER_RESET_RATE_LIMIT_USAGE (boolean)"
}

PLACEHOLDER обозначает ваш ввод и его тип. Замените значения и оставьте только нужные необязательные поля; строковые маркеры не отправляются вместо чисел, boolean, объектов или массивов.

Схема запроса: UpdateAPIKeyRequest

Ответ

JSON-ответ содержит code, message и data. Содержимое data описано в схемах ниже.

Схемы данных ответа: APIKey. Поля и типы — на страницах «Схемы данных».

Схема ответа, значения условные
{
  "code": 0,
  "message": "success",
  "data": {
    "id": "PLACEHOLDER_ID (integer)",
    "user_id": "PLACEHOLDER_USER_ID (integer)",
    "key": "PLACEHOLDER_KEY (string)",
    "name": "PLACEHOLDER_NAME (string)",
    "status": "PLACEHOLDER_STATUS (string)",
    "ip_whitelist": "PLACEHOLDER_IP_WHITELIST (array)",
    "ip_blacklist": "PLACEHOLDER_IP_BLACKLIST (array)",
    "last_used_at": "PLACEHOLDER_LAST_USED_AT (string)",
    "last_used_ip": "PLACEHOLDER_LAST_USED_IP (string)",
    "quota": "PLACEHOLDER_QUOTA (number)",
    "quota_used": "PLACEHOLDER_QUOTA_USED (number)",
    "expires_at": "PLACEHOLDER_EXPIRES_AT (string)",
    "created_at": "PLACEHOLDER_CREATED_AT (string)",
    "updated_at": "PLACEHOLDER_UPDATED_AT (string)",
    "current_concurrency": "PLACEHOLDER_CURRENT_CONCURRENCY (integer)",
    "rate_limit_5h": "PLACEHOLDER_RATE_LIMIT_5H (number)",
    "rate_limit_1d": "PLACEHOLDER_RATE_LIMIT_1D (number)",
    "rate_limit_7d": "PLACEHOLDER_RATE_LIMIT_7D (number)",
    "usage_5h": "PLACEHOLDER_USAGE_5H (number)",
    "usage_1d": "PLACEHOLDER_USAGE_1D (number)",
    "usage_7d": "PLACEHOLDER_USAGE_7D (number)",
    "window_5h_start": "PLACEHOLDER_WINDOW_5H_START (string)",
    "window_1d_start": "PLACEHOLDER_WINDOW_1D_START (string)",
    "window_7d_start": "PLACEHOLDER_WINDOW_7D_START (string)",
    "reset_5h_at": "PLACEHOLDER_RESET_5H_AT (string)",
    "reset_1d_at": "PLACEHOLDER_RESET_1D_AT (string)",
    "reset_7d_at": "PLACEHOLDER_RESET_7D_AT (string)",
    "user": "PLACEHOLDER_USER (object)"
  }
}

Особенности: Все личные данные и объекты ограничены субъектом JWT.

Особенности: Операция изменяет состояние или продолжает одноразовую авторизацию; пример описывает контракт и не выполняется.

Особенности: Ответ содержит секретный key; не публиковать реальные значения.

Особенности: Пока по ключу есть незавершённые запросы с резервом, его лимит трат нельзя уменьшить или сбросить. Передавайте только поля, которые меняете.

Остались вопросы? Пришлите Request ID и описание — поможем разобраться.Написать в поддержку