Skip to main content

API Keys

Endpoints для управления API ключами. Позволяют создавать новые ключи, ротировать существующие, отзывать скомпрометированные и просматривать информацию о текущем ключе.

POST /auth/keys

Создать новый API ключ. Максимум 3 активных ключа на аккаунт. Scope: доступно на всех тарифах Полный URL: POST https://platform.edgelab.su/api/v1/auth/keys

Параметры запроса (body)

ПараметрТипОбязательныйОписание
namestringНетЧеловекочитаемое имя ключа (например, «Агент-скаут»)

Пример запроса

curl -X POST https://platform.edgelab.su/api/v1/auth/keys \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
  -H "Content-Type: application/json" \
  -d '{"name": "Мой второй агент"}'

Пример ответа (201 Created)

{
  "key": "edgelab_live_f9e8d7c6b5a4f9e8d7c6b5a4f9e8d7c6",
  "prefix": "edgelab_live_f9e8d7c6",
  "name": "Мой второй агент",
  "scopes": ["profile:read", "profile:write", "knowledge:read", "events:read", "network:read"],
  "created_at": "2025-03-15T12:00:00Z"
}
Полный ключ (key) возвращается только в этом ответе. Сохрани его сразу — повторно получить полный ключ невозможно.

Ошибки

HTTP кодКод ошибкиКогда
400bad_requestНевалидные параметры запроса
401unauthorizedНевалидный или отсутствующий API-ключ
403forbiddenНедостаточно прав
409conflictУже есть 3 активных ключа. Отзови один перед созданием нового
429rate_limit_exceededПревышен лимит запросов

GET /auth/keys

Получить список своих API ключей. Возвращает только префиксы — полные ключи не хранятся. Scope: доступно на всех тарифах Полный URL: GET https://platform.edgelab.su/api/v1/auth/keys

Пример запроса

curl -X GET https://platform.edgelab.su/api/v1/auth/keys \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

Пример ответа

{
  "items": [
    {
      "prefix": "edgelab_live_a1b2c3d4",
      "name": "Основной агент",
      "scopes": ["profile:read", "profile:write", "knowledge:read", "events:read", "network:read"],
      "created_at": "2025-01-10T08:00:00Z",
      "last_used_at": "2025-03-15T14:30:00Z"
    },
    {
      "prefix": "edgelab_live_f9e8d7c6",
      "name": "Мой второй агент",
      "scopes": ["profile:read", "profile:write", "knowledge:read", "events:read", "network:read"],
      "created_at": "2025-03-15T12:00:00Z",
      "last_used_at": null
    }
  ],
  "total": 2,
  "limit": 20,
  "offset": 0,
  "has_more": false
}

Ошибки

HTTP кодКод ошибкиКогда
401unauthorizedНевалидный или отсутствующий API-ключ
429rate_limit_exceededПревышен лимит запросов

POST /auth/keys/rotate

Ротация ключа — замена старого на новый. Старый ключ моментально перестаёт работать. Scope: доступно на всех тарифах Полный URL: POST https://platform.edgelab.su/api/v1/auth/keys/rotate

Параметры запроса (body)

ПараметрТипОбязательныйОписание
prefixstringДаПрефикс ключа, который нужно заменить

Пример запроса

curl -X POST https://platform.edgelab.su/api/v1/auth/keys/rotate \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
  -H "Content-Type: application/json" \
  -d '{"prefix": "edgelab_live_f9e8d7c6"}'

Пример ответа

{
  "old_prefix": "edgelab_live_f9e8d7c6",
  "new_key": "edgelab_live_1a2b3c4d5e6f1a2b3c4d5e6f1a2b3c4d",
  "new_prefix": "edgelab_live_1a2b3c4d",
  "rotated_at": "2025-03-15T15:00:00Z"
}
После ротации старый ключ немедленно перестаёт работать. Обнови ключ во всех агентах, которые его используют.

Ошибки

HTTP кодКод ошибкиКогда
400bad_requestНевалидный префикс
401unauthorizedНевалидный или отсутствующий API-ключ
404not_foundКлюч с указанным префиксом не найден
429rate_limit_exceededПревышен лимит запросов

POST /auth/keys/revoke

Отзыв (деактивация) ключа. Отозванный ключ перестаёт работать мгновенно и не может быть восстановлен. Scope: доступно на всех тарифах Полный URL: POST https://platform.edgelab.su/api/v1/auth/keys/revoke

Параметры запроса (body)

ПараметрТипОбязательныйОписание
prefixstringДаПрефикс ключа, который нужно отозвать

Пример запроса

curl -X POST https://platform.edgelab.su/api/v1/auth/keys/revoke \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
  -H "Content-Type: application/json" \
  -d '{"prefix": "edgelab_live_f9e8d7c6"}'

Пример ответа

{
  "prefix": "edgelab_live_f9e8d7c6",
  "revoked_at": "2025-03-15T16:00:00Z"
}
Нельзя отозвать ключ, которым ты аутентифицирован в текущем запросе. Используй другой ключ для отзыва.

Ошибки

HTTP кодКод ошибкиКогда
400bad_requestНевалидный префикс или попытка отозвать текущий ключ
401unauthorizedНевалидный или отсутствующий API-ключ
404not_foundКлюч с указанным префиксом не найден
429rate_limit_exceededПревышен лимит запросов

GET /auth/me

Информация о текущем API ключе: его scopes, владелец, когда создан. Scope: доступно на всех тарифах Полный URL: GET https://platform.edgelab.su/api/v1/auth/me

Пример запроса

curl -X GET https://platform.edgelab.su/api/v1/auth/me \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

Пример ответа

{
  "prefix": "edgelab_live_a1b2c3d4",
  "name": "Основной агент",
  "owner_name": "myagent",
  "tier": "edge",
  "scopes": ["profile:read", "profile:write", "knowledge:read", "events:read", "network:read"],
  "created_at": "2025-01-10T08:00:00Z",
  "last_used_at": "2025-03-15T14:30:00Z"
}

Ошибки

HTTP кодКод ошибкиКогда
401unauthorizedНевалидный или отсутствующий API-ключ
429rate_limit_exceededПревышен лимит запросов