API для email и SMS-рассылок

API для обычных рассылок

Для того, чтобы использовать API, необходимо скачать библиотеку SendExpert API тут.

Все данные передаются в кодировке UTF8. Возвращаемое значение в виде ассоциативного массива закодированного в виде JSON: {"error":"","result":[...]}.

В случае ошибки в параметре «error» передается символьный код ошибки. В случае успеха данный параметр будет пустой. Результат передается в параметре «result» в зависимости от вызываемой функции.

Пример использования SendExpert API

                    
                        # подключаем библиотеку
                        require_once 'SendExpertAPI.php';

                        # ID пользователя
                        $user_id = '1';

                        # Секретный ключ, который отображается в личном кабинете
                        $user_private_key = 'e10adc3xxxxxbe56e057f20f883e';

                        # создаем объект API указав в конструкторе ключи
                        $api = new cSendExpertAPI($user_id, $user_private_key);

                        echo "Получить отчет SMS-рассылки";
                        $res = $api->getSMSReport($project_ID = 96, $ID = 83);
                        if ($res['error'] == ""){
                            print_r($res['result']);
                        } else {
                            echo "Ошибка: ".$res['error'];
                        }
                    
                

Получить список проектов текущего пользователя

Вызов

getProjects

Входные параметры

нет

Результат возврата

Список проектов текущего пользователя:

name название проекта
ID ID проекта

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

				  
Array
(
    [0] => Array
        (
            [name] => ProjectName1
            [ID] => 1
        )

    [1] => Array
        (
            [name] => ProjectName2
            [ID] => 52
        )
}
				 
            

Получить список полей базы для проекта

Вызов

getProjectsStructure

Входные параметры

project_id ID проекта, для которого необходимо получить список полей

Результат возврата

Список полей базы для проекта:

name название поля
ID ID поля
type тип поля

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

				  
Array
(
    [0] => Array
        (
            [name] => Электронный адрес
            [ID] => 1
            [type] => email
        )

    [1] => Array
        (
            [name] => Имя
            [ID] => 2
            [type] => text
        )
}
				 
            

Получить всех подписчиков (экспорт)

Вызов

getSubscribers

Входные параметры

project_id ID проекта, в котором необходимо получить список подписчиков

Результат возврата

Список подписчиков:

