Документация

API-ключи

Устройство ключей, удаление и недельные лимиты в credits.

Правила API-ключей

У пользователя может быть любое число активных ключей. Показ, ротация и удаление — явные действия владельца; сырой ключ не хранится в истории.

Ключу можно назначить недельный бюджет в credits. При Provider-тарифе все назначенные бюджеты не превышают его недельную credit-квоту; без тарифа расход контролирует общий предоплаченный баланс в credits.

Provider API-ключи и Agent

API-ключ предназначен только для Provider API — он не заменяет браузерную сессию. У одного пользователя может быть любое число ключей; их usage и credits общие. Правила описаны в бизнес-логике.

GET/v1/access/keysСписок своих ключейТребуется авторизация

Доступ: Сессия

Запрос

Нет.

Успешный ответ

JSON ответаПоказать
[
  {
    "id": "uuid",
    "label": "production",
    "creditBudget": 10,
    "tokenPrefix": "sc_abcd",
    "status": "ACTIVE",
    "createdAt": "ISO-8601",
    "revokedAt": null,
    "lastUsedAt": null
  }
]
GET/v1/access/credit-budgetПолучить доступный бюджет ключейТребуется авторизация

Доступ: Сессия

Запрос

Нет.

Успешный ответ

JSON ответаПоказать
{
  "source": "PLAN",
  "limit": 500,
  "allocated": 100,
  "available": 400,
  "prepaidBalance": {
    "total": 1000,
    "spent": 30,
    "remaining": 970
  }
}

Все суммы — credits. source: PLAN — недельная credit-квота Provider-тарифа; BALANCE — предоплаченный баланс; NONE — лимит пока нельзя назначить.

POST/v1/access/keysСоздать API-ключТребуется авторизация

Доступ: Сессия

Запрос

{ "label": "production", "creditBudget": 10 } | {}

Успешный ответ

JSON ответаПоказать
{
  "id": "uuid",
  "token": "sc_…",
  "label": "production",
  "creditBudget": 10,
  "…": "метаданные ключа"
}

label необязателен, 1–80 символов. creditBudget — необязательный недельный лимит в credits. Сырой ключ возвращается только здесь; Cache-Control: no-store.

POST/v1/access/keys/:id/revealПоказать API-ключТребуется авторизация

Доступ: Сессия

Запрос

Path: id UUID активного ключа.

Успешный ответ

JSON ответаПоказать
{
  "id": "uuid",
  "token": "sc_…",
  "…": "метаданные ключа"
}

Явное действие владельца; Cache-Control: no-store.

POST/v1/access/keys/:id/rotateПеревыпустить один API-ключТребуется авторизация

Доступ: Сессия

Запрос

Path: id UUID активного ключа.

Успешный ответ

JSON ответаПоказать
{
  "id": "uuid",
  "token": "sc_…",
  "…": "метаданные нового ключа"
}

Немедленно заменяет только указанный ключ. Остальные ключи и общий баланс не меняются; Cache-Control: no-store.

PUT/v1/access/keys/:id/budgetИзменить лимит API-ключаТребуется авторизация

Доступ: Сессия

Запрос

Path: id UUID. Body: { "creditBudget": 10 } | { "creditBudget": null }

Успешный ответ

JSON ответаПоказать
{
  "id": "uuid",
  "creditBudget": 10,
  "…": "метаданные ключа"
}

null снимает индивидуальный лимит. Все значения — credits; при тарифе распределение не может превысить его недельную credit-квоту.

DELETE/v1/access/keys/:idУдалить один API-ключТребуется авторизация

Доступ: Сессия

Запрос

Path: id UUID активного ключа.

Успешный ответ

204 No Content

Немедленно прекращает доступ и убирает ключ из списка. История usage остаётся без сырого секрета. Повторное удаление возвращает API_TOKEN_NOT_FOUND.

GET/v1/access/agentСтатус AgentТребуется авторизация

Доступ: Сессия

Запрос

Нет.

Успешный ответ

null | { "state": "PROVISIONING" | "READY" | "STOPPED" }

В MVP Agent можно только наблюдать, не управлять им.