Документация REST API сервиса SendPulse

Вступление

Email сервис

SMTP сервис

Push-рассылки

Коды ошибок и их описание

Вступление

API интерфейс используется для того, чтобы интегрировать возможности сервиса рассылок SendPulse в личный проект клиента. API предназначен для разработчиков и сопровождается детальной документацией.

Библиотеки SendPulse API и примеры использования 

Описание

REST API сервиса SendPulse работает по протоколу HTTP и представляет собой набор методов, с помощью которых совершаются запросы и возвращаются ответы для каждой операции. Все ответы приходят в виде JSON структур.

Основной URL

Все ссылки на запросы к API в данной документации включают обязательный основной URL:
https://api.sendpulse.com

Авторизация

Процесс авторизации возможен при наличии персонального ключа, которым в дальнейшем должен быть подписан каждый запрос к API.

Необходимые для получения ключа параметры можно найти в настройках личного кабинета
https://login.sendpulse.com/settings на вкладке API.

Используются параметры:

grant_type должен быть равен client_credentials
client_id ваш ID (API)
client_secret ваш секрет (API)

Для получения ключа необходимо отправить POST запрос по ссылке:

https://api.sendpulse.com/oauth/access_token

Полученный ключ действителен в течение 1 часа и не требует повторного запроса при каждой операции. По истечении срока действия ключа (1 час) необходимо отправить повторный запрос на получение ключа.

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

{
  "access_token": "tf4Si1LydYpTAPyHXUgjig72jlrd5HpIJL5oigmc",
  "token_type": "Bearer",
  "expires_in": 3600
}

Пример ключа:

Authorization: Bearer tf4Si1LydYpTAPyHXUgjig72jlrd5HpIJL5oigmc

Email сервис

Адресные книги

Путем использования API вы можете создавать адресные книги, редактировать их, удалять и проводить другие доступные операции со списками рассылки.

Создание книги

Для создания адресной книги отправляется POST запрос по ссылке

https://api.sendpulse.com/addressbooks

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

bookName имя книги

В случае успеха сервер вернет ответ с ID значением созданной книги

Редактирование книги

Для редактирования адресной книги отправляется PUT запрос по ссылке

https://api.sendpulse.com/addressbooks/{id}

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

id идентификатор адресной книги
name новое имя книги

В случае успеха сервер возвращает ответ со значением result = true

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

Для получения списка всех созданных адресных книг с подробной информацией по каждой из них отправляется GET запрос по ссылке

https://api.sendpulse.com/addressbooks

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

limit количество записей
offset смещение выдачи (начиная с какой записи показывать)

При использовании необязательных параметров ссылка формируется следующего типа:

https://api.sendpulse.com/addressbooks?limit=10&offset=5

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

id идентификатор книги
name имя книги
all_email_qty общее количество адресов
active_email_qty количество активных адресов
inactive_email_qty количество неактивных адресов
creationdate дата создания
status код статуса
status_explain объяснение статуса

Пример ответа для получения списка адресных книг:

[
{
    "id": "1",
    "name": "My first book",
    "all_email_qty": "1",
    "active_email_qty": "0",
    "inactive_email_qty": "1",
    "creationdate": "2015-04-20 08:52:40",
    "status": "0",
    "status_explain": "Active"
  },
  {
    "id": "2",
    "name": "My second book",
    "all_email_qty": "6",
    "active_email_qty": "0",
    "inactive_email_qty": "6",
    "creationdate": "2015-04-20 09:02:39",
    "status": "0",
    "status_explain": "Active"
  }
]

Информация по книге

Для получения детальной информации по одной конкретной адресной книге отправляется GET запрос по ссылке

https://api.sendpulse.com/addressbooks/{id}

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

id идентификатор книги
name имя книги
all_email_qty общее количество адресов
active_email_qty количество активных адресов
inactive_email_qty количество неактивных адресов
creationdate дата создания
status код статуса
status_explain объяснение статуса

Пример ответа для информации по книге: 

[
{
    "id": "1",
    "name": "My first book",
    "all_email_qty": "1",
    "active_email_qty": "0",
    "inactive_email_qty": "1",
    "creationdate": "2015-04-20 08:52:40",
    "status": "0",
    "status_explain": "Active"
  },
]



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

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

https://api.sendpulse.com/addressbooks/{id}/variables 

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

id идентификатор книги

В https://sendpulse.com/ru/integrations/api#add-email можно добавить произвольные пользовательские переменные, просто указав их список в запросе. Если такой переменной нет - она будет создана

