API документация P1sms

Запрос на отправку сообщения

URL:

https://admin.p1sms.ru/apiSms/create

Метод:

post

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
webhookUrlstringwebhook URLНетURL для отправки изменений статуса
smsarrayСписок сообщенийДаМаксимальное количество СМС в одном запросе - 1000
sms.*.phonestring(11)Номер телефонаДа
sms.*.textstringТекст сообщенияНет
sms.*.linkstringСсылка для подстановкиНет
sms.*.channelstringКанал сообщений (digit, char, viber, vk, telegram)Да
sms.*.senderstringИмя отправителяДа, если канал сообщений - char, viber
sms.*.plannedAttimestampКоличество секунд Unix timestampНет
sms.*.viberParametersarrayПараметры сообщений ViberДа, если канал сообщений - viberИзображение, кнопка в сообщений, параметры каскадной рассылки
sms.*.viberParameters.*.typestringТип сообщения ViberДа'text' - сообщение без кнопки 'link' - сообщение с кнопкой, открывающей ссылку 'phone' - сообщение с кнопкой с номером телефона
sms.*.viberParameters.*.btnTextarrayТекст кнопкиДа, если type равен link, phone
sms.*.viberParameters.*.btnLinkstringСсылка кнопкиДа, если type равен link
sms.*.viberParameters.*.btnPhonestring(11)Номер кнопкиДа, если type равен phone
sms.*.viberParameters.*.imageHashstringХэш картинкиНетВозвращается в результате запроса на загрузку картинки
sms.*.viberParameters.*.smsLifetimeintegerВремя жизни сообщенияНетот 60 до 86400
sms.*.vkParametersarrayПараметры сообщений ВКонтактеДа, если канал сообщений - vk
sms.*.vkParameters.*.templateIdintegerИдентификатор шаблонаДаПрисваивается и возвращается в запросе на добавление шаблона
sms.*.vkParameters.*.tmplDataJSONЗначения переменных шаблонаДаJSON объект, где ключи имена переменных в шаблоне
sms.*.vkParameters.*.userIdintegerИдентификатор пользователя, которому нужно доставить уведомлениеНетПредварительно передается в клиентскую библиотеку в установленном приложении
sms.*.vkParameters.*.pushTokenstringХэш картинкиНетПолучается libverify или средствами клиента с устройства
sms.*.vkParameters.*.pushApsstringiOS-поле apsНетAPS Dictionary содержит ключ, используемый Apple для того, чтобы отправлять уведомления на устройство
sms.*.vkParameters.*.pushEncryptinteger (0 | 1)Указывает, шифровать ли сообщение для приложенияНетЗначения 0 или 1. По умолчанию = 0.
sms.*.vkParameters.*.userIpstring (0.0.0.0)IP адрес пользователяНетИспользуется для определения подборов кодов (bruteforce), а так же для лимитирования запросов; Если user_ip не будет указан, то соответствующие рейтлимиты использоваться не будут.
sms.*.vkParameters.*.ttlintegerВремя жизни сообщения в секундах (от 60 до 86400 секунд)НетПо умолчанию сообщение живет вечно. Если сообщение не было доставлено за время, оно не будет доставлено и ttl тарифицировано.
sms.*.vkParameters.*.issueTimetimestampВремя создания сообщения в GMT+0 (Гринвич, unixtime) в формате десятичного числа в секундах с 1 января 1970 года.НетПо умолчанию берется время выполнения запроса на отправку. Используется вместе с параметром для вычисления времени ttl жизни сообщения.
sms.*.telegramChatIdsarrayID чатов в TelegramНетID чатов в Telegram, куда необходимо послать сообщение у одного номера телефона может быть привязано несколько чатов).
sms.*.tgParametersarrayПараметры сообщений TelegramДа, если канал сообщений - telegram
sms.*.tgParameters.*.botUsernamestringХэш картинкиДа
sms.*.tgParameters.*.contentarrayДа
sms.*.tgParameters.*.content.*.priorityintegerПриоритет сообщенияДа
sms.*.tgParameters.*.content.*.messagestringТекст сообщенияНет
sms.*.tgParameters.*.content.*.baseMessagebooleanУказывает на то, что контетом сообщения будет основное сообщениеНет
sms.*.tgParameters.*.content.*.fileIdintegerID файла в нашей системеНет
sms.*.tgParameters.*.content.*.fileIdintegerID файла в нашей системеНет
sms.*.tgParameters.*.content.*.buttonsarrayНастройки inline-клавиатурыНет
sms.*.tgParameters.*.content.*.buttons.*.captionstringПодпись кнопки inline-клавиатурыДа
sms.*.tgParameters.*.content.*.buttons.*.rowPriorityintegerПорядок кнопки в строках inline-клавиатурыДа
sms.*.tgParameters.*.content.*.buttons.*.columnPriorityintegerХэш картинкиДа
sms.*.tgParameters.*.content.*.buttons.*.removeKeyboardintegerУдалять после нажатия inline-клавиатуру, или нетНет
sms.*.tgParameters.*.content.*.buttons.*.redirectUrlstringУдалять после нажатия inline-клавиатуру, или нетНет
sms.*.tgParameters.*.content.*.buttons.*.actionIdintegerID действия в нашей системеНет
sms.*.tgParameters.*.content.*.buttons.*.actionarrayНет
sms.*.tgParameters.*.content.*.buttons.*.action.*.namestringНазвание действияДа
sms.*.tgParameters.*.content.*.buttons.*.action.*.messagestringТекст сообщенияНет
sms.*.tgParameters.*.content.*.buttons.*.action.*.remoteScriptUrlstringВебхук на Ваш сервиснетПример тела запроса от нашего сервера и пример ответа вашего сервера указан ниже, в разделе примеров (вкладка Telegram)
sms.*.tgParameters.*.content.*.buttons.*.action.*.tgParametersstringtgParametersНет
sms.*.cascadeSchemeIdintegerID схемы каскадных смсНетID, заранее созданной схемы каскадных сообщений

