Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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

Должен присутствовать хотя бы один параметр: text или html

html

Должен присутствовать хотя бы один параметр: text или html

attachments

Массив с вложениями. Поддерживается только для запросов с типом содержимого multipart/form-data

payment

Способ тарификации сообщения. Возможные значения:
subscriber_priority
credit_priority
subscriber
credit
Значение по умолчанию: subscriber_priority

Способы тарификации сообщения

Значение

Описание

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
Значение по умолчанию: subscriber_priority

Нет

Способы тарификации сообщения

Значение

Описание

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

Возможные значения:
string
numeric
date
boolean
geo
Значение по умолчанию: string

Ответ сервера

Ответ сервера содержит 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

Возможные значения:
string
numeric
date
boolean
geo
При изменении типа параметра, соответствующие значения обнулятся

Ответ сервера

Ответ сервера содержит 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

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

Параметр

Описание

Обязательный

email

Да

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

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

Параметр

Описание

Обязательный

email

Нет

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

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

Параметр

Описание

Обязательный

email

Искомый адрес

Да

Ответ сервера

Ответ сервера содержит коллекцию получателей в группе. Каждый элемент содержит следующие атрибуты:

Атрибут

Описание

email

Адрес получателя

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

Должен присутствовать хотя бы один параметр: text или html

html

Должен присутствовать хотя бы один параметр: 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 вашего аккаунта

...