Получить список email адресов из книги

Для получения списка email адресов из конкретной адресной книги нужно сделать GET запрос по ссылке

https://api.sendpulse.com/addressbooks/{id}/emails

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

id идентификатор книги
limit (необязательный) количество записей
offset (необязательный) смещение выдачи (начиная с какой записи показывать)

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

https://api.sendpulse.com/addressbooks/{id}/emails?limit=10&offset=5

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

email адрес
status код статуса
status_explain объяснение статуса
variables массив с переменными для данного адреса

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

[
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "status": "0",
    "status_explain": "New",
    "variables": [
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      },
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      }
    ]
  },
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "status": "0",
    "status_explain": "New",
    "variables": [
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      },
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      }
    ]
  }
]

Добавление email адресов в книгу

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

https://api.sendpulse.com/addressbooks/{id}/emails

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

id идентификатор книги
emails сериализованный массив с email адресами

Пример структуры массива email адресов

[
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "variables": {
      "имя переменной": "значение",
      "имя переменной": "значение"
    }
  },
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "variables": {
      "имя переменной": "значение",
      "имя переменной": "значение"
    }
  }
]

В случае успеха вернет JSON строку с result = true

Удаление адресов из адресной книги

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

https://api.sendpulse.com/addressbooks

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

id идентификатор книги
emails сериализованный массив с email адресами

Пример структуры массива email адресов

[
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
]

В случае успеха вернет JSON строку с result = true

Получение информации по email адресу из адресной книги

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

https://api.sendpulse.com/addressbooks/{id}/emails/{email}

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

id идентификатор книги
email еmail адрес, по которому нужно получить информацию

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

email email адрес
abook_id идентификатор адресной книги
status код статуса
status_explain объяснение статуса
variables массив переменных для данного адреса

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

{
  "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "abook_id": "34",
  "status": "1",
  "status_explain": "Active",
  "variables": [
    {
      "name": "имя переменной",
      "type": "string",
      "value": "значение"
    },
    {
      "name": "имя переменной",
      "type": "string",
      "value": "значение"
    },
    {
      "name": "имя переменной",
      "type": "string",
      "value": "значение"
    }
  ]
}

Удаление адресной книги

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

https://api.sendpulse.com/addressbooks/{id}

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

id идентификатор книги

В случае успеха вернет JSON строку с result = true

Расчет стоимости кампании, проведенной по адресной книге

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

https://api.sendpulse.com/addressbooks/{id}/cost

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

id идентификатор книги

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

cur валюта, которая использовалась для расчета
sent_emails_qty общее количество адресов для отправки
overdraftAllEmailsPrice цена за превышение лимита по email адресам
addressesDeltaFromBalance количество email, за которые будет взята плата с баланса
addressesDeltaFromTariff количество адресов, которые будут сняты по тарифу
max_emails_per_task ограничение тарифа по адресам
result хватает денег или нет (true - хватает, false - нет)

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

{
  "cur": "RUR",
  "sent_emails_qty": 16,
  "overdraftAllEmailsPrice": 0,
  "addressesDeltaFromBalance": 0,
  "addressesDeltaFromTariff": 16,
  "max_emails_per_task": "500",
  "result": true
}

Кампании

Создание кампании

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

https://api.sendpulse.com/campaigns

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

sender_name имя отправителя
sender_email адрес отправителя
subject тема письма
body тело письма, кодированное в base64
list_id идентификатор адресной книги
name имя кампании (необязательный параметр)
attachments вложенные файлы, сериализованный массив, в котором ключ - имя файла, а значение - содержимое файла (необязательный параметр)

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

{
  "id": "27",
  "status": "0",
  "count": "0",
  "tariff_email_qty": "1",
  "paid_email_qty": "0",
  "overdraft_price": "0",
  "ovedraft_currency": "RUR"
}

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

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

https://api.sendpulse.com/campaigns/{id}

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

id идентификатор кампании

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

{
  "id": "27",
  "name": "Тестовая рассылка",
  "message": {
    "sender_name": "John Doe",
    "sender_email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "subject": "Моя первая рассылка",
    "body": "<p>\ \	Привет мир!<\/p>",
    "list_id": "28",
    "attachments": "file.zip, file2.zip"
  },
  "status": "3",
  "all_email_qty": 9712,
  "tariff_email_qty": "9712",
  "paid_email_qty": "0",
  "overdraft_price": 0,
  "overdraft_currency": "RUR"
}

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

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