Пример PHP

if( $curl = curl_init() ) {
          $jsonstr = '{"apiKey": "AbCd********", "sms": [{"channel":"digit", "text": "test1", "phone": "79*********", "plannedAt": 1490612400}, {"channel":"digit", "text": "test2", "phone": "79*********", "plannedAt": 1490612400}]}';
          curl_setopt($curl, CURLOPT_URL, 'https://admin.p1sms.ru/apiSms/create');
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($curl, CURLOPT_POST, true);
          curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonstr);
          curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
          curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
          $out = curl_exec($curl);
          echo $out;
          curl_close($curl);
      }
  ?>
<?php
      if( $curl = curl_init() ) {
          $jsonstr = '{"apiKey": "AbCd********", "sms": [{"channel":"char", "sender": "VIRTA" ,"text": "test1", "phone": "79*********", "plannedAt": 1490612400}, {"channel":"digit", "text": "test2", "phone": "79*********", "plannedAt": 1490612400}]}';
          curl_setopt($curl, CURLOPT_URL, 'https://admin.p1sms.ru/apiSms/create');
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($curl, CURLOPT_POST, true);
          curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonstr);
          curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
          curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
          $out = curl_exec($curl);
          echo $out;
          curl_close($curl);
      }
  ?>
<?php
      $url = "https://admin.p1sms.ru/apiSms/create";
      $requestArray = array(
          'apiKey' => "AbCd****",
          'sms' => array(
              array(
                  'channel' => 'viber',
                  'sender' => 'TEST',
                  'text' => 'TEST',
                  'phone' => '79*********',
              'plannedAt' => 1510000000,
                  'viberParameters' => array(
              'type' => 'link',
              'btnLink' => 'https://link.example.com',
                      'btnText' => 'click me',
                      'imageHash' => '15a27ef2c31999.jpg',
               ),
              )),
          'webhookUrl' => 'https://yoursite.com/viberUpdateStatusWebhook',
          );
      $json = json_encode($requestArray, JSON_UNESCAPED_UNICODE);
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>
<?php
      $url = "https://admin.p1sms.ru/apiSms/create";
      $requestArray = array(
          'apiKey' => "AbCd****",
          'sms' => array(
              array(
                  'channel' => 'vk',
                  'phone' => '79*********',
                  'plannedAt' => 1510000000,
                  'vkParameters' => array(
                      'templateId' => 1,
                      'tmpl_data' => '{"servicename":"yourorganization", "managername":"nameofyourmanager"}'
                  ),
              )),
          'webhookUrl' => 'https://yoursite.com/vkUpdateStatusWebhook',
      );
      $json = json_encode($requestArray, JSON_UNESCAPED_UNICODE);
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>
<?php
      $url = "https://admin.p1sms.ru/apiSms/create";
      $requestArray = array(
          'apiKey' => "AbCd****",
          'sms' => array(
              array(
                  'channel' => 'viber',
                  'sender' => 'TEST',
                  'text' => 'TEST',
                  'phone' => '79*********',
              'plannedAt' => 1510000000,
                  'viberParameters' => array(
              'type' => 'link',
              'btnLink' => 'https://link.example.com',
                      'btnText' => 'click me',
                      'imageHash' => '15a27ef2c31999.jpg',
               ),
              )),
          'webhookUrl' => 'https://yoursite.com/viberUpdateStatusWebhook',
          );
      $json = json_encode($requestArray, JSON_UNESCAPED_UNICODE);
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>
<?php
      $url = "https://admin.p1sms.ru/apiSms/create";
      $requestArray = array(
          'apiKey' => "AbCd****",
          'sms' => array(
              array(
                  'channel' => 'vk',
                  'phone' => '79*********',
                  'plannedAt' => 1510000000,
                  'vkParameters' => array(
                      'templateId' => 1,
                      'tmpl_data' => '{"servicename":"yourorganization", "managername":"nameofyourmanager"}'
                  ),
              )),
          'webhookUrl' => 'https://yoursite.com/vkUpdateStatusWebhook',
      );
      $json = json_encode($requestArray, JSON_UNESCAPED_UNICODE);
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>
<?php
      if( $curl = curl_init() ) {
          $url = "https://admin.p1sms.ru/apiSms/create";
          $params = [
            "apiKey" => "XXXXXXX",
            "sms" => [
              [
                "channel" => "telegram",
                "phone" => "7919XXXXXXX",
                "text" => "test",
                "telegramChatIds" => [999999999], // Можно установить ID чатов в телеграме, в которые нужно послать сообщение(у одного номера телефона может быть привязано несколько чатов)
                "tgParameters" => [
                  "botUsername" => "p1sms_test_bot",
                  "content" => [
                    [ //Отправляем основное сообщение
                      "baseMessage" => true, // В таком случае можно не указывать message - отправится то, что указано в качестве текста у смс. Если указать другой текст - основное сообщение(в данном случае "test") не будет отправлено
                      "priority" => 1, //Указываем то, что это сообщение должно отправиться самым первым
                      "buttons" => [ //Отправляем кнопки, которые будут являться inline-клавиатурой у сообщения
                        [
                            "caption" => "Нажми меня и перейди на наш сайт!",
                            "rowPriority" => 1, // Порядок кнопки в строках
                            "columnPriority" => 1, //Порядок кнопки в столбцах
                            "redirectUrl" => "https =>//admin.p1sms.ru",
                            "removeKeyboard" => true // Удалять после нажатия inline-клавиатуру, или нет
                        ]
                      ]
                    ],
                    [ // Отправляем какой то документ клиенту
                      "message" => "Подпись к документу, будет видна ниже прикрепляемого документа",
                      "fileId" => 1, //Идентификатор для отправляемого файла. Загружать можно по пути apiTelegramBots/files/upload
                      "priority" => 2,
                      "buttons" => [
                        [
                            "caption" => "Получить текущий курс доллара",
                            "rowPriority" => 1,
                            "columnPriority" => 1,
                            "action" => [ // Новое созданное действие идёт всегда в приоритете перед actionId(в случае если будут переданы оба параметра).
                              "name" => "get dollar rate",
                              "message" => "Текущий курс доллара => #rate# руб.",
                              "remoteScriptUrl" => "https =>//admin.p1sms.ru/api/telegramBots/getRate", //Вебхук на Ваш сервис. Формат входных и выходных данных можно увидеть в примере про вебхуки(читай ниже)
                              "tgParameters" => [ //Все параметры полностью аналогичны параметрам, указанным в текущем примере
                                "botUsername" => "p1sms_test_bot"
                              ]
                            ]
                        ],
                        [
                            "caption" => "Сделать какое-то действие",
                            "rowPriority" => 1,
                            "columnPriority" => 1,
                            "actionId" => 1 // Можно указать идентификатор уже созданного действия(по API или из ЛК), получить можно с помощью apiTelegramBots/actions/get
                        ]
                      ]
                    ]
                  ]
                ]
              ]
            ]
          ];
          $json = json_encode($params, JSON_UNESCAPED_UNICODE);
          $curl = curl_init();
          curl_setopt($curl, CURLOPT_URL, $url);
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($curl, CURLOPT_POST, true);
          curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
          curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
          curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
          $out = curl_exec($curl);
          $response = json_decode($out);
          curl_close($curl);
      }
  ?>?>

