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

Email API

createEmailMessage Устарел

Anchor link to

Создает email-сообщение.

POST https://api.pushwoosh.com/json/1.3/createEmailMessage

Параметры тела запроса

Anchor link to
ИмяТип
ОбязательныйОписание
authstringДаТокен доступа API из Панели управления Pushwoosh.
applicationstringДаКод приложения Pushwoosh
notificationsarrayДаJSON-массив, содержащий детали email-сообщения. См. таблицу Параметры Notifications ниже.

Параметры Notifications

Anchor link to
ИмяТип
ОбязательныйОписание
send_datestringДаОпределяет, когда отправлять email. Формат: YYYY-MM-DD HH:mm или "now".
presetstringДаКод пресета Email. Скопируйте из URL-адреса в Редакторе контента Email в Панели управления Pushwoosh.
subjectstring или objectНетТема email-сообщения. Email всегда будет на языке контента. Если subject не содержит соответствующего языка для content, тема будет пустой.
contentstring или objectНетСодержимое тела email. Может быть строкой для простого HTML-контента или объектом для локализованных версий.
attachmentsarrayНетВложения в email. Доступно только два вложения. Каждое вложение не должно превышать 1 МБ (в кодировке base64).
list_unsubscribestringНетПозволяет установить пользовательский URL для заголовка “Link-Unsubscribe”.
campaignstringНетКод кампании для связи email с определенной кампанией.
ignore_user_timezonebooleanНетЕсли true, отправляет email немедленно, игнорируя часовые пояса пользователей.
timezonestringНетОтправляет email в соответствии с часовым поясом пользователя. Пример: "America/New_York".
filterstringНетОтправляет email пользователям, соответствующим определенному условию фильтра.
devicesarrayНетСписок email-адресов (максимум 1000) для отправки целевых email. При использовании сообщение отправляется только на эти адреса. Игнорируется, если используется Группа приложений.
use_auto_registrationbooleanНетЕсли true, автоматически регистрирует email из параметра devices.
usersarrayНетЕсли установлено, email-сообщение будет доставлено только указанным User ID (зарегистрированным через вызов /registerEmail). Не более 1000 User ID в массиве. Если указан параметр “devices”, параметр “users” будет проигнорирован.
dynamic_content_placeholdersobjectНетПлейсхолдеры для динамического контента вместо значений тегов устройства.
conditionsarrayНетУсловия сегментации с использованием тегов. Пример: [["Country", "EQ", "BR"]].
fromobjectНетУкажите пользовательское имя и email отправителя, переопределяя значения по умолчанию в свойствах приложения.
reply-toobjectНетУкажите пользовательский email для ответа, переопределяя значение по умолчанию в свойствах приложения.
bccarrayНетBCC (Слепая копия): массив email-адресов, которые получают копию email, невидимую для других получателей.
email_typestringНетУкажите тип email: "marketing" или "transactional". Если не указан, пользователи с PW_ControlGroup: true не получат сообщение.
email_categorystringОбязателен, когда email_type равен "marketing".Укажите одно из названий категорий, настроенных в центре управления подписками (например, Newsletter, Promotional, Product Updates).
transactionIdstringНетУникальный идентификатор сообщения для предотвращения повторной отправки в случае проблем с сетью. Хранится на стороне Pushwoosh в течение 5 минут.
capping_daysintegerНетКоличество дней (максимум 30) для применения ограничения частоты отправки на устройство. Примечание: Убедитесь, что Глобальное ограничение частоты отправки настроено в Панели управления.
capping_countintegerНетМаксимальное количество email, которое может быть отправлено из определенного приложения на конкретное устройство в течение периода capping_days. Если созданное сообщение превышает лимит capping_count для устройства, оно не будет отправлено на это устройство.
capping_excludebooleanНетЕсли установлено значение true, этот email не будет учитываться при ограничении частоты для будущих email.
capping_avoidbooleanНетЕсли установлено значение true, ограничение частоты не будет применяться к этому конкретному email.
send_rateintegerНетОграничение количества сообщений, которые могут быть отправлены в секунду всем пользователям. Помогает предотвратить перегрузку бэкенда при массовых отправках.
send_rate_avoidbooleanНетЕсли установлено значение true, ограничение скорости отправки не будет применяться к этому конкретному email.

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