https://api.sendpulse.com/campaigns

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

limit количество записей (необязательный параметр)
offset смещение выдачи (начиная с какой записи показывать)

При использовании необязательных параметров ссылка имеет следующий вид:

https://api.sendpulse.com/campaigns?limit=10&offset=5

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

[
  {
    "id": "27",
    "name": "Тестовая рассылка",
    "message": {
      "sender_name": "John Doe",
      "sender_email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
      "subject": "Моя первая рассылка",
      "body": "<p>\ \	Привет мир!<\/p>",
      "list_id": "28",
      "attachments": "file.zip, file2.zip"
    },
    "status": "3",
    "all_email_qty": 9712,
    "tariff_email_qty": "9712",
    "paid_email_qty": "0",
    "overdraft_price": 0,
    "overdraft_currency": "RUR"
  }
]

Статистика по странам

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

https://api.sendpulse.com/campaigns/{id}/countries

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

id идентификатор кампании

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

RU код страны
34567 количество открытий

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

{
  "UA": 23,
  "RU": 34567
}

Статистика по рефералам

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

https://api.sendpulse.com/campaigns/{id}/referrals

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

id идентификатор кампании

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

link ссылка из письма
count количество переходов

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

[
  {
    "link": "http://first_link.com"
    "count": 123454
  },
  {
    "link": "http://second_link.com"
    "count": 5463
  }
]

Отменить отправку кампании

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

https://api.sendpulse.com/campaigns/{id}

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

id идентификатор кампании

В случае успеха вернет JSON строку с result = true

Отправители

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

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

https://api.sendpulse.com/senders

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

[
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "status": "Active"
  },
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "status": "Active"
  }
]

Добавление отправителя

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

https://api.sendpulse.com/senders

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

email адрес отправителя
name имя отправителя

В случае успеха сервер вернет JSON строку с result = true

Удаление отправителя

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

https://api.sendpulse.com/senders

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

email адрес отправителя

В случае успеха сервер вернет JSON строку с result = true

Активация отправителя

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

https://api.sendpulse.com/senders/{email}/code

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

code активационный код

Пример ответа (в случае успеха):

{
  "result": true,
  "email": Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
}

Получить код активации отправителя на почту

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

https://api.sendpulse.com/senders/{email}/code

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

{
  "result": true,
  "email": Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
}

В случае успеха на почту будет выслано письмо с кодом активации.

Email адрес

Получить общую информацию по адресу

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

https://api.sendpulse.com/emails/{email}

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

[
  {
    "book_id": "39359",
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "status": "3",
    "variables": [
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      },
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      },
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      }
    ]
  },
  {
    "book_id": "39362",
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "status": "3",
    "variables": [
      {
	"name": "имя переменной",
	"type": "string",
	"value": "значение переменной"
      }
    ]
  }
]

Удалить адрес из всех книг

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

https://api.sendpulse.com/emails/{email}

В случае успеха вернет JSON строку с result = true

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

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

https://api.sendpulse.com/emails/{email}/campaigns

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

{
  "statistic": {
    "sent": 0,
    "open": 0,
    "link": 0
  },
  "blacklist": false
}

Черный список/ Blacklist

Просмотреть черный список

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

https://api.sendpulse.com/blacklist

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

[
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
]

Добавить адрес в черный список

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

https://api.sendpulse.com/blacklist

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

email строка с email адресами, разделенными запятыми
comment комментарий, кодированный в base64 (необязательный параметр)

Пример строки с email адресами, разделенными запятыми:

Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.,Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.,Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

В случае успеха вернет JSON строку с result = true

Удалить адрес из черного списка

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

https://api.sendpulse.com/blacklist

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

email строка с email адресами, разделенными запятыми

Пример строки с email адресами, разделенными запятыми:

Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.,Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.,Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

В случае успеха вернет JSON строку с result = true

Баланс

Просмотреть баланс пользователя

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

https://api.sendpulse.com/balance

Необязательный параметры запроса – значение валюты

При использовании необязательного параметра (значения валюты) ссылка будет иметь следующий вид:

https://api.sendpulse.com/balance/USD

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

{
  "currency": "USD",
  "balance_currency": 0.02
}

SMTP сервис

Отправить письмо

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

https://api.sendpulse.com/smtp/emails

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

email сериализованный массив с данными письма

Параметры массива email:

html HTML версия письма, закодированная в base64
text текстовая версия письма
subject тема письма
from массив с именем и адресом отправителя
to массив получателей
bcc массив
attachments массив, в котором ключ - это имя файла, а значение - содержание файла