Пример тела запроса remoteScriptUrl

POST /yourUrl
  {
    "spamBotId": 1, // Идентификатор телеграм бота
    "chatId": 999999999, //Идетификатор чата с клиентом
    "actionId": 1, // Идентификатор действия, которое вызвало вебхук
    "actionName": "unsubscribe", //Название действия, которое вызвало вебхук
    "variables": [{ // Переменные, которые будут использовать при заменах конечного сообщения
      "firstName": "first name of client",
      "lastName": "last name of client",
      "phone": "7999XXXXXXX"
    }],
    "parameters": "параметр1 параметр2 параметр3", //Параметры(строка), указанные при вызове команды. Если параметров не было - параметра не будет во входных данных. В данном примере могла быть вызвана команда /test параметр1 параметр2 параметр3
    "messageId": 999888777 //Идентификатор сообщения, у которого была нажата кнопка, которое вызвало данное действие. Если кнопки не было - параметра не будет во входных данных
  }

Ответ вашего сервера на webhook remoteScriptUrl (Status code: 200)
Если не требуется совершать никаких действий, менять сообщение

  {}

Если требуется изменить сообщение

 {
    "message": "Новое сообщение с новой переменной #var1# и переменной, которая уже есть у нас: #firstName#", // Сообщение, которое заменит сообщение указанное как baseMessage в одном из telegramParameters.content массиве
    "variables": [{ // Дополнительные переменные, которые будут использоваться при отправке сообщения. Если новых переменных не будет - параметр не обязателен
      "var1": "переменная 1"
    }],
    "tgParameters": { //Все параметры телеграм сообщений совпадают с теми, которые используются при создании сообщения. Если не требуется менять content - параметр не обязателен
      "botUsername": "p1sms_bot",
      "content": [
        {
          "baseMessage": true,
          "priority": 1
        }
      ]
    }
  }
