跳到内容

发送通知

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

创建并计划发送单条消息。

请求结构

Anchor link to

请求正文是一个 NotifyRequest,它只有以下两种类型之一:

  • segment:通过分群代码、seglang 表达式或结构化筛选表达式来定位受众分群。
  • transactional:发送到明确的 hwid、user ID、push token 或测试设备列表。
Shape
{
"segment": { ... } // OR
"transactional": { ... }
}

NotifySegment

Anchor link to

定位匹配受众分群或筛选表达式的用户。

字段类型描述
scheduleSchedule发送时间和方式。必需。
applicationstringApplication code
platformsarray of Platform消息定位的平台。
codestringSegment code。与 expressionfilter_expression 互斥。
expressionstringSeglang 表达式。
filter_expressionFilterExpression结构化筛选表达式(高级)。
payloadPayloadPush / SMS / Telegram / Kakao payload。与 email_payload 互斥。
email_payloadEmailPayloadEmail payload。
campaignstring将此消息归属的 Campaign code
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必需。
applicationstringApplication code
platformsarray of Platform消息定位的平台。
test_devicesbool如果为 true,则仅发送到应用的测试设备。
hwids{ "list": [string, ...] }仅发送到这些 hwids
users{ "list": [string, ...] }仅发送到这些 user IDs
push_tokens{ "list": [string, ...] }仅发送到这些 push tokens
payloadPayloadPush / SMS / Telegram / Kakao payload。
email_payloadEmailPayloadEmail payload。
return_unknown_identifiersbool当为 true 时,响应的 unknown_identifiers 会列出未找到的标识符。
campaign, frequency_capping, send_rate, message_type, dynamic_content_placeholders, meta_data见上文 NotifySegment

test_deviceshwidsuserspush_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
}
}'
{
"result": {
"message_code": "XXXXX-XXXXX-XXXXX",
"unknown_identifiers": []
}
}
字段类型描述
message_codestring唯一的 message code。可与 /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 天。
afterdurationat 的替代方案。在“现在”之后经过此偏移量后发送(例如 “3600s”)。
follow_user_timezonebool当为 true 时,每个设备将在其本地时区的 at 时间接收消息。
past_timezones_behaviourenumPAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY (默认)、PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SENDPAST_TIMEZONES_BEHAVIOUR_NEXT_DAY。仅当 follow_user_timezonetrue 时有意义。

FrequencyCapping

Anchor link to

针对营销发送的每用户频率限制。

{ "days": 7, "count": 3, "exclude": false, "avoid": true }
  • days (int, 1–30):回溯窗口。
  • count (int):在 days 内允许的最大消息数。
  • exclude (bool):硬性排除已达到上限的用户。
  • avoid (bool):软性规避已达到上限的用户(他们仍会计入分析)。
{ "value": 500, "bucket": "1s", "avoid": false }

节流控制发送。value 是每个 bucket 的消息数;典型的 bucket“1s”

Platform enum

Anchor link to

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

MessageType enum

Anchor link to
  • MESSAGE_TYPE_UNSPECIFIED:等同于 MESSAGE_TYPE_MARKETING
  • MESSAGE_TYPE_MARKETING:受对照组筛选和频率上限限制。
  • MESSAGE_TYPE_TRANSACTIONAL:跳过对照组筛选和频率上限。用于订单确认、一次性密码 (OTP) 和类似的关建流程。

相关内容

Anchor link to