Anchor link to
{
"request": {
"auth": "API_ACCESS_TOKEN", // required. API access token from Pushwoosh Control Panel
"application": "APPLICATION_CODE", // required. Pushwoosh application code.
"notifications": [{
"send_date": "now", // required. YYYY-MM-DD HH:mm OR 'now'
"preset": "ERXXX-32XXX", // required. Copy Email preset code from the URL bar of
// the Email Content editor page in Pushwoosh Control Panel.
"subject": { // optional. Email message subject line.
"de": "subject de",
"en": "subject en"
},
"content": { // optional. Email body content.
"de": "<html><body>de Hello, moto</body></html>",
"default": "<html><body>default Hello, moto</body></html>"
},
"attachments": [{ // optional. Email attachments
"name": "image.png", // "name" - file name
"content": "iVBANA...AFTkuQmwC" // "content" - base64 encoded content of the file
}, {
"name": "file.pdf",
"content": "JVBERi...AFTarEGC"
}],
"list_unsubscribe": "URL", // optional. Allow to set custom URL for "Link-Unsubscribe" header
"campaign": "CAMPAIGN_CODE", // optional. To assign this email message to a particular campaign,
// add a campaign code here.
"ignore_user_timezone": true, // optional.
"timezone": "America/New_York", // optional. Specify to send the message according to
// timezone set on user's device.
"filter": "FILTER_NAME", // optional. Send the message to specific users meeting filter conditions.
"devices": [ // optional. Specify email addresses to send targeted email messages.
"email_address1", // Not more than 1000 addresses in an array.
"email_address2" // If set, the message will only be sent to the addresses on
], // the list. Ignored if the Application Group is used.
"use_auto_registration": true, // optional. Automatically register emails specified in "devices" parameter
"users": [ // optional. If set, the email message will only be delivered to the
"userId1", // specified user IDs (registered via /registerEmail call).
"userId2" // Not more than 1000 user IDs in an array.
], // If the "devices" parameter is specified,
// the "users" parameter will be ignored.
"dynamic_content_placeholders": { // optional. Placeholders for dynamic content instead of device tag values.
"firstname": "John",
"firstname_en": "John"
},
"conditions": [ // optional. Segmentation conditions, see remark below.
["Country", "EQ", "BR"],
["Language", "EQ", "pt"]
],
"from": { // optional. Specify a sender name and sender email address
"name": "alias from", // to replace the default "From name" and "From email"
"email": "from-email@email.com" // set up in application properties.
},
"reply-to": { // optional. Specify an email address to replace the
"name": "alias reply to ", // default "Reply to" set up in application properties.
"email": "reply-to@email.com"
},
"bcc": [ // optional. BCC: array of email addresses that receive a copy without other recipients seeing them.
"bcc1@example.com",
"bcc2@example.com"
],
"email_type": "marketing", // optional. "marketing" or "transactional".
// If omitted, users with PW_ControlGroup: true will not receive the message.
"email_category": "category name",// required when email_type is "marketing". Category name.
"transactionId": "unique UUID", // optional. Unique message identifier to prevent re-sending
// in case of network problems. Stored on the side
// of Pushwoosh for 5 minutes.
// Frequency capping params. Ensure that Global frequency capping is configured in the Control Panel.
// Frequency capping does not apply to transactional messages.
// In all other cases, including omitted "email_type", frequency capping applies.
"capping_days": 30, // optional. Amount of days for frequency capping (max 30 days)
"capping_count": 10, // optional. The max number of emails that can be sent from a
// specific app to a particular device within a 'capping_days'
// period. In case the message created exceeds the
// 'capping_count' limit for a device, it won't
// be sent to that device.
"capping_exclude": true, // optional. If set to true, this email will not
// be counted towards the capping for future emails.
"capping_avoid": true, // optional. If set to true, capping will not be applied to
// this specific email.
"send_rate": 100, // optional. Throttling limit.
// Limit how many messages can be sent per second across all users.
// Helps prevent backend overload during high-volume sends.
"send_rate_avoid": true, // optional. If set to true, throttling limit will not be applied to
// this specific email.
}]
}
}

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

