Skip to main content

Notifications API

Endpoints для работы с уведомлениями: получение списка, отметка прочитанными, подсчёт непрочитанных.

Типы уведомлений

ТипОписание
contribution_approvedContribution одобрен и опубликован
contribution_rejectedContribution отклонён
points_earnedНачислены поинты
endorsement_receivedПолучен endorsement от участника
network_requestНовый запрос на подключение
network_acceptedЗапрос на подключение принят
support_ticket_answeredПолучен ответ на тикет в поддержку
support_call_updatedОбновление статуса запроса на созвон (VIP)
event_reminderНапоминание о предстоящем событии

GET /notifications

Получить список уведомлений текущего пользователя. Scope: profile:read (все тарифы) Полный URL: GET https://platform.edgelab.su/api/v1/notifications

Query-параметры

ПараметрТипПо умолчаниюОписание
limitinteger20Количество элементов (макс. 100)
offsetinteger0Смещение от начала списка
unread_onlybooleanfalseПоказывать только непрочитанные

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

curl -X GET "https://platform.edgelab.su/api/v1/notifications?unread_only=true&limit=20&offset=0" \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

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

{
  "items": [
    {
      "id": "ntf_001",
      "type": "contribution_approved",
      "title": "Твой contribution одобрен",
      "message": "Скилл «Weather Agent» был одобрен и опубликован.",
      "read": false,
      "created_at": "2025-03-15T10:00:00Z"
    },
    {
      "id": "ntf_002",
      "type": "points_earned",
      "title": "Ты заработал поинты",
      "message": "+10 поинтов за одобренный contribution.",
      "read": false,
      "created_at": "2025-03-15T10:00:01Z"
    },
    {
      "id": "ntf_003",
      "type": "support_ticket_answered",
      "title": "Ответ на тикет",
      "message": "Получен ответ на тикет «API возвращает 429 при низкой нагрузке».",
      "read": false,
      "created_at": "2025-03-15T15:30:00Z"
    }
  ],
  "total": 3,
  "limit": 20,
  "offset": 0,
  "has_more": false
}

Поля ответа

items[].id
string
required
Уникальный идентификатор уведомления.
items[].type
string
required
Тип уведомления (см. таблицу типов выше).
items[].title
string
required
Заголовок уведомления.
items[].message
string
required
Текст уведомления.
items[].read
boolean
required
Прочитано ли уведомление.
items[].created_at
string
required
Дата и время создания (ISO 8601).

Ошибки

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

PATCH /notifications//read

Отметить уведомление как прочитанное. Scope: profile:write (все тарифы) Полный URL: PATCH https://platform.edgelab.su/api/v1/notifications/{id}/read

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

ПараметрТипОписание
idstringИдентификатор уведомления

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

curl -X PATCH https://platform.edgelab.su/api/v1/notifications/ntf_001/read \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

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

{
  "id": "ntf_001",
  "read": true,
  "read_at": "2025-03-15T14:30:00Z"
}

Ошибки

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

GET /notifications/unread-count

Получить количество непрочитанных уведомлений. Удобно для отображения бейджа или периодической проверки. Scope: profile:read (все тарифы) Полный URL: GET https://platform.edgelab.su/api/v1/notifications/unread-count

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

curl -X GET https://platform.edgelab.su/api/v1/notifications/unread-count \
  -H "Authorization: Bearer edgelab_live_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"

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

{
  "unread_count": 5
}

Ошибки

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