Пример структуры массива email

{
  "html" : "<p>Example text</p>",
  "text" : "Example text",
  "subject" : "Example subject",
  "from" : {
      "name" : "Example name",
      "email" : "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
  },
  "to" : [
      {
	  "name" : "Recipient1 name",
	  "email" : "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
      },
      {
	  "name" : "Recipient2 name",
	  "email" : "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
      },
  ],
  "bcc" : [
      {
	  "name" : "Recipient1 name",
	  "email" : "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
      },
      {
	  "name" : "Recipient2 name",
	  "email" : "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
      },
  ],

    "attachments" {
            "text.txt" => "this is simple txt file"
  }
}

В случае успеха сервер вернет JSON строку с result = true

Получить список писем

Для получения списка всех отправленных писем, нужно сделать GET запрос по ссылке

https://api.sendpulse.com/smtp/emails

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

limit количество записей
offset смещение для выборки
from начальная дата для выборки
to максимальная дата для выборки
sender отправитель
recipient получатель

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

{
  "id": "123123",
  "sender": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "total_size": "1128",
  "sender_ip": "127.0.0.1",
  "smtp_answer_code": "250",
  "smtp_answer_subcode": "0",
  "smtp_answer_data": "Bad recipients",
  "used_ip": "5.104.224.87",
  "recipient": null,
  "subject": "SendPulse :: Email confirmation",
  "send_date": "2013-12-17 10:33:53",
  "tracking": {
    "click": 1,
    "open": 1,
    "link": [
      {
	"url": "http://some-url.com",
	"browser": "Chrome 29.0.1547.57",
	"os": "Linux",
	"screen_resolution": "1920x1080",
	"ip": "46.149.83.86",
	"country": "Ukraine",
	"action_date": "2013-09-30 11:27:40"
      }
    ],
    "client_info": [
      {
	"browser": "Thunderbird 17.0.8",
	"os": "Linux",
	"ip": "46.149.83.86",
	"country": "Ukraine",
	"action_date": "2013-09-30 11:27:49"
      }
    ]
  }
}

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

Для получения информации по конкретному письму, нужно сделать GET запрос по ссылке

https://api.sendpulse.com/smtp/emails/{id}

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

id идентификатор письма

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

{
  "id": "123123",
  "sender": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "total_size": "1128",
  "sender_ip": "127.0.0.1",
  "smtp_answer_code": "250",
  "smtp_answer_subcode": "0",
  "smtp_answer_data": "Bad recipients",
  "used_ip": "5.104.224.87",
  "recipient": null,
  "subject": "SendPulse :: Email confirmation",
  "send_date": "2013-12-17 10:33:53",
  "tracking": {
    "click": 1,
    "open": 1,
    "link": [
      {
	"url": "http://some-url.com",
	"browser": "Chrome 29.0.1547.57",
	"os": "Linux",
	"screen_resolution": "1920x1080",
	"ip": "46.149.83.86",
	"country": "Ukraine",
	"action_date": "2013-09-30 11:27:40"
      }
    ],
    "client_info": [
      {
	"browser": "Thunderbird 17.0.8",
	"os": "Linux",
	"ip": "46.149.83.86",
	"country": "Ukraine",
	"action_date": "2013-09-30 11:27:49"
      }
    ]
  }
}


Получить список баунсов за сутки

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

https://api.sendpulse.com/smtp/bounces/day

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

date дата, на которую нужно получить список баунсов. Формат даты YYYY-MM-DD
limit количество записей, которое нужно взять
offset смещение

Пример: https://api.sendpulse.com/smtp/bounces/day?limit=10&offset=20 - получит 10 записей начиная с 20

Баунсы получаются только за сутки, начиная с текущего момента. Например сегодня - 2016-04-28 14:34:00, следовательно записи будут получены за период с 2016-04-27 14:34:00 по 2016-04-28 14:34:00

Отписать получателя

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

https://api.sendpulse.com/smtp/unsubscribe

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

emails сериализованный массив адресов

Пример структуры массива emails

[
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "comment": "comment1"
  },
  {
    "email": "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
    "comment": "comment2"
  }
]

В случае успеха сервер вернет JSON строку с result=true

Удалить из списка отписавшихся

Для удаления подписчика, который отказался получать рассылку, из списка отписавшихся, нужно сделать DELETE запрос по ссылке

https://api.sendpulse.com/smtp/unsubscribe

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

emails сериализованный массив адресов

Пример структуры массива emails:

{
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.",
  "Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра."
}

В случае успеха сервер вернет JSON строку с result = true

Получить список отписавшихся

Для получения списка отписавшихся, нужно сделать GET запрос по ссылке

https://api.sendpulse.com/smtp/unsubscribe

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

date дата, на которую нужно получить список отписавшихся. Формат даты YYYY-MM-DD
limit количество записей, которое нужно взять
offset смещение

Пример: https://api.sendpulse.com/smtp/unsubscribe?limit=10&offset=20" - получит 10 записей начиная с 20 

Если указано date, то выгрузка будет именно за 1 день
Пример вызова с датой: smtp/unsubscribe?date=2016-03-05

Получить список IP-адресов отправителя

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

https://api.sendpulse.com/smtp/ips

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

[
  "127.0.0.1"
]

Получить список разрешенных доменов

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

https://api.sendpulse.com/smtp/domains

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

[
  "@mail.ru"
]

Добавить домен

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

https://api.sendpulse.com/smtp/domains

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

email адрес отправителя

В случае успеха сервер вернет JSON строку с result = true

Верификация нового домена

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

https://api.sendpulse.com/domains/{email}

В случае успеха сервер вернет JSON строку с result = true

Дополнительно, на указанный почтовый ящик будет отправлено письмо с кодом для верификации нового домена.

Push-рассылки

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

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

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

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

limit количество записей которое нужно взять
offset смещение

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

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

Взять 10 записей, начиная со второй

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

[
  {
    "id": "121",
    "title": "push title",
    "body": "push text",
    "website_id": "53",
    "send_date": "2015-12-17 14:44:47",
    "status": "13"
  }
]

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

Для просмотра общего количества сайтов отправляется GET запрос по ссылке

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

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

{
  "total": 2
}

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

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

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

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

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

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

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

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

[
  {
    "id": "1",
    "browser": "Chrome",
    "lang": "ru",
    "variables": [],
    "status": "0"
  }
]

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

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

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

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

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

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

{
  "total": 2
}

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

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

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

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

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

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

{
  "result": true
}

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

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

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

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

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

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

link ссылка для перехода, если не указана будет взята ссылка сайта
filter_lang фильтрация подписчиков по языку (пример ru)
filter_browser фильтрация по браузеру, может принимать несколько значений разделенных запятой (пример – Chrome,Safari)
filter сегментация по одной из переменных
stretch_time время, в течение которого рассылается push-рассылка. Указывается в секундах. Если не указано, используется время по умолчанию (5 часов).

Пример структуры параметра 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 не содержит в себе

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

{
  "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" 
}

Коды ошибок и их описание

Код ошибки Описание
8 Отсутствуют данные
10 Отсутствует e-mail адрес отправителя
11 Не указаны получатели
13 Отсутствует контент email сообщения
14 Email адрес с заданным значением ID не найден
17 Email адрес не найден
19 Такой email адрес уже существует
20 Пожалуйста, не используйте бесплатные почтовые сервисы
21 На активации нет указанного email адреса
97 Недопустимый тип email адреса. Использовать аккаунты бесплатных почтовых сервисов не рекомендуется.
201 Отсутствует название адресной книги
203 Адресная книга с указанным именем уже существует
303 Отсутствуют email адреса в адресной книге
400 Не существует такого пользователя SMTP. Вам необходимо создать аккаунт в SMTP сервисе.
502 Не найден email адрес
602 Кампания не найдена. Возможно, она была уже отправлена.
701 Отсутствует email адрес или имя отправителя
703 Не найдена адресная книга
704 Не найден отправитель
707 Недостаточно средств на счету
711 Вам следует подождать 15 минут перед повторной попыткой отправки на данную адресную книгу
720 Не указана тема письма
721 Отсутствует контент email сообщения
722 Не указано ID адресной книги
799 Неправильный формат даты. Должен быть в формате Y-m-d H:i:s и не может быть меньше текущей даты
800 Недопустимое действие
802 Кампания не найдена
901 Не указано имя отправителя
902 Выбранный email адрес уже занят
903 Не указан email адрес отправителя
904 Email адрес найден в черном списке
905 Достигнут лимит доступного количества адресов отправителя
906 Ошибка в email адресе
1101 Не указан email адрес
1003 Указанного отправителя не существует
1004 Код активации был отправлен. Вам следует подождать 15 минут перед повторной попыткой.
1005 Ошибка при отправке подтверждения
1104 Отсутствует код активации

Начните пользоваться сервисом SendPulse прямо сегодня