Перейти к содержимому

Отправка сообщений

Задача: отправить сообщение в свой канал одним HTTP-запросом — из скрипта, сервера, CI или CMS — и получить его уведомлением на устройстве.

  1. Канал. Откройте раздел «Каналы» в боковом меню админки app.notifly.ru и нажмите «Создать канал» (при первом входе это делает мастер первого запуска). Сообщения канала видит его владелец и те, с кем канал расшарен.
  2. App-токен канала (префикс A) — виден в строке канала, нажмите, чтобы показать и скопировать. Для отдельных скриптов и CI удобнее выпустить каналу отдельный машинный ключ — его можно отозвать, не трогая остальные.
  3. Получатель — Android-приложение или открытая вкладка админки с разрешёнными уведомлениями (см. «Первый вход»). Без него сообщение попадёт в ленту, но уведомления не будет.

Минимальный рабочий запрос — curl с app-токеном в заголовке X-Notifly-Key и JSON-телом:

Окно терминала
curl -X POST "https://api.notifly.ru/message" \
-H "X-Notifly-Key: <apptoken>" \
-H "Content-Type: application/json" \
-d '{"title": "my title", "message": "my message", "priority": 5}'

При успехе сервер отвечает 200 и возвращает созданное сообщение:

{
"id": 25,
"appid": 5,
"message": "my message",
"title": "my title",
"priority": 5,
"date": "2026-09-27T10:00:00Z"
}
  • Ответ 200 с id — сообщение принято и сохранено.
  • Сообщение появилось в ленте канала в админке.
  • На устройстве-получателе показано уведомление. Его заметность зависит от приоритета (см. параметры).

Ответ 200 есть, а уведомления нет — см. «Не приходят уведомления».

КодКогда
200Сообщение принято
400Нет поля message или тело не разобралось
401Токен не передан, неверный, отозван или истёк
403Токен без права записи (например, делегированный доступ view) или служебный канал
429Исчерпана дневная квота событий (см. Квоты и тарифы) или rate limit

Обязателен только параметр message. Остальные поля (title, priority, extras) необязательны. Если priority не задан, используется приоритет канала по умолчанию (defaultPriority). Приоритет — число от 0 до 10: от него зависят заметность уведомления на телефоне, эскалация по минимальному приоритету и пробитие тихих часов.

API сообщения принимает свойство extras, которое передаёт дополнительную информацию с сообщением и описывает, как клиенты ведут себя относительно этого сообщения. См. дополнительные поля сообщения для получения дополнительной информации.

Не только односторонние сообщения: помимо обычных push-уведомлений в канал можно отправлять интерактивные вопросы с вариантами ответа и получать ответ обратно. См. интерактивные вопросы.

Подойдёт curl, HTTPie или любой другой HTTP-клиент. Тело запроса — JSON (Content-Type: application/json). App-токен передаётся заголовком X-Notifly-Key, заголовком Authorization: Bearer <apptoken> или параметром token в URL.

Окно терминала
$ http POST https://api.notifly.ru/message X-Notifly-Key:"<apptoken>" title="my title" message="my message" priority:=5

В Microsoft PowerShell используйте встроенные командлеты Invoke-RestMethod или Invoke-WebRequest, передавая тело как JSON:

Окно терминала
PS> $body = @{title="my title"; message="my message"; priority=5} | ConvertTo-Json
PS> Invoke-RestMethod -Uri "https://api.notifly.ru/message" -Method POST -Headers @{"X-Notifly-Key"="<apptoken>"} -ContentType "application/json; charset=utf-8" -Body $body # результат автоматически разбирается в объект PowerShell
PS> Invoke-WebRequest -Uri "https://api.notifly.ru/message" -Method POST -Headers @{"X-Notifly-Key"="<apptoken>"} -ContentType "application/json; charset=utf-8" -Body $body # результат как необработанный ответ

Совет: токен можно передать и в URL (?token=<apptoken>) — это удобно там, где нельзя задать заголовок. Помните, что URL с токеном оседает в логах прокси и истории команд, поэтому в скриптах надёжнее заголовок.

Вы также можете использовать Notifly CLI для отправки сообщений. CLI сохраняет URL и токен в файле конфигурации.

Окно терминала
$ notifly push -t "my title" -p 10 "my message"
$ echo my message | notifly push

Как установить Notifly CLI. Здесь ещё много примеров отправки сообщений на различных языках.

Если каналы нужно заводить из кода, используйте API-токен (префикс M) с правом write. Путь application сохранён для совместимости с протоколом Gotify — это тот же канал:

Окно терминала
curl -X POST https://api.notifly.ru/application \
-H "X-Notifly-Key: <api-token>" \
-H "Content-Type: application/json" \
-d '{"name": "test", "description": "tutorial"}'

App-токен нового канала возвращается в ответе. См. Документацию API.

Метод и путьНазначениеАутентификация
POST /messageОтправить сообщение в каналApp-токен (X-Notifly-Key, Authorization: Bearer или ?token=)
POST /applicationСоздать каналAPI-токен
GET /applicationСписок каналовAPI-токен

Поля запроса POST /message: message (обязательно), title, priority (если не задан — defaultPriority канала), extras (см. дополнительные поля сообщения).