<?php
     $url = "https://admin.p1sms.ru/apiSms/create";
     $params = json_decode('{  
        "apiKey":"AbCd****",
        "sms":[
           {
              "channel":"viber",
              "phone":"79*********",
              "sender":"VIRTA",
              "text":"text viber message 2",
              "viberParameters":{
                 "type":"text",
                 "smsLifetime":60000
              },
              "cascade":{
                 "name":"API CASCADE TEST",
                 "schemeDetail":[
                    {
                       "needStatus":"not_delivered",
                       "smstemplate":{
                          "channel":"char",
                          "texts":[
                             "test cascade message 2"
                          ],
                          "sender":"VIRTA"
                       }
                    }
                 ]
              }
           }
        ]
     }', true);
     $curl = curl_init();
     curl_setopt($curl, CURLOPT_URL, $url);
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($curl, CURLOPT_POST, true);
     curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
     curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
     curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
     $out = curl_exec($curl);
     $response = json_decode($out);
     curl_close($curl);
  ?>

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

                                        {
      "status": "success",
      "data": [
          {
              "message": "test1 _\\",
              "id": 370506708,
              "status": "sent",
              "phone": "79991002233"
          },
          {
              "message": "test2 (/",
              "id": 370506709,
              "status": "sent",
              "phone": "79991112233"
          }
      ]
  }

Запрос на отправку сообщения

URL:

https://admin.p1sms.ru/apiSms/get

Метод:

post

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключдаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
apiSmsIdListarrayСписок ID сообщенийДа
apiSmsIdList.*integerСписок сообщений

Пример на PHP

<?php
      $jsonstr = '{"apiKey": "AbCd********", "apiSmsIdList": [1, 2, 3, 4, 5]}';
      if( $curl = curl_init() ) {
          curl_setopt($curl, CURLOPT_URL, 'https://admin.p1sms.ru/apiSms/get');
          curl_setopt($curl, CURLOPT_POST, true);
          curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonstr);
          curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
          curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
          $out = curl_exec($curl);
          echo $out;
          curl_close($curl);
      }
  ?>

Пример на 1с

Соединение = Новый HTTPСоединение("https://admin.p1sms.ru/apiSms/",,,,,, Новый ЗащищенноеСоединениеOpenSSL());
   Запрос = Новый HTTPЗапрос("get");
   Запрос.Заголовки.Вставить("Content-Type", "application/json");
   Запрос.Заголовки.Вставить("accept", "application/json");
   Запрос.УстановитьТелоИзСтроки("{""apiKey"": ""AbCd********"",
                                   ""apiSmsIdList"": [1, 2, 3, 4, 5]}",
      "utf-8", ИспользованиеByteOrderMark.НеИспользовать);
   Ответ = Соединение.ОтправитьДляОбработки(Запрос);
   ТелоОтвет = Ответ.ПолучитьТелоКакСтроку();
                            

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

                                      {
      "status": "success",
      "data": [
         {
             "id": "7777000",
             "errorDescription": null,
             "cost": "0.50",
             "createdAt": 1504988172,
             "updatedAt": 1504988191,
             "cascadeSmsId": null,
             "status": "delivered",
         }
      ],
  }

Запрос на создание схемы каскадных сообщений

URL:

https://admin.p1sms.ru/apiSms/create

Метод:

post

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключдаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
namestringНазвание схемы каскадаНет
commentstringКомментарийНет
schemeDetailarrayСхема каскадных сообщенийДа
schemeDetail.*.needStatusstringСтатус, при котором должно отправиться каскадное сообщениеДаdelivered - Доставлено, not_delivered - Не доставлено, error - Ошибка отправки, read - Прочитано (Доступно только для каналов: vk, viber)
schemeDetail.*.smstemplatearrayШаблон сообщенияДа
schemeDetail.*.smstemplate.*.channelstringКанал сообщений (digit, char, viber, vk, telegram)Да
schemeDetail.*.smstemplate.*.senderstringИмя отправителяДа, если канал сообщений - viber, char
schemeDetail.*.smstemplate.*.textsarrayТексты сообщенийДа
schemeDetail.*.smstemplate.*.texts.*stringТекст сообщенияДа
schemeDetail.*.smstemplate.*.minutesDelayintegerЗадержка отправки сообщения (в минутах)Нет
schemeDetail.*.smstemplate.*.sendStartTimeintegerВремя, от которого можно отпралять сообщенияНетКоличество минут с начала дня по UTC, например, 10:00 по МСК = 420 минут с начала дня по UTC
schemeDetail.*.smstemplate.*.sendEndTimeintegerВремя, до которого можно отпралять сообщенияНетКоличество минут с начала дня по UTC, например, 10:00 по МСК = 420 минут с начала дня по UTC
schemeDetail.*.smstemplate.*.viberParametersarrayПараметры сообщений ViberДа, если канал сообщений - viberИзображение, кнопка в сообщений, параметры каскадной рассылки
schemeDetail.*.smstemplate.*.viberParameters.*.typestringТип сообщения ViberДа'text' - сообщение без кнопки'link' - сообщение с кнопкой, открывающей ссылку'phone' - сообщение с кнопкой с номером телефона
schemeDetail.*.smstemplate.*.viberParameters.*.btnTextstringТекст кнопкиДа, если type равен link, phone
schemeDetail.*.smstemplate.*.viberParameters.*.btnLinkstringСсылка кнопкиДа, если type равен link
schemeDetail.*.smstemplate.*.viberParameters.*.btnPhonestring(11)Номер кнопкиДа, если type равен phone
schemeDetail.*.smstemplate.*.viberParameters.*.imageHashstringХэш картинкиНетВозвращается в результате запроса на загрузку картинки
schemeDetail.*.smstemplate.*.vkParametersarrayПараметры сообщений ВКонтактеДа, если канал сообщений - vk
schemeDetail.*.smstemplate.*.vkParameters.*.templateIdintegerИдентификатор шаблонаДаJSON объект, где ключи имена переменных в шаблоне
schemeDetail.*.smstemplate.*.vkParameters.*.tmplDataJSONЗначения переменных шаблонаДаJSON объект, где ключи имена переменных в шаблоне
schemeDetail.*.smstemplate.*.vkParameters.*.userIdintegerИдентификатор пользователя, которому нужно доставить уведомлениеНетПредварительно передается в клиентскую библиотеку в установленном приложении
schemeDetail.*.smstemplate.*.vkParameters.*.pushTokenstringPush token iOS или AndroidНетПолучается libverify или средствами клиента с устройства
schemeDetail.*.smstemplate.*.vkParameters.*.pushApsstringiOS-поле apsНетAPS Dictionary содержит ключ, используемый Apple для того, чтобы отправлять уведомления на устройство
schemeDetail.*.smstemplate.*.vkParameters.*.pushEncryptinteger (0 | 1)Указывает, шифровать ли сообщение для приложенияНетЗначения 0 или 1. По умолчанию = 0.
schemeDetail.*.smstemplate.*.vkParameters.*.userIpstring (0.0.0.0)IP адрес пользователяНетИспользуется для определения подборов кодов (bruteforce), а так же для лимитирования запросов; Если user_ip не будет указан, то соответствующие рейтлимиты использоваться не будут.
schemeDetail.*.smstemplate.*.vkParameters.*.ttlintegerВремя жизни сообщения в секундах (от 60 до 86400 секунд)НетПо умолчанию сообщение живет вечно. Если сообщение не было доставлено за время, оно не будет доставлено и ttl тарифицировано.
schemeDetail.*.smstemplate.*.vkParameters.*.issueTimetimestampВремя создания сообщения в GMT+0 (Гринвич, unixtime) в формате десятичного числа в секундах с 1 января 1970 года.НетПо умолчанию берется время выполнения запроса на отправку. Используется вместе с параметром для вычисления времени ttl жизни сообщения.
schemeDetail.*.smstemplate.*.tgParametersarrayПараметры сообщений TelegramДа, если канал сообщений - telegram
schemeDetail.*.smstemplate.*.tgParameters.*.botUsernamestringUsername Telegram БотаДа
schemeDetail.*.smstemplate.*.tgParameters.*.readButtonbooleanКнопка "Прочитано"НетНеобходимо ли посылать кнопку "прочтено" с сообщением (По умолчанию посылается)
schemeDetailarrayСхема каскадных сообщенийНет

Пример PHP

<?php
      $params = json_decode('{
         "apiKey": "AbCd****",
         "cascade": {
             "name": "Api_Cascadee_Template_1",
             "schemeDetail":[
                {
                   "needStatus":"delivered",
                   "smstemplate":{
                      "channel":"digit",
                      "texts":[
                         "test"
                      ],
                      "minutesDelay":60,
                      "sendStartTime":420,
                      "sendEndTime":1020
                   },
                   "schemeDetail":[
                      {
                         "needStatus":"delivered",
                         "smstemplate":{
                            "channel":"digit",
                            "texts":[
                               "test2"
                            ],
                            "sendStartTime":420,
                            "sendEndTime":960
                         }
                      }
                   ]
                },
                {
                   "needStatus":"not_delivered",
                   "smstemplate":{
                      "channel":"digit",
                      "texts":[
                         "test"
                      ]
                   }
                }
             ]
         }
  
      }', true);
      $url = https://admin.p1sms.ru/apiSms/createCascadeScheme";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

Загрузка изображения для Viber

URL:

https://admin.p1sms.ru/apiSms/loadImage

Метод:

post

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключдаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
imgfile (.jpg, .png)Файл с изображениемДа

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiSms/loadImage";
      $requestArray = array(
          'apiKey' => "AbCd****",
          'img' => new \CURLFile('/path_to_file/image.jpg'),
      );
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $requestArray);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data', 'accept: multipart/form-data'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>
                            

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

{
  "status": "success",
  "data": {},
  }

Запрос статуса сообщения

URL:

https://admin.p1sms.ru/apiSms/getSmsStatus

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключдаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
smsIdarrayСписок ID сообщенийДа

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiSms/getSmsStatus?apiKey=AbCd****&smsId[0]=1&smsId[1]=2&smsId[2]=3";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

[
      {
          "sms_id": 2222,
          "sms_status": "delivered",
          "receive_date": "2019-11-18 16:00:53"
      }
  ]

Запрос на получение баланса

URL:

https://admin.p1sms.ru/apiUsers/getUserBalanceInfo

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключдаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiUsers/getUserBalanceInfo?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
  "status": "success",
  "data": "15.0000"
  }

Запрос на получения списка отправителей

URL:

https://admin.p1sms.ru/apiUsers/getUserSenders

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключдаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiUsers/getUserSenders?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": [
            {
          "senderName": "SENDER",
          "status": null
          }
      ],
  }

Запрос на получение списка отправленных сообщений

URL:

