Skip to main content

Support API

Поддержка пользователей EdgeLab работает через два канала:
  • Telegram-бот: @EdgeLabSupportBot — быстрый доступ через привычный интерфейс
  • API: Программный доступ для интеграций и автоматизации
FAQ Flow: Перед созданием тикета система проверяет FAQ. Если ответ найден — отдаёт сразу. Если нет — предлагает создать тикет.
Scope: Для работы с тикетами требуется scope support:write, доступный на тарифах Pro и VIP. FAQ доступен без авторизации. Запрос созвона — только VIP (scope support:call-request).

Уровни поддержки

Обычная поддержка (Pro и VIP)

Тикеты через @EdgeLabSupportBot и API. Уведомления приходят через бот и колокольчик на платформе.

VIP-поддержка

VIP-участники получают дополнительно:
  • Выделенный VIP-чат с командой — отдельный чат, где присутствует команда EdgeLab. Можно задавать вопросы напрямую, не создавая тикет.
  • Персональный созвон — один созвон в месяц (консультация от команды). Запрос через API endpoint POST /support/call-request.
  • Приоритетная обработка тикетов — тикеты VIP-участников обрабатываются в первую очередь.

GET /support/faq

Получить FAQ. Публичный endpoint — авторизация не требуется. Scope: Публичный (без авторизации) URL: GET https://platform.edgelab.su/api/v1/support/faq

Query-параметры

category
string
Фильтр: account, billing, api, platform, agents
q
string
Поиск по тексту вопросов и ответов

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

{
  "items": [
    {
      "id": "faq_001",
      "category": "api",
      "question": "Как получить API-ключ?",
      "answer": "Перейдите в Settings → API Keys и нажмите «Создать ключ». Ключ отображается один раз -- сохраните его.",
      "helpful_count": 42
    }
  ],
  "total": 1,
  "limit": 20,
  "offset": 0,
  "has_more": false
}

Ошибки

HTTP кодКод ошибкиКогда
400bad_requestНевалидные параметры запроса
429rate_limit_exceededПревышен лимит запросов

POST /support/tickets

Создать тикет в службу поддержки. Scope: support:write (Pro, VIP) URL: POST https://platform.edgelab.su/api/v1/support/tickets
ЗаголовокЗначение
AuthorizationBearer edgelab_live_...
Content-Typeapplication/json
subject
string
required
Тема тикета (макс. 150 символов)
message
string
required
Описание проблемы (макс. 2000 символов)
category
string
required
Категория: account, billing, api, platform, agents

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

curl -X POST https://platform.edgelab.su/api/v1/support/tickets \
  -H "Authorization: Bearer edgelab_live_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "API возвращает 429 при низкой нагрузке",
    "message": "Получаю 429 при 50 req/min на Pro. Лимит должен быть 500.",
    "category": "api"
  }'

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

{
  "id": "tkt_7d2f1a",
  "subject": "API возвращает 429 при низкой нагрузке",
  "category": "api",
  "status": "open",
  "author": {
    "display_name": "developer42"
  },
  "created_at": "2026-03-21T14:15:00Z"
}

Ошибки

HTTP кодКод ошибкиКогда
400bad_requestНевалидные параметры запроса
401unauthorizedНевалидный или отсутствующий API-ключ
403forbiddenТариф Edge — scope support:write недоступен
422validation_errorНевалидные данные: пустой subject, неизвестная category
429rate_limit_exceededПревышен лимит запросов

GET /support/tickets

Получить список своих тикетов. Scope: support:write (Pro, VIP) URL: GET https://platform.edgelab.su/api/v1/support/tickets
status
string
Фильтр: open, answered, closed
limit
integer
default:"20"
Количество элементов (макс. 100)
offset
integer
default:"0"
Смещение от начала списка

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

{
  "items": [
    {
      "id": "tkt_7d2f1a",
      "subject": "API возвращает 429 при низкой нагрузке",
      "category": "api",
      "status": "open",
      "replies_count": 0,
      "created_at": "2026-03-21T14:15:00Z"
    }
  ],
  "total": 1,
  "limit": 20,
  "offset": 0,
  "has_more": false
}

Ошибки

HTTP кодКод ошибкиКогда
401unauthorizedНевалидный или отсутствующий API-ключ
403forbiddenТариф Edge — scope support:write недоступен
429rate_limit_exceededПревышен лимит запросов

