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

Для просмотра списка отправленных push кампаний отправляется GET запрос по ссылке

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

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

limit количество записей которое нужно взять 
offset смещение
from дата начала выбранного промежутка
to дата окончания промежутка
website_id  ID сайта, для которого запрашивается статистика

*Указывайте даты в формате 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 количество записей которое нужно взять
offset смещение

Ограничение на количество получаемых записей в ответ - до 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 идентификатор сайта

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

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

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

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

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

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

id идентификатор сайта (обязательный)
limit количество записей которое нужно взять
offset смещение
 subscription_date_from фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")
subscription_date_to фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")

Ограничение на количество получаемых записей в ответ - до 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
    }
]

Possible push subscrber's statuses

0 deactivated
1 active
6 unsubscribed
 

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

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

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

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

id идентификатор сайта (обязательный)

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

{
  "total": 2
}
 

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

Нужно сделать GET запрос по ссылке

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

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

id идентификатор сайта

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

{
    "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 код для сайта

Нужно сделать GET запрос по ссылке

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

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

id идентификатор сайта
 

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

Для того, чтобы активировать или деактивировать подписчика, нужно отправить POST запрос по ссылке

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

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

id идентификатор подписчика
state тригер переключения состояния подписчика, 1 – активен, 0 – деактивирован

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

{
  "result": true
}
 

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

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

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

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

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

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

title заголовок
website_id идентификатор сайта
body тело рассылки
ttl время жизни push рассылки

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

link ссылка для перехода, если не указана будет взята ссылка сайта
filter_lang фильтрация подписчиков по языку (пример ru)
filter_browser фильтрация по браузеру, может принимать несколько значений разделенных запятой (пример – Chrome,Safari)
filter_region фильтр по региону, принимает JSON строку с перечнем кодов стран, пример (["UA"])
filter_url  фильтр по ссылке, принимает JSON строку вида {"type":"include","search":"pu"} type может иметь три значения - 'direct', 'include', 'exclude' если type равен 'direct' - search является массивом ссылок, в противномм случае - search является обычной строкой для поиска
filter_subscription_date_from фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")
filter_subscription_date_to фильтр по дате добавления подписчиков (указывается дата и время с и по такой то промежуток времени) задается в формате "Y-m-d" (Пример: "2018-03-11")
filter сегментация по одной из переменных
stretch_time время, в течение которого рассылается push-рассылка. Указывается в секундах. Если не указано, используется время по умолчанию (5 часов).
send_date запланировать рассылку на конкретную дату на конкретное время: Y-m-d H:i:s (пример 2020-09-11 16:19:10)
buttons добавление кнопок к пуш рассылке, примает JSON строку с перечнем кнопок и их значений, пример - [{"text":"Button1","link":"link1"}] кнопок не может быть больше двух
image

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

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

icon

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

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

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

где:

variable_name имя переменной
operator соединяющий оператор, может принимать значения только or или and
conditions массив условий
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 id push рассыки

Пример ответа сервера при успешном получении статистики:

{
"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 В архиве