https://admin.p1sms.ru/apiSms/getSmsList

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
pageintegerНомер страницыНетСтраница содержит 20 записей. Без указания номера страницы выводятся первые 20 записей.
pageCapacityintegerСтрока поискаНетСтрока поиска по номеру телефона
searchstringКоличество записейНетКоличество записей на странице. По умолчанию 20
fromintegerДатаНетДата начала поиска в формате Timestamp, по умолчанию - начало текущего дня (00:00)
tointegerДатаНетДата конца поиска в формате Timestamp, по умолчанию - конец текущего дня (23:59)
columnstringПоле для сортировкиНетДоступные поля: (created_at, updated_at, sent_at)
orderstringПорядок сортировкиНет(asc, desc)
sourcesarrayНет
sources.*stringИсточник сообщенийНетИсточники для фильтрации: (delivery, api, smpp, amocrm, yclients, birthday)
channelsarrayНет
channels.*stringКанал сообщенийНетКанал сообщений (digit, char, viber, telegram, vk)
statusesarrayНет
statuses.*stringСтатус сообщенияНетДоступные статусы для фильтрации: (created, delivered, not_delivered, low_balance, sent, error, read)
sendersarrayНет
senders.*stringapi.senderNameНет
messageTypestringТип сообщенияНетДоступные типы: (service, promo)
shortUrlClickedbooleanПереход по короткой ссылкеНет

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiSms/getSmsList?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": [
          {
          "smsId": 9345490,
          "receiveDate": {
              "date": "2019-04-18 07:05:12.000000",
              "timezone_type": 3,
              "timezone": "UTC"
          },
          "senderPhone": "72343534534",
          "phone": "79091112233",
          "text": "test1 ]-"
          },
          ]
  }

Запрос на получение информации по номеру телефона

URL:

https://admin.p1sms.ru/apiPhones/getPhoneInfo

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
phonestring(11)Номер страницыДа

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiPhones/getPhoneInfo?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": {
          "phone": "79091111212",
          "operator": "Теле2",
          "region": "Пермский край",
          "additionalInfo": null
      }
  }

Запрос на получение информации об операторах по номерам телефонов

URL:

https://admin.p1sms.ru/api/v2/phones

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
parrayНомера телефоновДаМассив номеров (до 1000 шт. за один запрос)
p.*stringНомер страницыДаНомер телефона в международном формате

Пример PHP

<?php
      $url = https://admin.p1sms.ru/api/v2/phones?p[0]=79637303932&apiKey=8xn****7cbms;
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": {
          "79637303932": {
              "operator": "Билайн",
              "country": "Россия",
              "region": "Вологодская область",
          }
      }
  }

Запрос на получение списка баз

URL:

https://admin.p1sms.ru/apiUsers/getUserBases

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiUsers/getUserBases?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": [
          {
          "baseId": 4464,
          "baseName": "18.04.2019 (14:38:33)"
          }
      ],
  }

Запрос на получение списка абонентов базы

URL:

https://admin.p1sms.ru/apiUsers/getBasePhones

Метод:

get

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
baseIdintegerID базыДа
pageintegerНомер страницыСтраница содержит 100 записей. Без указания номера страницы выводятся первые 100 записей.

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiUsers/getBasePhones?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": {
          "total": 4,
          "perPage": 100,
          "currentPage": 1,
          "lastPage": 1,
          "nextPageUrl": null,
          "prevPageUrl": null,
          "from": 1,
          "to": 4,
          "data": [
                {
              "phone": "79092342312"
              },
                {
              "phone": "79091234353"
              },
                {
              "phone": "79091233523"
              },
                {
              "phone": "79091141212"
              }
          ],
      }
  }

Запрос на добавление номера телефона в базу номеров

URL:

https://admin.p1sms.ru/apiPhoneBases/{phone_base_id}/phones

Метод:

POST

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
phonesarrayДа
phones.*.phonestring(11)Номер телефона в международном форматеДа
phones.*.additionalcolumnsarrayДополнительные столбцыНет

Пример PHP

<?php
      $params = json_decode('{
         "apiKey":"arEre****",
         "phones":[
            {
               "phone":"79999996669"
            },
            {
               "phone":"Номер_2"
            }
         ]
      }', true);
      $url = https://admin.p1sms.ru/apiPhoneBases/999999/phones";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": {
          "total": 4,
          "perPage": 100,
          "currentPage": 1,
          "lastPage": 1,
          "nextPageUrl": null,
          "prevPageUrl": null,
          "from": 1,
          "to": 4,
          "data": [
                {
              "phone": "79092342312"
              },
                {
              "phone": "79091234353"
              },
                {
              "phone": "79091233523"
              },
                {
              "phone": "79091141212"
              }
          ],
      }
  }

Запрос на получение списка номеров из черного списка

URL:

https://admin.p1sms.ru/apiUsers/getUserBlacklist

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
pageintegerНомер страницыСтраница содержит 100 записей. Без указания номера страницы выводятся первые 100 записей.

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiUsers/getUserBlacklist?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": [
          {
          "phone": "71231231211",
          "additionalInfo": null
          }
      ],
  }

Запрос на получение списка запланированных сообщений

URL:

https://admin.p1sms.ru/apiUsers/getPlannedSms

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
pageintegerНомер страницыСтраница содержит 20 записей. Без указания номера страницы выводятся первые 20 записей.

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiUsers/getPlannedSms?apiKey=arEre****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
  "status":"success",
  "data":
  []
  }