GET /support/tickets/

Получить детали тикета с историей ответов. Scope: support:write (Pro, VIP) URL: GET https://platform.edgelab.su/api/v1/support/tickets/{id}
id
string
required
Идентификатор тикета

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

{
  "id": "tkt_7d2f1a",
  "subject": "API возвращает 429 при низкой нагрузке",
  "message": "Получаю 429 при 50 req/min на Pro. Лимит должен быть 500.",
  "category": "api",
  "status": "answered",
  "replies": [
    {
      "id": "reply_01",
      "from": "support",
      "message": "Обнаружена аномалия в rate limiter -- исправление развёрнуто. Попробуйте снова.",
      "created_at": "2026-03-21T15:30:00Z"
    }
  ],
  "created_at": "2026-03-21T14:15:00Z",
  "updated_at": "2026-03-21T15:30:00Z"
}

Ошибки

HTTP кодКод ошибкиКогда
401unauthorizedНевалидный или отсутствующий API-ключ
403forbiddenТариф Edge — scope support:write недоступен
404not_foundТикет не найден
429rate_limit_exceededПревышен лимит запросов

POST /support/tickets//reply

Ответить в существующем тикете. Scope: support:write (Pro, VIP) URL: POST https://platform.edgelab.su/api/v1/support/tickets/{id}/reply
id
string
required
Идентификатор тикета
message
string
required
Текст ответа (макс. 2000 символов)

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

curl -X POST https://platform.edgelab.su/api/v1/support/tickets/tkt_7d2f1a/reply \
  -H "Authorization: Bearer edgelab_live_abc123" \
  -H "Content-Type: application/json" \
  -d '{"message": "Проблема решена, лимиты работают корректно. Спасибо!"}'

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

{
  "id": "reply_02",
  "ticket_id": "tkt_7d2f1a",
  "from": "user",
  "message": "Проблема решена, лимиты работают корректно. Спасибо!",
  "created_at": "2026-03-21T16:00:00Z"
}

Ошибки

HTTP кодКод ошибкиКогда
400bad_requestНевалидные параметры запроса
401unauthorizedНевалидный или отсутствующий API-ключ
403forbiddenТариф Edge — scope support:write недоступен
404not_foundТикет не найден
422validation_errorПустое сообщение или тикет закрыт
429rate_limit_exceededПревышен лимит запросов

POST /support/call-request

Запросить персональный созвон с основателем. Только тариф VIP. Scope: support:call-request (VIP) URL: POST https://platform.edgelab.su/api/v1/support/call-request
Доступно только пользователям на тарифе VIP. Другие тарифы получат 403 Forbidden.
Допускается несколько активных запросов на созвон одновременно (например, по разным темам). Каждый запрос обрабатывается независимо.
topic
string
required
Тема созвона (макс. 200 символов)
preferred_time
string
Предпочтительное время (ISO 8601)
notes
string
Дополнительные заметки (макс. 500 символов)

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

curl -X POST https://platform.edgelab.su/api/v1/support/call-request \
  -H "Authorization: Bearer edgelab_live_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "Интеграция AI-агентов в production workflow",
    "preferred_time": "2026-03-25T15:00:00Z",
    "notes": "Обсудить архитектуру multi-agent системы"
  }'

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

{
  "id": "call_3e9b1c",
  "topic": "Интеграция AI-агентов в production workflow",
  "status": "requested",
  "preferred_time": "2026-03-25T15:00:00Z",
  "created_at": "2026-03-21T16:30:00Z"
}

Lifecycle созвона

СтатусОписание
requestedЗапрос отправлен, ожидает рассмотрения
scheduledСозвон запланирован, время подтверждено
completedСозвон состоялся
declinedЗапрос отклонён (с комментарием)
cancelledОтменён пользователем или администратором
При каждом изменении статуса приходит уведомление типа support_call_updated.

Ошибки

HTTP кодКод ошибкиКогда
400bad_requestНевалидные параметры запроса
401unauthorizedНевалидный или отсутствующий API-ключ
403forbiddenТариф пользователя не VIP
422validation_errorПустая тема
429rate_limit_exceededПревышен лимит запросов
При ответе на тикет или изменении статуса созвона вы получите уведомление через @EdgeLabSupportBot и колокольчик на платформе.