API для push уведомлений

Получить список отправленных push рассылок

Чтобы получить список отправленных push рассылок, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/tasks

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

Параметр Тип Описание
limit int Количество возвращаемых записей  optional
offset int Смещение выдачи optional
from* string Дата начала выбранного промежутка optional
to* string Дата окончания промежутка optional
website_id int ID сайта, для которого запрашивается статистика optional

*Указывайте даты в формате YYYY-mm-dd H:i:s.

Ограничение на количество получаемых записей в ответ - до 100 за раз.

Для получения списков необходимо использовать параметр offset для смещения по результатам.

Пример URL запроса (вывести 10 записей, начиная со второй):

https://api.sendpulse.com/push/tasks/?limit=10&offset=2

В случае успешного запроса вы получите ответ:

[
  {
    "id": 121,
    "title": "push title",
    "body": "push text",
    "website_id": 53,
    "from": "2015-11-17 14:44:47",
    "to": "2015-12-23 19:42:27",
    "status": 13
  }
]

Получить общее количество сайтов

Чтобы просмотреть общее количество сайтов,  отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/websites/total

В случае успешного запроса вы получите ответ:

{
  "total": 2
}

Получить список сайтов

Чтобы получить список сайтов, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/websites/

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

Параметр Тип Описание
limit int Количество записей, которое нужно взять optional
offset int Смещение выдачи optional

Ограничение на количество получаемых записей в ответ - до 100 за раз.

Для получения списков необходимо использовать параметр offset для смещения по результатам.

Пример URL запроса при передаче дополнительных параметров:

https://api.sendpulse.com/push/websites/?limit=10&offset=2

В случае успешного запроса вы получите ответ:

[
  {
    "id": 53,
    "url": "www.test-site.com",
    "add_date": "2015-11-23 14:42:37",
    "status": 1
  }
]

Получить список переменных для сайта

Чтобы получить список всех переменных для данного сайта, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/websites/{id}/variables

Параметр запроса:

Параметр Тип Описание
id int ID сайта required

В случае успешного запроса вы получите ответ:

[
  {
    "id": 97,
    "name": "uname",
    "type": "string"
  }
]

Получить список подписчиков сайта

Чтобы получить список подписчиков для конкретного сайта, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/websites/{id}/subscriptions

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

Параметр Тип Описание
id int ID сайта required
limit int Количество записей, которое нужно взять optional
offset int Смещение выдачи optional
subscription_date_from string Фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате Y-m-d (Пример: 2018-03-11) optional
subscription_date_to string Фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате Y-m-d (Пример: 2018-03-11) optional

Ограничение на количество получаемых записей в ответ - до 100 за раз.

Для получения списков необходимо использовать параметр offset для смещения по результатам.

Пример URL запроса при передаче дополнительных параметров:

https://api.sendpulse.com/push/websites/37731/subscriptions/?subscription_date_from%3D2018-09-04%2001%3A54%3A00%26subscription_date_to%3D2018-09-04%2017%3A00%3A00

В случае успешного запроса вы получите ответ:

[
    {
        "id": 311003743,
        "browser": "Firefox",
        "lang": "en",
        "os": "Linux",
        "country_code": "UA",
        "city": "Dnipro",
        "variables": [],
        "subscription_date": "2018-08-13 14:27:11",
        "status": 1
    },
    {
        "id": 311008277,
        "browser": "Opera",
        "lang": "en",
        "os": "Linux",
        "country_code": "UA",
        "city": "Dnipro",
        "variables": [],
        "subscription_date": "2018-08-13 14:33:51",
        "status": 1
    }
]

Статусы подписчиков:

Статус Описание
0 Deactivated
1 Active
6 Unsubscribed

Получить количество подписчиков сайта

Чтобы получить общее число подписчиков для сайта, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/websites/{id}/subscriptions/total

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

Параметр Тип Описание
id int ID сайта required

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

{
  "total": 2
}

Получить информацию по сайту

Чтобы получить информацию по сайту, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/websites/info/{id} 

Параметр запроса:

Параметр Тип Описание
id int ID сайта required

В случае успешного запроса вы получите ответ:

{
    "id": 111111,
    "url": "yoursite.com",
    "status": "active",
    "icon": "https://login.sendpulse.com/img/my/push/push-default-icons/icon.png",
    "add_date": "2017-11-09 13:08:37",
    "total_subscribers": 1081,
    "unsubscribed": 30,
    "subscribers_today": 10,
    "active_subscribers": 1051
}

Получить JS код для сайта

Чтобы получить JS код для сайта, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/websites/{id}/code 

Параметр запроса:

Параметр Тип Описание
id int ID сайта required

В случае успешного запроса вы получите ответ:

{
    "script_url": "//web.webpushs.com/js/push/00008bf5640047e81be53f4a2891dd36e9_1.js",
    "script_code": "<script charset=\"UTF-8\" src=\"//web.webpushs.com/js/push/00008bf5640047e81be53f4a2891dd36e9_1.js\" async></script>"
}

Активировать/Деактивировать подписчика

Чтобы активировать или деактивировать подписчика, отправьте POST запрос по ссылке:

https://api.sendpulse.com/push/subscriptions/state

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

Параметр Тип Описание
id int ID подписчика required
state int Тригер переключения состояния подписчика, 1 – активен, 0 – деактивирован required

В случае успешного запроса вы получите ответ:

{
  "result": true
}

Создать новую push-рассылку

Чтобы создать новую push-рассылку, отправьте POST запрос по ссылке:

https://api.sendpulse.com/push/tasks

Ограничение по отправке push-уведомлений для сайта — 1 рассылка в 15 минут.

Для триггерных рассылок push-уведомлений используйте наш функционал Automation360.

Обязательные параметры запроса:

Параметр Тип Описание
title string Заголовок required
website_id int ID сайта required
body string Тело рассылки required
ttl int Время жизни push рассылки, указывается в секундах. максимум - 86400 сек (24 часа) required
link string Ссылка для перехода, если не указана будет взята ссылка сайта optional
filter_lang string Фильтрация подписчиков по языку (например, ru) optional
filter_browser string Фильтрация по браузеру, может принимать несколько значений разделенных запятой (например – Chrome, Safari) optional
filter_region string Фильтр по региону, принимает JSON строку с перечнем кодов стран, например, ["UA"] optional
filter_url  string

Фильтр по ссылке, принимает JSON строку вида {"type":"include","search":"pu"}.

type может иметь три значения - direct, include и exclude.

Если type равен direct - search является массивом ссылок, в противном случае - search является обычной строкой для поиска

optional

filter_subscription_date_from string Фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (пример: "2018-03-11") optional
filter_subscription_date_to string Фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (пример: "2018-03-11") optional
filter object Сегментация по одной из переменных optional
stretch_time int Время, в течение которого рассылается push-рассылка. Указывается в секундах. Если не указано, используется время по умолчанию (5 часов). optional
send_date string Запланировать рассылку на конкретную дату на конкретное время: Y-m-d H:i:s, например 2020-09-11 16:19:10 optional
buttons string Добавление кнопок к push рассылке, принимает JSON строку с перечнем кнопок и их значений, например, [{"text":"Button1","link":"link1"}] optional
image string

Для вставки большого изображения в пуш-уведомление параметр "image" должен содержать JSON строку вида {"name":"test.jpg","data":"file_content"}, где test.jpg - имя изображения, а file_content - base64_encode(содержимое файла), которое, например в PHP, можно получить через "file_get_contents";

*Изображение должно быть файлом типа JPG, PNG, GIF до 200KB

optional

icon string

Для вставки пользовательской картинки стандартного размера, данный параметр должен содержать JSON строку вида {"name":"icon.jpg","data":"base64_file_content"}
где icon.jpg — имя изображения, а base64_file_content — его содержимое

optional

Возможно добавление максимум 10 фильтров в одной рассылке.

Пример структуры параметра filter:

{
  "variable_name": "uname",
  "operator": "or",
  "conditions": [
    {
      "condition": "likewith",
      "value": "a"
    },
    {
      "condition": "notequal",
      "value": "b"
    }
  ]
}

где:

Параметр Тип Описание
variable_name string Имя переменной
operator string Соединяющий оператор, может принимать значения только or или and
conditions array Массив условий
condition Может принимать такие значения:
equal Полностью равно
notequal Полностью не равно
greaterthan Больше чем
lessthan Меньше чем
startwith Начинается с
endwith Заканчивается этим значением
likewith Содержит в себе
notlikewith Не содержит в себе
value Значение переменной

В случае успешного запроса вы получите ответ:

{
  "result": true,
  "id": 1
}

Статистика по отправленным рассылкам

Чтобы получить статистику по отправленным web push рассылкам, отправьте GET запрос по ссылке:

https://api.sendpulse.com/push/tasks/{id}

Параметр запроса:

Параметр Тип Описание
id int ID push рассылки required

В случае успешного запроса вы получите ответ:

{
   "id":36,
   "message":{
      "title":"s",
      "text":"s",
      "link":"http://aaa.aaa"
   },
   "website":"www.google.com",
   "website_id":53,
   "status":3,
   "send":"21",
   "delivered":14,
   "redirect":13
}

Таблица статусов рассылки:

Код статуса Описание
0 Новая рассылка
2 Отправляется
3 Рассылка отправлена
8 Тестовая рассылка отправлена
12 Нет активных получателей
13 Рассылка в процессе создания — копирование подписок
15 Рассылка ожидает итога A/B тестирования
16 Рассылка отменена пользователем
30 Рассылка в архиве