Запрос на просмотр доступных шаблонов Вконтакте

URL:

https://admin.p1sms.ru/apiSms/listMessageTemplates

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiSms/listMessageTemplates?apiKey=AbCd****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": [
          {
          "id": 14,
          "name": "zvonobot_communicate_soon",
          "status": "available",
          "tmpl": "Наш специалист в ближайшее время свяжется в вами, #user#",
          "vkGroupUrl": "https://vk.com/zvonobot",
          "okGroupUrl": null,
          "attdir": null,
          "attachments": [],
          }
      ],
  }

Запрос на просмотр доступных шаблонов каскадных сообщений

URL:

https://admin.p1sms.ru/apiSms/getCascadeSchemes

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
apiKeystringСтрока поискаНет

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiSms/getCascadeSchemes?apiKey=AbCd****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

Запрос на получение списка Telegram ботов

URL:

URL: https://admin.p1sms.ru/apiTelegramBots/get

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiTelegramBots/get?apiKey=AbCd****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": [
          {
              "id": 4,
              "name": "Тестовый бот",
              "username": "test1111_bot",
              "welcomeMessage": "Вас приветствует тестовый бот!",
              "phoneInputMessage": "Укажите ваш номер телефона",
              "lang": "ru",
              "createdAt": 1589810295,
              "updatedAt": 1589810295,
          }
      ]
  }

Запрос на получение списка файлов для Telegram

URL:

https://admin.p1sms.ru/apiTelegramBots/files/get

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
botUsernamestringUsername ботаДа

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiTelegramBots/files/get?apiKey=AbCd****&botUsername=test111_bot";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>
                   

Запрос на загрузку файла для Telegram

URL:

https://admin.p1sms.ru/apiTelegramBots/actions/get

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
botUsernamestringUsername ботаДа

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiTelegramBots/actions/get?apiKey=AbCd****&botUsername=test111_bot";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

Запрос на создание нового действия для Telegram

URL:

https://admin.p1sms.ru/apiTelegramBots/files/upload

Метод:

POST

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
botUsernamestringUsername ботаДа
namestringНазвание действияДа
commentstringКомментарийНет
messagestringТекст сообщенияНет
mayUsedAsButtonbooleanТекст сообщенияНет
remoteScriptUrlstringВебхук на Ваш сервисНетПример тела запроса от нашего сервера и пример ответа вашего сервера указан ниже
tgParametersarrayПараметры сообщений Telegram
tgParameters.*.botUsernamestringUsername Telegram БотаДа
tgParameters.*.contentarrayДа
tgParameters.*.content.*.priorityintegerПриоритет сообщенияДа
tgParameters.*.content.*.messagestringПодпись к документу, будет видна ниже прикрепляемого документаНет
tgParameters.*.content.*.baseMessagebooleanУказывает на то, что контетом сообщения будет основное сообщениеНет
tgParameters.*.content.*.fileIdintegerID файла в нашей системеНет
tgParameters.*.content.*.buttonsarrayНастройки inline-клавиатурыНет
tgParameters.*.content.*.buttons.*.captionstringПодпись кнопки inline-клавиатурыДа
tgParameters.*.content.*.buttons.*.rowPriorityintegerПорядок кнопки в строках inline-клавиатурыДа
tgParameters.*.content.*.buttons.*.columnPriorityintegerПорядок кнопки в столбцах inline-клавиатурыДа
tgParameters.*.content.*.buttons.*.removeKeyboardintegerУдалять после нажатия inline-клавиатуру, или нетНет
tgParameters.*.content.*.buttons.*.redirectUrlstringСсылка, по которой будет осуществлен переход после нажатия кнопкиНет
tgParameters.*.content.*.buttons.*.actionIdintegerID действия в нашей системеНет
tgParameters.*.content.*.buttons.*.actionarrayНет
tgParameters.*.content.*.buttons.*.action.*.namestringНазвание действияДа
tgParameters.*.content.*.buttons.*.action.*.messagestringТекст сообщенияДаno
tgParameters.*.content.*.buttons.*.action.*.remoteScriptUrlstringВебхук на Ваш сервисНетПример тела запроса от нашего сервера и пример ответа вашего сервера указан ниже, в разделе примеров (вкладка Telegram)
tgParameters.*.content.*.buttons.*.action.*.tgParametersstringtgParametersНет

Пример PHP

<?php
      $url = https://admin.p1sms.ru/apiTelegramBots/files/upload";
      $requestArray = array(
          "botUsername" => "p1sms_bot",
          "name" => "Новое действие", // Название действие, возвращается в вебхуке
          "comment" => "Комментарий",
          "message" => "Совершено действие 1", //baseMessage у нового действия
          "tgParameters" => [], // По аналогии с выше
          "remoteScriptUrl" => "https://admin.p1sms.ru/api/actions/getRate", //Webhook на удалённый адрес
           mayUsedAsButton" => false, // Может ли данное действие использоваться в клавиатуре у телеграма ( если есть обязательные параметры - не может)
  
      );
      $json = json_encode($requestArray, JSON_UNESCAPED_UNICODE);
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

Пример тела запроса remoteScriptUrl