Anchor link to
{
"status_code": 200,
"status_message": "OK",
"response": null
}

Условия по тегам

Anchor link to

Каждое условие по тегу представляет собой массив вида [tagName, operator, operand], где

  • tagName: имя тега
  • operator: “EQ” | “IN” | “NOTEQ” | “NOTIN” | “LTE” | “GTE” | “BETWEEN”
  • operand: string | integer | array | date

Описание операнда

Anchor link to
  • EQ: значение тега равно операнду;
  • IN: значение тега пересекается с операндом (операнд всегда должен быть массивом);
  • NOTEQ: значение тега не равно операнду;
  • NOTIN: значение тега не пересекается с операндом (операнд всегда должен быть массивом);
  • GTE: значение тега больше или равно операнду;
  • LTE: значение тега меньше или равно операнду;
  • BETWEEN: значение тега больше или равно минимальному значению операнда, но меньше или равно максимальному значению операнда (операнд всегда должен быть массивом).

Строковые теги

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN
Допустимые операнды:

  • EQ, NOTEQ: операнд должен быть строкой;
  • IN, NOTIN: операнд должен быть массивом строк, например ["value 1", "value 2", "value N"];

Целочисленные теги

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Допустимые операнды:

  • EQ, NOTEQ, GTE, LTE: операнд должен быть целым числом;
  • IN, NOTIN: операнд должен быть массивом целых чисел, например [value 1, value 2, value N];
  • BETWEEN: операнд должен быть массивом целых чисел, например [min_value, max_value].

Теги даты

Anchor link to

Допустимые операторы: EQ, IN, NOTEQ, NOTIN, BETWEEN, GTE, LTE
Допустимые операнды:

  • "YYYY-MM-DD 00:00" (строка)
  • unix timestamp 1234567890 (целое число)
  • "N days ago" (строка) для операторов EQ, BETWEEN, GTE, LTE

Логические теги

Anchor link to

Допустимые операторы: EQ
Допустимые операнды: 0, 1, true, false

Теги-списки

Anchor link to

Допустимые операторы: IN
Допустимые операнды: операнд должен быть массивом строк, например ["value 1", "value 2", "value N"].

registerEmail

Anchor link to

Регистрирует email-адрес для приложения.

POST https://api.pushwoosh.com/json/1.3/registerEmail

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX вашим фактическим токеном устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
email*stringEmail-адрес.
languagestringЯзыковая локаль устройства. Должен быть двухбуквенным кодом в нижнем регистре согласно стандарту ISO-639-1.
userIdstringUser ID для связи с email-адресом.
tz_offsetintegerСмещение часового пояса в секундах.
tagsobjectЗначения тегов для присвоения зарегистрированному устройству.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "APPLICATION_CODE", // required. Pushwoosh application code.
"email":"email@domain.com", // required. Email address to be registered.
"language": "en", // optional. Language locale.
"userId": "userId", // optional. User ID to associate with the email address.
"tz_offset": 3600, // optional. Timezone offset in seconds.
"tags": { // optional. Tag values to set for the device registered.
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1","string2"], // sets the list of values for Tags of List type
"DateTag": "2024-10-02 22:11", // note the time should be in UTC
"BooleanTag": true // valid values are: true, false
}
}
}

Коды ответа

Anchor link to

Публичный API возвращает результат в status_code. Используйте таблицу ниже, чтобы решить, следует ли повторять неудачный вызов.