ID ID подписчика
1 значение поля с кодом "1"
... ...
х значение поля с кодом "х"
GROUPS список групп, к которым подключен данный пользователь
DATE дата добавления подписчика
UNSUBSCRIBED флаг отписки подписчика от рассылок
DISABLE отключен или нет подписчик
ACTIVATED подтверждение и активация подписчика администрацией

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

				  
Array
(
    [0] => Array
        (
            [ID] => 23
            [1] => [email protected]
            [2] => Лилия
            [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412936959
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )

    [1] => Array
        (
            [ID] => 34
            [1] => [email protected]
            [2] => Анна
	    [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412937514
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )
)
				 
            

Получить список пользователей по телефону или по его части

Вызов

getSubscribersByPhone

Входные параметры

project_id ID проекта, для которого необходимо получить список подписчиков
phone полный номер телефона подписчика или его часть

Например

				
                    $phone = '38(067)';
				
            

Результат возврата

Список пользователей:

ID ID подписчика
1 значение поля с кодом "1"
... ...
х значение поля с кодом "х"
GROUPS список групп, к которым подключен данный пользователь
DATE дата добавления подписчика
UNSUBSCRIBED флаг отписки подписчика от рассылок
DISABLE отключен или нет подписчик
ACTIVATED подтверждение и активация подписчика администрацией

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

				  
Array
(
    [0] => Array
        (
            [ID] => 1
            [1] => [email protected]
            [2] => Евгений
            [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412937697
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )

    [1] => Array
        (
            [ID] => 12
            [1] => [email protected]
            [2] => Ольга
            [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412937023
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )
}
				 
            

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

Вызов

getSubscribersByEmail

Входные параметры

project_id ID проекта, для которого необходимо получить список подписчиков
email адрес электронной почты подписчика или его часть

Например

				
                    $email = '@gmail.com';
				
            

Результат возврата

Список пользователей:

ID ID подписчика
1 значение поля с кодом "1"
... ...
х значение поля с кодом "х"
GROUPS список групп, к которым подключен данный пользователь
DATE дата добавления подписчика
UNSUBSCRIBED флаг отписки подписчика от рассылок
DISABLE отключен или нет подписчик
ACTIVATED подтверждение и активация подписчика администрацией

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

				  
Array
(
    [0] => Array
        (
            [ID] => 23
            [1] => [email protected]
            [2] => Василий
            [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412936959
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )

    [1] => Array
        (
            [ID] => 34
            [1] => [email protected]
            [2] => Иван
	    [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412937514
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )
}
				 
            

Добавить подписчика

Вызов

addSubscriber

Входные параметры

project_id ID проекта, в который необходимо добавить подписчика
subscriber массив с данными подписчика со структурой [ID поля] => [Значение]
subscriber ["GROUPS"] список групп, в которые необходимо подключить подписчика
responder ID автоответчика или массив с автоответчиками для API или параметр "ALL". Если указаны ID автоотчетчиков, тогда они будут запущены при успешном добавлении пользователя. Если указан параметр ALL - будут запущены все автоответчики для API для добавленного пользователя

Например

				
$subscriber = array();
$subscriber[100] = '[email protected]';
$subscriber[500] = 'Тарас';
$subscriber["groups"] = array('31','54');
$responder = array(123,124);
				
            

Результат возврата

Массив:

id ID подписчика
1 значение поля с кодом "1"
... ...
х значение поля с кодом "х"
groups список групп, к которым подключен данный пользователь
date дата добавления подписчика
unsubscribed флаг отписки подписчика от рассылок
disable отключен или нет подписчик
activated подтверждение и активация подписчика администрацией

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

				  
Array
(
    [0] => Array
        (
            [ID] => 23
            [1] => [email protected]
            [2] => Василий
            [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412936959
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )

    [1] => Array
        (
            [ID] => 34
            [1] => [email protected]
            [2] => Иван
	    [GROUPS] => Array
                (
                    [0] => Array
                        (
                            [ID] => 31
                            [name] => ProjectName1
                        )

                )

            [DATE] => 1412937514
            [UNSUBSCRIBED] => 0
            [DISABLE] => 0
            [ACTIVATED] => 1
        )
}
				 
            

Редактировать подписчика

Вызов

editSubscriber

Входные параметры

project_id ID проекта, в котором необходимо отредактировать подписчика
ID ID подписчика
subscriber массив с данными подписчика со структурой [ID поля] => [Значение]
subscriber ["groups"] список групп, в которые необходимо подключить подписчика

Например

				
$subscriber = array();
$subscriber[2] = 'Тарас1';
$subscriber["GROUPS"] = array();
				
            

Результат

“OK” в случае успешного изменения данных

Удалить подписчика

Вызов

deleteSubscriber

Входные параметры

project_id ID проекта, с которого необходимо удалить подписчика
ID ID подписчика

Результат

“OK” в случае успешного изменения данных

Получить обратные адреса электронной почты

Вызов

getSenderEmails

Входные параметры

project_id ID проекта, в котором необходимо получить список обратных адресов электронной почты

Результат возврата

Массив элементов:

email email адрес обратной электронной почты
ID ID адреса обратной электронной почты
checked флаг активности проверки адреса обратной электронной почты

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

				  
Array
(
    [0] => Array
        (
            [email] => [email protected]
            [ID] => 6
            [checked] => 1
        )

    [1] => Array
        (
            [email] => [email protected]
            [ID] => 23
            [checked] => 1
        )
)
				 
            

Получить список групп

Вызов

getGroupsList

Входные параметры

project_id ID проекта, в котором необходимо получить список альфа-имен
filter
необязательный
полная или частичная маска для поиска в названии группы

Результат возврата

Список групп:

name название группы
ID ID группы

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

				  
Array
(
    [0] => Array
        (
            [name] => Группа 1
            [ID] => 100
        )
    [1] => Array
        (
            [name] => Группа 2
            [ID] => 500
        )

)
				 
            

Добавить группу

Вызов

addGroup

Входные параметры

project_id ID проекта, в котором необходимо создать группу
name название группы

Результат возврата

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

ID ID группы

Список возможных ошибок:

ERROR_NAME название содержит запрещенные символы
ERROR_ALREADY_EXIST группа с данным именем уже существует в системе

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

				  
Array
(
    [ID] => 100
)
				 
            

Получить список Альфа-имен для SMS

Вызов

getAlphaNames

Входные параметры

project_id ID проекта, в котором необходимо получить список альфа-имен

Результат возврата

Список Альфа-имен:

name альфа-имя
ID ID альфа-имени
checked флаг активности альфа-имени

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

				  
Array
(
    [0] => Array
        (
            [name] => SENDEXPERT
            [ID] => 29
            [checked] => 1
        )

)
				 
            

Отправить SMS-сообщение подписчикам

Вызов

sendSMS

Входные параметры

project_id ID проекта, в котором необходимо отправить SMS-сообщение
alphaname_id ID альфа-имени, которое будет использоваться в качестве отправителя
subscribers список ID пользовтелей, которым необходимо отправить SMS
message сообщение, которое необходимо отправить (поддерживается персонализация)
date дата отправки SMS-сообщения в формате UNIXTIME

Например

				
$subscribers = array();
$subscribers[] = 337361;
$subscribers[] = 43235;
$message = "Привет {{Имя}}! Это тест API!";
$date = mktime();
$res = $api->sendSMS($project_ID = 96, $alphaname_id = 29, $subscribers, $message, $date);
				
            

Результат возврата

Массив:

ID ID созданной рассылки

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

				  
Array
(
    [ID] => 84
)
				 
            

Получить список SMS-рассылок

Вызов

getSMSList

Входные параметры

project_id ID проекта, в котором необходимо получить список SMS-рассылок
time_start дата и время начала отчета в формате UNIXTIME
time_end дата и время окончания отчета в формате UNIXTIME

Например

				
$time_start = strtotime("-2 days");
$time_end = time();
$res = $api->getSMSList($project_ID = 96, $time_start, $time_end);
				
            

Результат возврата

Список SMS-рассылок в формате:

id ID рассылки
alphanameID ID Альфа-имени от которого отправлена рассылка
body содержание рассылки
time_start дата и время старта рассылки в формате UNIXTIME
type статус рассылки
date_create дата создания рассылки в формате UNIXTIME
price стоимость рассылки в у.е.

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

				  
Array
(
    [0] => Array
        (
            [ID] => 84
            [alphanameID] => 29
            [body] => SMS работает!
            [time_start] => 1437135207
            [type] => in_proccess
            [date_create] => 2015-07-17 12:13:28
            [price] => 0.023399
        )

    [1] => Array
        (
            [ID] => 83
            [alphanameID] => 29
            [body] => Привет {{Имя}}! Это тест API!
            [time_start] => 1436799595
            [type] => sended
            [date_create] => 2015-07-13 15:00:23
            [price] => 0.023399
        )
)
				 
            

Получить отчёт SMS-рассылки

Вызов

getSMSReport

Входные параметры

project_id ID проекта, в котором необходимо получить список SMS-рассылок
ID ID SMS-рассылки

Результат возврата

Список SMS-рассылок в формате:

total количество подписчиков, которым будет отправлено сообщение
sended количество подписчиков, которым уже было отправлено сообщение
delivered количество подписчиков, которые получили сообщение
not_delivered количество подписчиков, которые не получили сообщение
not_exist количество подписчиков, у котрых несуществующий номер телефона
alphanameID ID Альфа-имени от которого отправлена рассылка
body содержание рассылки
time_start дата и время старта рассылки в формате UNIXTIME
type статус рассылки
date_create дата создания рассылки
price стоимость рассылки в у.е.

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

				  
Array
(
    [total] => 1
    [sended] => 1
    [delivered] => 0
    [not_delivered] => 0
    [not_exist] => 0
    [alphanameID] => 29
    [body] => Привет {{Имя}}! Это тест API!
    [time_start] => 1436799595
    [type] => sended
    [date_create] => 2015-07-13 15:00:23
    [price] => 0.023399
)
				 
            

Получить список email-рассылок

Вызов

getMailList

Входные параметры

project_id ID проекта, в котором необходимо получить список email-рассылок
time_start дата и время начала отчета в формате UNIXTIME
time_end дата и время окончания отчета в формате UNIXTIME

Например

				
$time_start = strtotime("-2 days");
$time_end = time();
$res = $api->getMailList($project_ID = 96, $time_start, $time_end);
				
            

Результат возврата

Список email-рассылок в формате:

ID ID email-рассылки
fromID ID обратного адреса электронной почты
sender_name имя отправителя
subject тема письма (поддерживает персонализацию)
body содержимое письма (поддерживает персонализацию)
alternate_body альтернативный текст письма без тегов, для text-plain отображения
images_place место хранения рисунков
time_start дата и время старта рассылки в формате UNIXTIME
type статус рассылки
date_create дата создания рассылки

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

				  
Array
(
    [0] => Array
        (
            [ID] => 827
            [fromID] => 160
            [sender_name] => ИмяОтправителя
            [subject] => Тема письма для {{Имя}}!
            [body] => Привет {{Имя}}! Это тест API!
            [alternate_body] => Привет {{Имя}}! Это тест API!
            [images_place] => server
            [time_start] => 1436883244
            [type] => sended
            [date_create] => 2015-07-14 14:14:29
        )

    [1] => Array
        (
            [ID] => 826
            [fromID] => 160
            [sender_name] => Апи
            [subject] => Тема письма!
            [body] => Тест работает. Ура!
            [alternate_body] => Тест работает. Ура!
            [images_place] => server
            [time_start] => 1436883216
            [type] => sended
            [date_create] => 2015-07-14 14:14:28
        )
)
				 
            

Получить отчёт email-рассылки

Вызов

getMailReport

Входные параметры

project_id ID проекта, в котором необходимо получить список email-рассылок
ID ID email-рассылки

Результат возврата

Список email-рассылок в формате:

total общее количество писем
sended количество отправленных email-писем
delivered количество доставленных
opened количество открытых писем
with_moving количество писем с переходами
moved количество переходов по ссылкам из писем
not_delivered количество недоставленных писем
unsubscribed количество отписавшихся подписчиков
unsubscribed_as_spam количество пожаловавшихся на СПАМ
fromID ID обратного адреса электронной почты
sender_name имя отправителя
subject тема письма (поддерживает персонализацию)
body содержимое письма (поддерживает персонализацию)
alternate_body альтернативный текст письма без тегов, для text-plain отображения
images_place место хранения рисунков
time_start дата и время старта рассылки в формате UNIXTIME
type статус рассылки
date_create дата создания рассылки

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

				  
Array
(
    [total] => 2
    [sended] => 2
    [delivered] => 2
    [opened] => 1
    [with_moving] => 0
    [moved] => 0
    [not_delivered] => 0
    [unsubscribed] => 0
    [unsubscribed_as_spam] => 0
    [fromID] => 160
    [sender_name] => Тест
    [subject] => Привет {{Имя}} - {{Номер телефона}} - {{Электронный адрес}}
    [body] => Тело письма
    [alternate_body] =>
    [images_place] => server
    [time_start] => 1432044523
    [type] => sended
    [date_create] => 2015-05-19 14:13:17
}
				 
            

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

Вызов

getResponderList

Входные параметры

project_id ID проекта, в котором необходимо получить список автоответчиков предназначеных для API

Результат возврата

Список email-рассылок в формате:

ID ID автоответчика
mailID ID письма для автоответчика
time_type тип временного интервала для срабатывания автоответчика
time_send
                                  
Array
(
    [days] — количество дней до старта автоответчика;
    [time_hour] — количество часов;
    [time_minutes] — количество минут.
)
                                
                            

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

				  
Array
(
    [0] => Array
        (
            [ID] => 19
            [mailID] => 819
            [time_type] => timeleft
            [time_send] => Array
                (
                    [days] => 0
                    [time_hour] => 0
                    [time_minutes] => 5
                )

        )

)
				 
            

Отправить Email-сообщение подписчикам

Вызов

sendMail

Входные параметры

project_id ID проекта, в котором необходимо получить отправить рассылку
subscribers массив ID подписчиков, которым необходимо отправить рассылку. Не более 1000 подписчиков в списке. Если необходимо отправить большему количеству - необходимо использовать фильтры или группы. Для того, чтобы отправить всем по базе - передаваемый параметр $subscribers = "ALL";
subject тема email-рассылки (поддерживает персонализацию)
message содержание рассылки (поддерживает персонализацию)
sender_id ID адреса обратного электронного адреса отправителя
sender_name имя отправителя
date время старта рассылки в формате UNIXTIME
filter_id если указан: отправка по ID фильтру в системе
group_id если указан: отправка по ID группы в системе

Например

				
$subscribers = array();
$subscribers[] = 337361;
$subscribers[] = 438106;
$subject = "Тема письма для {{Имя}}!";
$message = "Привет {{Имя}}! Это тест API!";
$sender_id = 160;
$sender_name = "Имя Отправителя";
$date = mktime();
$filter_id = 0;
$group_id = 0;
$res = $api->sendMail($project_ID = 96, $subscribers, $subject, $message, $sender_id, $sender_name, $date, $filter_id, $group_id);
				
            

Результат возврата

Массив:

ID ID созданной email-рассылки

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

				  
Array
(
    [ID] => 828
)