Перейти к содержанию

Notify

POST https://api.pushwoosh.com/messaging/v2/notify

Создает и планирует отправку одного сообщения.

Структура запроса

Anchor link to

Тело запроса — это NotifyRequest одного из двух видов:

  • segment: таргетирование на сегмент аудитории по коду сегмента, выражению seglang или структурированному выражению фильтра.
  • transactional: отправка по явному списку hwids, User ID, push-токенов или тестовых устройств.
Shape
{
"segment": { ... }, // ИЛИ
"transactional": { ... },
"transaction_id": "unique-uuid"
}
ПолеТипОписание
transaction_idstringНеобязательный. Ключ идемпотентности для запроса — работает как с segment, так и с transactional. Повторный вызов с тем же transaction_id в течение 5 минут вернет исходный message_code вместо отправки дублирующего сообщения. Используйте UUID или другое уникальное значение для каждой логической отправки.

NotifySegment

Anchor link to

Таргетируется на пользователей, которые соответствуют сегменту аудитории или выражению фильтра.

ПолеТипОписание
scheduleScheduleКогда и как отправлять. Обязательно.
applicationstringКод приложения.
platformsarray of PlatformПлатформы, на которые нацелено сообщение.
codestringКод сегмента. Взаимоисключающий с expression и filter_expression.
expressionstringВыражение Seglang.
filter_expressionFilterExpressionСтруктурированное выражение фильтра (расширенный).
payloadPayloadПолезная нагрузка для Push / SMS / Telegram / Kakao / LINE / WhatsApp / Viber. Взаимоисключающий с email_payload.
email_payloadEmailPayloadПолезная нагрузка для Email.
campaignstringКод кампании, к которой относится это сообщение.
frequency_cappingFrequencyCappingОграничения частоты отправки для каждого пользователя.
send_rateSendRateОграничение скорости отправки.
message_typeMessageTypeMESSAGE_TYPE_MARKETING (по умолчанию) или MESSAGE_TYPE_TRANSACTIONAL. Управляет фильтрацией по контрольной группе.
dynamic_content_placeholdersmap<string, string>Заменяет плейсхолдеры в контенте.
meta_dataobjectМетаданные в свободной форме, передаваемые в последующие системы аналитики.

Пример: Отправка сегменту

Anchor link to
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"segment": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"code": "active_users",
"payload": {
"content": {
"localized_content": {
"en": {
"ios": { "body": "Hello!" },
"android": { "body": "Hello!" }
}
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_MARKETING"
}
}'

NotifyTransactional

Anchor link to

Отправляет сообщение по явному списку получателей.

ПолеТипОписание
scheduleScheduleОбязательно.
applicationstringКод приложения.
platformsarray of PlatformПлатформы, на которые нацелено сообщение.
test_devicesboolЕсли true, отправлять только на тестовые устройства приложения.
hwids{ "list": [string, ...] }Отправлять только на эти hwids.
users{ "list": [string, ...] }Отправлять только на эти User ID.
push_tokens{ "list": [string, ...] }Отправлять только на эти push-токены.
payloadPayloadПолезная нагрузка для Push / SMS / Telegram / Kakao / LINE / WhatsApp / Viber.
email_payloadEmailPayloadПолезная нагрузка для Email.
return_unknown_identifiersboolЕсли true, в ответе поле unknown_identifiers будет содержать список ненайденных идентификаторов.
use_latest_user_deviceboolПрименяется только при таргетинге на users. Если true, сообщение доставляется на последнее активное устройство каждого пользователя — то, у которого самое свежее время последнего открытия приложения (Last Application Open), — вместо всех устройств, связанных с этим User ID. По умолчанию false (отправлять на все устройства).
campaign, frequency_capping, send_rate, message_type, dynamic_content_placeholders, meta_dataСм. NotifySegment выше.

test_devices, hwids, users и push_tokens являются взаимоисключающими. Должен быть установлен ровно один из них.

Пример: Транзакционная отправка по User ID

Anchor link to
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"transactional": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["user-123", "user-456"] },
"payload": {
"content": {
"localized_content": {
"en": { "ios": { "body": "Your order has shipped." } }
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"return_unknown_identifiers": true,
"use_latest_user_device": true
}
}'

Ответ

Anchor link to
{
"result": {
"message_code": "XXXXX-XXXXX-XXXXX",
"unknown_identifiers": []
}
}
ПолеТипОписание
message_codestringУникальный код сообщения. Используйте его с эндпоинтами /getMessageDetails и статистики сообщений.
unknown_identifiersarray of stringИдентификаторы, не найденные в аккаунте. Заполняется только в том случае, если в transactional-запросе было установлено return_unknown_identifiers: true.

Общие типы

Anchor link to
{
"at": "2026-05-01T12:00:00Z",
"follow_user_timezone": true,
"past_timezones_behaviour": "PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY"
}
ПолеТипОписание
attimestampАбсолютное время отправки (RFC 3339). Если время в прошлом, сообщение отправляется немедленно. Максимум 14 дней в будущем.
afterdurationАльтернатива at. Отправить через указанный промежуток времени от “сейчас” (например, "3600s").
follow_user_timezoneboolЕсли true, каждое устройство получает сообщение в at по своему локальному времени.
past_timezones_behaviourenumPAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY (по умолчанию), PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SEND или PAST_TIMEZONES_BEHAVIOUR_NEXT_DAY. Имеет значение только если follow_user_timezone равно true.

FrequencyCapping

Anchor link to

Ограничения частоты для каждого пользователя для маркетинговых рассылок. Чтобы отключить ограничение, полностью опустите frequency_capping или отправьте days: 0 вместе с count: 0.

{ "days": 7, "count": 3, "exclude": false, "avoid": true }
  • days (int, 1–30, или 0 для отключения): окно ретроспективного анализа. Должно отправляться вместе с count — если одно из них равно 0, другое также должно быть 0; отправка одного как 0, а другого ненулевым вернет 400.
  • count (int, 1 или выше, или 0 для отключения): максимальное количество сообщений, разрешенное в течение days. То же правило парности, что и для days выше.
  • exclude (bool): жестко исключать пользователей, которые уже достигли лимита.
  • avoid (bool): мягко избегать пользователей, которые уже достигли лимита (они все еще учитываются в аналитике).
{ "value": 500, "bucket": "1s", "avoid": false }

Ограничивает скорость отправки. value — это количество сообщений в bucket; типичный bucket"1s".

Перечисление Platform

Anchor link to

IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, BAIDU_ANDROID, HUAWEI_ANDROID, SMS, WEB, KAKAO, TELEGRAM, LINE, WHATS_APP, VIBER.

Перечисление MessageType

Anchor link to
  • MESSAGE_TYPE_UNSPECIFIED: эквивалентно MESSAGE_TYPE_MARKETING.
  • MESSAGE_TYPE_MARKETING: подлежит фильтрации по контрольной группе и ограничению частоты.
  • MESSAGE_TYPE_TRANSACTIONAL: пропускает фильтрацию по контрольной группе и ограничение частоты. Используйте для подтверждений заказов, одноразовых паролей (OTP) и подобных критически важных потоков.

Связанные материалы

Anchor link to