POST /yourUrl
  {
    "spamBotId": 1, // Идентификатор телеграм бота
    "chatId": 999999999, //Идетификатор чата с клиентом
    "actionId": 1, // Идентификатор действия, которое вызвало вебхук
    "actionName": "unsubscribe", //Название действия, которое вызвало вебхук
    "variables": [{ // Переменные, которые будут использовать при заменах конечного сообщения
      "firstName": "first name of client",
      "lastName": "last name of client",
      "phone": "7999XXXXXXX"
    }],
    "parameters": "параметр1 параметр2 параметр3", //Параметры(строка), указанные при вызове команды. Если параметров не было - параметра не будет во входных данных. В данном примере могла быть вызвана команда /test параметр1 параметр2 параметр3
    "messageId": 999888777 //Идентификатор сообщения, у которого была нажата кнопка, которое вызвало данное действие. Если кнопки не было - параметра не будет во входных данных
  }

Ответ вашего сервера на webhook remoteScriptUrl (Status code: 200)
Если не требуется совершать никаких действий, менять сообщение

    {}

Если требуется изменить сообщение

  {}{
    "message": "Новое сообщение с новой переменной #var1# и переменной, которая уже есть у нас: #firstName#", // Сообщение, которое заменит сообщение указанное как baseMessage в одном из telegramParameters.content массиве
    "variables": [{ // Дополнительные переменные, которые будут использоваться при отправке сообщения. Если новых переменных не будет - параметр не обязателен
      "var1": "переменная 1"
    }],
    "tgParameters": { //Все параметры телеграм сообщений совпадают с теми, которые используются при создании сообщения. Если не требуется менять content - параметр не обязателен
      "botUsername": "p1sms_bot",
      "content": [
        {
          "baseMessage": true,
          "priority": 1
        }
      ]
    }
  }

Коды ошибок

core.api.codeИмяПримечание
0Нет ошибкиАбонент существует и Доступные
1Объект не существуетОбъект с указанным id или номером не существует
2Нет доступаНедостаточно прав для доступа к запрашиваемым данным

Статусы рассылок

ИмяПримечание
"created"Создано
"moderation"На модерации
"sent"Отправлено
"error"Ошибка в системе
"delivered"Доставлено
"not_delivered"Не доставлено
"read"Прочитано
"planned"Запланировано
"low_balance"Низкий баланс клиента
"low_partner_balance"Ошибка 592
"rejected"Отклонена

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

URL:

https://admin.p1sms.ru/api/statistics

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
startDateintegerКоличество секунд Unix timestampНет
endDateintegerКоличество секунд Unix timestampНет
channelstring'digit', 'char', 'viber', 'voice' or 'vk'Нет
sourcestring'delivery', 'api', 'birthday' or 'yclients'Нет
grouping.*string'channel', 'delivery', 'operator', 'sender', 'smpp', 'source', 'tariff'Нет
grouping.timestring'minute', 'hour', 'day', 'month' or 'year'Нет

Пример PHP

<?php
      $url = https://admin.p1sms.ru/api/statistics?startDate=15554****";
      $curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, $url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'accept: application/json'));
      curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
      $out = curl_exec($curl);
      $response = json_decode($out);
      curl_close($curl);
  ?>

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

{
      "status": "success",
      "data": [
          {
          "delivered": 0,
          "read": 0,
          "notDelivered": 0,
          "sent": 0,
          "cost": null,
          "smsCount": null,
          "compensation": null
          }
      ],
  }

Запрос на просмотр статистики (Новый)

URL:

https://admin.p1sms.ru/api/statistics

Метод:

GET

ИмяТипЗначениеОбязательныйПримечание
apiKeystringAPI-ключДаAPI ключ вы можете найти в разделе «‎Эмулятор запросов»‎ или «‎Инструкция по API»‎
startDateintegerКоличество секунд Unix timestampНет
endDateintegerКоличество секунд Unix timestampНет
channelsstring'digit', 'char', 'viber', 'voice' or 'vk'Нет
currenciesstringНет
exclCurrenciesstringНет
grouping.*string'channel', 'delivery', 'operator', 'sender', 'smpp', 'source', 'tariff'Нет

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

{
  "status": "success",
  "data": [
      {
          "currency": "USD",
          "cCost": 0.16,
          "cComp": 0,
          "notDelivered": 0,
          "delivered": 4,
          "read": 0,
          "sent": 0,
          "totalSent": 4,
          "cesCost": 0.9,
          "pesCost": 0,
          "esNotDelivered": 0,
          "esDelivered": 1,
          "esRead": 0,
          "esSent": 0,
          "esTotalSent": 1,
          "notSended": 0,
          "esNotSended": 0
      },
      {
          "currency": "RUB",
          "cCost": 553.3,
          "cComp": 69.34,
          "notDelivered": 23,
          "delivered": 200,
          "read": 7,
          "sent": 14,
          "totalSent": 273,
          "cesCost": 0.9,
          "pesCost": 0,
          "esNotDelivered": 0,
          "esDelivered": 1,
          "esRead": 0,
          "esSent": 0,
          "esTotalSent": 2,
          "notSended": 29,
           "esNotSended": 1
      }
  ]
  }
          "smsCount": null,
          "compensation": null
          }
      ],
  }