status_codeЗначениеПовторять?
200Успех — email-адрес зарегистрирован.Нет — выполнено.
210Ошибка аргумента/валидации — запрос был понят, но отклонен (адрес в черном списке, недействительный или одноразовый email, неправильная платформа для плана аккаунта). См. сообщения об ошибке 210 ниже.Нет — тот же запрос вернет тот же 210. Запишите адрес и пропустите его.
400Неверно сформированный запрос — недействительный JSON или отсутствует обязательное поле.Нет — исправьте запрос, не повторяйте его.
403Запрещено — недействительный или ограниченный токен устройства API.Нет — исправьте авторизацию.
500Внутренняя ошибка сервера — временная проблема с инфраструктурой или тайм-аут.Да, с экспоненциальной задержкой — единственный временный случай.

Сообщения об ошибке 210

Anchor link to

Ответ 210 содержит конкретную причину в status_message.

status_messageЗначение
this hwid (email) is blacklistedАдрес находится в списке подавления после постоянного (жесткого) возврата и не будет повторно зарегистрирован.
hwid (email) is invalid / has invalid semanticАдрес не прошел валидацию.
hwid (email) is emptyАдрес не был предоставлен.
hwid (email) has invalid count of partsОтсутствует или лишний символ @.
hwid (email) has invalid local partЧасть до @ недействительна.
hwid (email) has invalid domain partДоменная часть недействительна.
hwid (email) has disposable domainАдрес использует одноразовый/временный домен email (например, 10minutemail).
hwid is not validСам hwid неверно сформирован.
only email platform allowed for Email Only subscriptionАккаунт находится на плане Email Only и не может регистрировать не-email устройства.

deleteEmail

Anchor link to

Удаляет email-адрес из вашей базы пользователей.

POST https://api.pushwoosh.com/json/1.3/deleteEmail

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX вашим фактическим токеном устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
applicationstringКод приложения Pushwoosh
emailstringEmail-адрес, использованный в запросе /registerEmail.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "APPLICATION_CODE", // required. Pushwoosh application code
"email": "email@domain.com" // required. Email to delete from app subscribers.
}
}

setEmailTags

Anchor link to

Устанавливает значения тегов для email-адреса.

POST https://api.pushwoosh.com/json/1.3/setEmailTags

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX вашим фактическим токеном устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
applicationstringКод приложения Pushwoosh
emailstringEmail-адрес.
tagsobjectJSON-объект тегов для установки, отправьте ‘null’ для удаления значения.
userIdstringUser ID, связанный с email-адресом.
{
"status_code": 200,
"status_message": "OK",
"response": {
"skipped": []
}
}
Пример
{
"request": {
"email": "email@domain.com", // required. Email address to set tags for.
"application": "APPLICATION_CODE", // required. Pushwoosh application code.
"tags": {
"StringTag": "string value",
"IntegerTag": 42,
"ListTag": ["string1", "string2"],
"DateTag": "2024-10-02 22:11", // time in UTC
"BooleanTag": true // valid values are: true, false
},
"userId": "userId" // optional. User ID associated with the email address.
}
}

registerEmailUser

Anchor link to

Связывает внешний User ID с указанным email-адресом.

POST https://api.pushwoosh.com/json/1.3/registerEmailUser

Может использоваться в вызове API /createEmailMessage (параметр ‘users’).

Заголовки запроса

Anchor link to
ИмяОбязательныйЗначениеОписание
AuthorizationДаToken XXXXТокен устройства API для доступа к Device API. Замените XXXX вашим фактическим токеном устройства API.

Тело запроса

Anchor link to
ИмяТипОписание
application*stringКод приложения Pushwoosh
email*stringEmail-адрес.
userId*stringUser ID для связи с email-адресом.
tz_offsetintegerСмещение часового пояса в секундах.
{
"status_code": 200,
"status_message": "OK",
"response": null
}
Пример
{
"request": {
"application": "APPLICATION_CODE", // required. Pushwoosh application code.
"email": "email@domain.com", // required. User email address.
"userId": "userId", // required. User ID to associate with the email address.
"tz_offset": 3600 // optional. Timezone offset in seconds.
}
}