Table of Contents |
---|
Общие сведения
Данный документ содержит сведения о программном интерфейсе сервиса email рассылок (далее - «API»). Через API внешние приложения получают доступ к системе управлению списками получателей, отправке одиночных email сообщений, рассылок, а также прочий функционал для работы со списками получателей и статистикой рассылок
Базовый URL
Базовый URL для всех запросов
https://api-em.prontosms.ru/v1
Аутентификация
Для удостоверения подлинности запросов, в каждом обращении к API необходимо отправлять заголовок содержащий Ваш ключ.
...
Держите Ваш ключ для доступа к API в секрете.
Формат обмена данных
Для обмена данными используется формат JSON, поэтому, в каждом запросе должен присутствовать заголовок
...
Все данные от сервера возвращаются так же, в формате JSON.
Получение списков данных (Collection)
Списки данных (Collection) - постраничный способ выдачи данных, используемый в некоторых методах Для управления страницами выдачи списка данных в заголовках запроса необходимо передавать параметры:
...
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/lists?page_number=2&page_size=3 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
Поддерживаемые параметры
Параметр | Описание |
---|---|
page_number | Номер запрашиваемой страницы. По умолчанию: 1 |
page_size | Количество записей на странице. По умолчанию: 25 |
...
Ключ | Описание |
---|---|
total_count | Общее количество элементов "collection" |
total_pages | Количество страниц |
page_number | Номер текущей страницы |
page_size | Количество записей на странице |
collection | Массив возвращаемых данных |
Обработка ответа
Обработка ответа может осуществляться при проверки кода состояния HTTP запроса. Так же в случае неуспешного выполнения запроса, ответ содержит массив данных c описанием ошибок в формате JSON.
...
Код | Описание |
---|---|
2xx | Запрос успешно выполнен |
400 | Неверные параметры |
401 | Аутентификация не пройдена |
402 | Недостаточно средств |
404 | Ресурс не найден |
415 | Неподдерживаемый тип данных |
422 | Ресурс не может быть обработан |
Ограничения на количество запросов
На данный момент есть ограничение в 5 запросов в секунду на любые запросы, кроме запросов типа GET. В случае превышения ограничения сервер вернет ответ со статусом 429.
Одиночные сообщения
Отправка одиночного email сообщения
Пример JSON для запроса
Code Block |
---|
{ "from_email":"alice@example.org", "from_name": "Alice", "to": "bob@example.org", "subject": "Hello", "text": "Hello, Bob!", "html": "<h1>Hello, Bob!</h1>", "payment": "credit" } |
...
Code Block |
---|
curl -X POST https://api-em.prontosms.ru/v1/email/messages \ -H 'Authorization: Bearer $API_TOKEN' \ -F from_email=from@example.com \ -F to=to@example.com \ -F subject='Mail with attachments' \ -F text='Hello world' \ -F attachments[]=@/path/to/file1 \ -F attachments[]=@/path/to/file2 |
POST /email/messages
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
from_email | Да | |
from_name | ||
to | Да | |
subject | Да | |
text | Должен присутствовать хотя бы один параметр: | |
html | Должен присутствовать хотя бы один параметр: | |
attachments | Массив с вложениями. Поддерживается только для запросов с типом содержимого multipart/form-data | |
payment | Способ тарификации сообщения. Возможные значения: |
Способы тарификации сообщения
Значение | Описание |
---|---|
subscriber_priority | Тарифицируется "подписчик", если не доступны "подписчики", используется "письмо". Если нет "писем", возвращается ошибка. |
credit_priority | Тарифицируется "письмо". Если нет "писем", используется "подписчик". Если нет "подписчиков", возвращается ошибка. |
subscriber | Тарифицируется "подписчик". Если нет "подписчиков", возвращается ошибка. |
credit | Тарифицируется "письмо". Если нет "писем", возвращается ошибка. |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
...
Обратите внимание на то, что при отправке сообщений сервер может вернуть ответ со статусом 429. Это означает, что вы превысили количество сообщений, разрешенное к отправке, в единицу времени. Результат отправки сообщений влияет на лимит сообщений в единицу времени. Таким образом, если вы отправляете письма только вашим клиентам, только на существующие адреса, не рассылаете спам и тп, то разрешенное количество сообщений в единицу времени для вашего аккаунта будет увеличиваться, и наоборот.
Получение информации о сообщении
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/messages/1 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' \ -d '...JSON...' |
...
Code Block |
---|
{ "id":1, "from_email":"alice@example.org", "from_name":"Alice", "to":"bob@example.org", "subject":"Hello", "text":"Hello, Bob!", "html":"<h1>Hello, Bob!</h1>", "status":"queued", "events": { "open": 1, "redirect": { "http://foo.com": 2, "http://bar.com": 3 }, "spam": 1, "unsubscribe": 1 } } |
GET /email/messages/:id
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
...
Событие | Описание |
---|---|
open | Сообщение прочитано |
redirect | Получатель перешел по ссылке |
spam | Сообщение помечено как спам |
unsubscribe | Пользователь отписался |
Отправка одиночного сообщения по шаблону
В личном кабинете в разделе "Автоматизация", выберите "Одиночное по шаблону" и создайте шаблон письма. Отправляйте письма по этому шаблону с параметрами. Для подстановки параметра в шаблоне используйте конструкцию [%имя параметра%], например [%name%], [%age%] и т.д.
...
где :template_id - идентификатор шаблона
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
to | email получателя | Да |
params | Параметры подстановки | Нет |
payment | Способ тарификации сообщения. Возможные значения: | Нет |
Способы тарификации сообщения
Значение | Описание |
---|---|
subscriber_priority | Тарифицируется "подписчик", если не доступны "подписчики", используется "письмо". Если нет "писем", возвращается ошибка. |
credit_priority | Тарифицируется "письмо". Если нет "писем", используется "подписчик". Если нет "подписчиков", возвращается ошибка. |
subscriber | Тарифицируется "подписчик". Если нет "подписчиков", возвращается ошибка. |
credit | Тарифицируется "письмо". Если нет "писем", возвращается ошибка. |
...
Code Block |
---|
curl -X POST https://api-em.prontosms.ru/v1/email/templates/1/messages \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' \ -d '...JSON...' |
Группы получателей
Создание группы
Пример JSON для запроса
Code Block |
---|
{ "title":"My Recipients" } |
...
Code Block |
---|
{ "id":1, "title":"My Recipients" } |
POST /email/lists
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
title | Название группы получателей. Должно быть уникальным | Да |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор созданной группы |
title | Название группы |
Получение списка групп
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/lists \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
Code Block |
---|
{ "total_count":3, "total_pages":1, "page_number":1, "page_size":25, "collection":[ { "id":1, "title":"My Recipients" }, { "id":2, "title":"My Recipients #2" }, { "id":3, "title":"My Recipients #3" } ] } |
GET /email/lists
Ответ сервера
Ответ сервера содержит коллекцию групп получателей. Каждый элемент содержит следующие атрибуты:
Атрибут | Описание |
---|---|
id | Идентификатор группы |
title | Название группы |
Получение информации о группе
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/lists/1 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
где :id - идентификатор группы для запроса информации
Ответ сервера
Ответ сервера в формате JSON содержит следующие атрибуты:
Атрибут | Описание |
---|---|
id | Идентификатор группы |
title | Название группы |
Удаление группы
Пример запроса
Code Block |
---|
curl -X DELETE https://api-em.prontosms.ru/v1/email/lists/1 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
где :id - идентификатор группы для запроса информации
Ответ сервера
В случае успешного удаления сервер вернет пустой ответ со статусом 204.
Редактирование группы
Пример JSON для запроса
Code Block |
---|
{ "title":"New Title" } |
...
где :id - идентификатор группы для запроса информации
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
title | Название группы получателей. Должно быть уникальным | Да |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор созданной группы |
title | Название группы |
Параметры группы получателей
Создание параметра
Пример JSON для запроса
Code Block |
---|
{ "title":"Age", "kind": "numeric" } |
...
POST /email/lists/:id/parameters
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
title | Да | |
kind | Возможные значения: |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор |
title | Название |
kind | Тип |
Список параметров
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/lists/1/parameters \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
GET /email/lists/:id/parameters
Ответ сервера
Ответ сервера содержит коллекцию параметров группы получателей. Каждый элемент содержит следующие атрибуты:
Атрибут | Описание |
---|---|
id | Идентификатор |
title | Название |
kind | Тип |
Изменение параметра
Пример JSON для запроса
Code Block |
---|
{ "title":"Age", "kind": "numeric" } |
...
где :list-id - идентификатор группы, :id - идентификатор параметра
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
title | ||
kind | Возможные значения: |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор |
title | Название |
kind | Тип |
Удаление параметра
Пример запроса
Code Block |
---|
curl -X DELETE https://api-em.prontosms.ru/v1/email/lists/11/parameters/15 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
где :list-id - идентификатор группы, :id - идентификатор параметра
Получатели
Создание получателя
Пример JSON для запроса
Code Block |
---|
{ "email":"alice@example.org", "unconfirmed": true, "values":[ { "parameter_id":"1", "value":"Alice" }, { "parameter_id":"2", "value":"22" } ] } |
...
POST /email/lists/:id/recipients
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
Да | ||
unconfirmed | Создать неподтвержденного получателя. Необходимо задать любое значение, например, true, t или 1. По умолчанию создается подтвержденный получатель | Нет |
values | Массив значений для параметров |
...
Параметр | Описание | Обязательный |
---|---|---|
parameter_id | ID параметра группы получателей | Да |
value | Да |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
...
Параметр | Описание |
---|---|
parameter_id | ID параметра группы получателей |
kind | Тип параметра |
value | Значение |
Обновление получателя
Пример JSON для запроса
Code Block |
---|
{ "email":"alice@example.org", "values":[ { "parameter_id":"1", "value":"Alice" }, { "parameter_id":"2", "destroy":"true" } ] } |
...
PATCH /email/lists/:list_id/recipients/:id
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
Нет | ||
values | Массив значений для параметров |
...
Параметр | Описание | Обязательный |
---|---|---|
parameter_id | ID параметра группы получателей | Да |
value | Не может быть одновременно использован с параметром destroy | Нет |
destroy | Используется для удаления значения. Для удаления значения необходимо задать любое значение, например, true, t или 1. Не можеть быть использован одновременно с параметром value | Нет |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
...
Параметр | Описание |
---|---|
parameter_id | ID параметра группы получателей |
kind | Тип параметра |
value | Значение |
Список получателей
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/lists/1/recipients \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
GET /email/lists/:id/recipients
Ответ сервера
Ответ сервера содержит коллекцию получателей в группе. Каждый элемент содержит следующие атрибуты:
...
Параметр | Описание |
---|---|
parameter_id | ID параметра группы получателей |
kind | Тип параметра |
value | Значение |
Удаление получателя
Пример запроса
Code Block |
---|
curl -X DELETE https://api-em.prontosms.ru/v1/email/lists/1/recipients/1 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
DELETE /email/lists/:list_id/recipients/:id
Импорт большого количества получателей
POST /email/lists/:id/recipients/imports
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
recipients | Массив получателей. Максимальный размер 10000 | Да |
run_triggers | Запустить связанные триггеры. Необходимо задать любое значение, например, true, t или 1. | Нет |
...
Параметр | Описание | Обязательный |
---|---|---|
parameter_id | ID параметра группы получателей | Да |
value | Да |
Ответ сервера
Параметр | Описание |
---|---|
id | Идентификатор импорта. В дальнейшем может использоваться для получения информации о ходе импорта |
status | Статус импорта |
...
Code Block |
---|
{ "id":7, "status":"queued" } |
Поиск получателей
Данный метод позволяет осуществить поиск получателя по email, например, чтобы определить в каких группах есть данный получатель.
...
GET /email/recipients/search
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
Искомый адрес | Да |
Ответ сервера
Ответ сервера содержит коллекцию получателей в группе. Каждый элемент содержит следующие атрибуты:
Атрибут | Описание |
---|---|
Адрес получателя | |
recipients | Массив, содержащий информацию о списках, в которых есть искомый получатель |
Организации
Создание организации
Пример JSON для запроса
Code Block |
---|
{ "name":"My Organization", "address":"Lenina 40", "country":"Russia", "city":"Tomsk", "phone":"+7-3822-123-456", "zip":"634000" } |
...
POST /email/organizations
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
name | Да | |
address | Да | |
country | Да | |
city | Да | |
phone | Да | |
zip | Да |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор |
name | Название |
address | Адрес |
country | Страна |
city | Город |
phone | Телефон |
zip | Почтовый индекс |
current | Является ли организацией по умолчанию |
Список организаций
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/organizations \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
Code Block |
---|
{ "total_count":1, "total_pages":1, "page_number":1, "page_size":25, "collection":[ { "id":1, "name":"My Organization", "address":"Lenina 40", "country":"Russia", "city":"Tomsk", "phone":"+7-3822-123-456", "zip":"634000", "current":true } ] } |
GET /email/organizations
Ответ сервера
Ответ сервера содержит коллекцию организаций. Каждый элемент содержит следующие атрибуты:
Атрибут | Описание |
---|---|
id | Идентификатор |
name | Название |
address | Адрес |
country | Страна |
city | Город |
phone | Телефон |
zip | Почтовый индекс |
current | Является ли организацией по умолчанию |
Информация об организации
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/organizations/1 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
GET /email/organizations/:id
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор |
name | Название |
address | Адрес |
country | Страна |
city | Город |
phone | Телефон |
zip | Почтовый индекс |
current | Является ли организацией по умолчанию |
Организация по умолчанию
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/organizations/current \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
GET /email/organizations/current
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор |
name | Название |
address | Адрес |
country | Страна |
city | Город |
phone | Телефон |
zip | Почтовый индекс |
current | Является ли организацией по умолчанию |
Задать организацию по умолчанию
Пример запроса
Code Block |
---|
curl -X PATCH https://api-em.prontosms.ru/v1/email/organizations/1/current \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
PATCH /email/organizations/:id/current
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор |
name | Название |
address | Адрес |
country | Страна |
city | Город |
phone | Телефон |
zip | Почтовый индекс |
current | Является ли организацией по умолчанию |
Изменение организации
Пример JSON для запроса
Code Block |
---|
{ "name":"My Organization", "address":"Lenina 40", "country":"Russia", "city":"Tomsk", "phone":"+7-3822-123-456", "zip":"634000" } |
...
PATCH /email/organizations/:id
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
name | ||
address | ||
country | ||
city | ||
phone | ||
zip |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
id | Идентификатор |
name | Название |
address | Адрес |
country | Страна |
city | Город |
phone | Телефон |
zip | Почтовый индекс |
current | Является ли организацией по умолчанию |
Удаление организации
Пример запроса
Code Block |
---|
curl -X DELETE https://api-em.prontosms.ru/v1/email/organizations/1 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
DELETE /email/organizations/:id
Рассылки
Создание рассылки
Пример JSON для запроса
Code Block |
---|
{ "from_email":"hello@world.com", "subject":"Hello World", "text":"Hello World", "html":"<h1>Hello World</h1>", "lists":[ { "id":"1" } ] } |
...
Code Block |
---|
{ "id":1, "from_email":"hello@world.com", "from_name":null, "html":"<h1>Hello World</h1>", "text":"Hello World", "state":"draft", "recipients_count":10, "purchase":{ "enable":true, "subscribers":10, "credits":0, "deficit":0 }, "statistics":{ "delivered":1, "bounced":0, "delivering":0, "uniq_open":0, "uniq_click":0, "unsubscription":0, "spam":0 } } |
POST /email/campaigns
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
from_email | Да | |
subject | Да | |
from_name | ||
text | Должен присутствовать хотя бы один параметр: | |
html | Должен присутствовать хотя бы один параметр: | |
lists | Массив групп получателей | Да |
...
Параметр | Описание | Обязательный |
---|---|---|
id | ID группы получателей | Да |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
...
Атрибут | Описание |
---|---|
delivered | Количество доставленных сообщений |
bounced | Количество недоставленный сообщений |
delivering | Количество доставляющихся сообщений |
uniq_open | Количество уникальных открытий |
uniq_click | Количество уникальных переходов |
unsubscription | Количество отписок |
spam | Количество нажатий кнопки "спам" |
Отправка рассылки
Пример запроса
Code Block |
---|
curl -X PATCH https://api-em.prontosms.ru/v1/email/campaigns/1/deliver \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
PATCH /email/campaigns/:id/deliver
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
...
Атрибут | Описание |
---|---|
delivered | Количество доставленных сообщений |
bounced | Количество недоставленный сообщений |
delivering | Количество доставляющихся сообщений |
uniq_open | Количество уникальных открытий |
uniq_click | Количество уникальных переходов |
unsubscription | Количество отписок |
spam | Количество нажатий кнопки "спам" |
Информация о рассылке
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/campaigns/1 \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
Атрибут | Описание |
---|---|
delivered | Количество доставленных сообщений |
bounced | Количество недоставленный сообщений |
delivering | Количество доставляющихся сообщений |
uniq_open | Количество уникальных открытий |
uniq_click | Количество уникальных переходов |
unsubscription | Количество отписок |
spam | Количество нажатий кнопки "спам" |
Webhooks
Данный механизм позволяют получать POST запросы на указанный URL, когда происходят события, связанные с одиночными сообщениями.
...
Ключ message содержит информацию о сообщении, с которым связано событие. Ключ event содержит информацию о событии. На данный момент ключ data возвращается только для события clicked, и содержит адрес ссылки, по которой кликнули.
Виды событий
Событие | Описание |
---|---|
delivered | Сообщение доставлено |
opened | Сообщение открыто |
clicked | Получатель перешел по ссылке. Ключ event.data содержит URL ссылки |
unsubscribed | Получатель отписался |
complined | Получатель пожаловался на спам |
skipped | Сообщение не было отправлено (возможные причины: получатель ранее отписался или пожаловался на спам) |
soft_bounced | Сообщение не принято почтовым сервером получателя (возможно, будет принято позже) |
hard_bounced | Сообщение не принято почтовым сервером получателя |
Установка webhook
Пример JSON для запроса
Code Block |
---|
{ "url":"https://example.com/some/path" } |
...
Code Block |
---|
{ "url":"https://example.com/some/path" } |
POST /email/webhook
Параметры запроса
Параметр | Описание | Обязательный |
---|---|---|
url | URL, на который отправлять данные о событии | Да |
Ответ сервера
Ответ сервера содержит JSON со следующими атрибутами:
Атрибут | Описание |
---|---|
url | URL, на который отправлять данные о событии |
Получение информации о webhook
Пример запроса
Code Block |
---|
curl -X GET https://api-em.prontosms.ru/v1/email/webhook \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
...
Code Block |
---|
{ "url":"https://example.com/some/path" } |
GET /email/webhook
Удаление webhook
Пример JSON для запроса
Code Block |
---|
{ "url":"https://example.com/some/path" } |
...
Code Block |
---|
curl -X DELETE https://api-em.prontosms.ru/v1/email/webhook \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer $API_TOKEN' |
DELETE /email/webhook
SMTP
Базовый URL
Адрес: smtp.msndr.net
Порт: 25
Аутентификация
Имя пользователя: email вашего аккаунта
...