Кабинет

Создание API-ключа

Пошаговая выдача ключа для приложения через личный кабинет или API платформы.

Кому подходит

  • Участникам — ключ для своего приложения или сервиса.
  • Администраторам — выдача ключа коллеге и отдельные лимиты через правила.

Участник выпускает ключ себе. Владелец и администратор могут выпустить ключ и другому участнику. Наблюдатель ключи не выпускает.

Через личный кабинет

  1. Войдите в кабинет и откройте раздел API-ключи.
  2. Заполните форму «Выпустить ключ»:
    • Название — понятное имя (например, my-app-key);
    • Система или агент — по желанию;
    • Срок действия — или без срока.
  3. Нажмите «Выпустить ключ».
  4. Сохраните секретную строку (sk-…), если она показана — повторно она не отображается.

Лимит расходов, список моделей и остальные ограничения задаются отдельным правилом, не полями ключа. См. Policy Rules.

Ключ появится в таблице с названием, владельцем, системой и статусом.

Через API

Шаг 1. Войдите и узнайте ID организации

curl -s -X POST https://www.llmmart.ru/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"owner@example.com","password":"your-password"}'
TOKEN="<token>"

curl -s https://www.llmmart.ru/api/overview \
  -H "Authorization: Bearer $TOKEN" | jq '.organization.id'

Шаг 2. Создайте ключ

curl -s -X POST "https://www.llmmart.ru/api/organization/api-keys" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "alias": "my-app-key",
    "ownerEmail": "developer@example.com"
  }'

Ответ (201) — метаданные ключа и поле secret с секретной строкой (sk-…). Сохраните secret сразу — в последующих запросах он не возвращается. Поле ownerEmail можно опустить — подставится email текущей сессии.

Поля models и monthlyBudget ключ не принимает: такой запрос вернёт 400 «Некорректный JSON».

Шаг 3. Задайте лимит правилом

Подставьте id созданного ключа. scope должен совпадать с типом клиента.

curl -s -X POST "https://www.llmmart.ru/api/organization/policy/rules" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "clientSubject": { "type": "api_key", "id": "key_001" },
    "status": "active",
    "budget": {
      "scope": "api_key",
      "limits": [
        { "limitRub": 10000, "resetInterval": "monthly" }
      ]
    }
  }'

Период — daily, weekly, monthly или свой: 24h, 7d. Подробнее — Policy API.

Использование ключа

Подставьте секрет в заголовок при запросах к API моделей (не к API платформы):

Authorization: Bearer sk-…

Пример — в Текстовый запрос.

Проверка

Ключ появится в GET /api/overview → apiKeys и в журнале аудита (api_key.created).

Что дальше