Документация по API v2 — SendAPI.net

Схема работы

  1. Мы подключаем к системе номер телефона, от которого будут уходить сообщения.
  2. Вы выбираете тариф и оплачиваете его удобным для вас способом.
  3. Используя наше API осуществляете рассылку ваших сообщений.
Примеры кода:
$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_send",
  "phone"   =>  "77000000000",
  "text"    =>  "Сообщение",
  "file_url" => "https://secure.gravatar.com/avatar/7cab71edb0a4c12a1e64bbfdf46a3c64",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
                                
const data = {
  json_data: JSON.stringify({
    method: "whatsapp_send",
    phone: "77000000000",
    text: "Сообщение",
    file_url: "https://secure.gravatar.com/avatar/7cab71edb0a4c12a1e64bbfdf46a3c64",
    api_id: "<app id>"
  })
};

fetch("https://api.sendapi.net", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: new URLSearchParams(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
                                
import requests
import json

data = {
    'json_data': json.dumps({
        'method': 'whatsapp_send',
        'phone': '77000000000',
        'text': 'Сообщение',
        'file_url': 'https://secure.gravatar.com/avatar/7cab71edb0a4c12a1e64bbfdf46a3c64',
        'api_id': '<app id>'
    })
}

response = requests.post('https://api.sendapi.net', data=data)
result = response.json()
print(result)
                                
Адрес:
https://api.sendapi.net
Метод:
POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_send Отправить сообщение Whatsapp
phone да Номер телефона получателя или ID Whatsapp-группы
text да (обязателен если не указан file_url) Текст сообщения в кодировке UTF-8
file_url да (обязателен если не указан text) Ссылка на файл
smap_number нет Номер вашего канала WhatsApp, с которого отправить сообщение; контакт закрепляется за этим каналом. Не указан — канал выбирает система
mark_read нет true — после отправки отметить диалог в чате операторов прочитанным
operator_id нет Id сотрудника аккаунта (раздел «Персонал»), от имени которого уходит сообщение: целое число больше нуля. Не передан — от владельца аккаунта. Не сотрудник этого аккаунта, удалён или заблокирован — отказ без отправки (result 2)
api_id да Ваш API ключ
Ответ при успешном запросе:

При успешном запросе будет возвращен ID отправленного сообщения по которому в дальнейшем можно получить его статус.

{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}
Примеры кода:
$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'whatsapp_send',
  'phone'  => '77000000000',
  'text'   => 'файл 3',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
                                
const formData = new FormData();
const fileInput = document.getElementById('fileInput'); // HTML input type="file"

formData.append('json_data', JSON.stringify({
  method: 'whatsapp_send',
  phone: '77000000000',
  text: 'файл 3',
  api_id: '<app id>'
}));
formData.append('file', fileInput.files[0]);

fetch('https://api.sendapi.net', {
  method: 'POST',
  body: formData
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
                                
import requests
import json

file_path = '/path/to/your/file.jpg'

data = {
    'json_data': json.dumps({
        'method': 'whatsapp_send',
        'phone': '77000000000',
        'text': 'файл 3',
        'api_id': '<app id>'
    })
}

files = {
    'file': open(file_path, 'rb')
}

response = requests.post('https://api.sendapi.net', data=data, files=files)
result = response.json()
print(result)
                                
Адрес:
https://api.sendapi.net
Метод:
POST
Параметры для file:
Данные передаваемого файла
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_send Отправить сообщение Whatsapp
phone да Номер телефона получателя
text нет Текст сообщения в кодировке UTF-8
api_id да Ваш API ключ
Ответ при успешном запросе:

При успешном запросе будет возвращен ID отправленного сообщения по которому в дальнейшем можно получить его статус.

{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_mailing","name":"Рассылка из API","text":"Тестовое сообщение","file_url":"https://api.sendapi.net/img/kp6.png","filter":{"phones":[77000000000,77000000001]},"api_id":"<app id>"}
Примеры кода:
$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_mailing",
  "name"    =>  "Рассылка из API",
  "text"    =>  "Тестовое сообщение",
  "file_url" => "https://api.sendapi.net/img/kp6.png",
  "filter"  => ["phones" => [77000000000,77000000001]],
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
                                
const data = {
  json_data: JSON.stringify({
    method: "whatsapp_mailing",
    name: "Рассылка из API",
    text: "Тестовое сообщение",
    file_url: "https://api.sendapi.net/img/kp6.png",
    filter: {
      phones: [77000000000, 77000000001]
    },
    api_id: "<app id>"
  })
};

fetch("https://api.sendapi.net", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: new URLSearchParams(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
                                
import requests
import json

data = {
    'json_data': json.dumps({
        'method': 'whatsapp_mailing',
        'name': 'Рассылка из API',
        'text': 'Тестовое сообщение',
        'file_url': 'https://api.sendapi.net/img/kp6.png',
        'filter': {
            'phones': [77000000000, 77000000001]
        },
        'api_id': '<app id>'
    })
}

response = requests.post('https://api.sendapi.net', data=data)
result = response.json()
print(result)
                                
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_mailing Отправить рассылку Whatsapp
name да Наименование рассылки
text да (обязателен если не указан file_url) Текст сообщения в кодировке UTF-8. Ограничения от 10 до 2000 символов
file_url да (обязателен если не указан text) Ссылка на файл
filter да Фильтр, данные в JSON формате, JSON не должен быть пустым. Доступные параметры:
• phones - массив номеров телефонов, минимальное кол-во 2 номера: [77010000000,77010000001];
• category - "all" или id категории;
• date_registration - дата добавления номера в JSON формате: {"from":"2019-01-01 00:00:00","to":"2019-01-31 23:59:59"};
• date_active - дата активности номера в JSON формате: {"from":"2019-01-01 00:00:00","to":"2019-01-31 23:59:59"};

Параметр phones имеет приоритетный уровень, если он указан другие параметры не участвуют в фильтрации
Рассылка отправляется только на номера со статусом Подписан

Примеры:
{"category":"all","date_registration":{"from":"2019-01-01 00:00:00","to":"2019-01-31 23:59:59"}
{"phones":[77010000000,77010000001]}
{"category":"all"}
send_date нет Дата когда необходимо запустить рассылку [формат: 2019-02-03 00:00:00]. Если не передана, рассылка запускается сразу
api_id да Ваш API ключ
Ответ при успешном запросе:

При успешном запросе будет возвращен ID отправленного сообщения по которому в дальнейшем можно получить его статус.

{
  "result":0,
  "mailing_id":1
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}
Примеры кода:
$file_path = 'абсолютный путь /12015426947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method'        => 'whatsapp_send_contact_card',
  'phone'         => '77000000000',
  'api_id'        => '<app id>',
  'contact_phone' => '77000000000',
  'contact_name'  => 'Имя контакта',
  'file_url'      => 'https://api.sendapi.net/img/kp6.png',
]);
$data['contact_logo_image'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
                                
const formData = new FormData();

formData.append('json_data', JSON.stringify({
  method: 'whatsapp_send_contact_card',
  phone: '77000000000',
  api_id: '<app id>',
  contact_phone: '77000000000',
  contact_name: 'Имя контакта',
  file_url: 'https://api.sendapi.net/img/kp6.png'
}));

// Если есть файл логотипа контакта
const fileInput = document.getElementById('logoInput');
if (fileInput && fileInput.files[0]) {
  formData.append('contact_logo_image', fileInput.files[0]);
}

fetch('https://api.sendapi.net', {
  method: 'POST',
  body: formData
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('Error:', error));
                                
import requests
import json

data = {
    'json_data': json.dumps({
        'method': 'whatsapp_send_contact_card',
        'phone': '77000000000',
        'api_id': '<app id>',
        'contact_phone': '77000000000',
        'contact_name': 'Имя контакта',
        'file_url': 'https://api.sendapi.net/img/kp6.png'
    })
}

# Если есть файл логотипа контакта
files = {}
logo_path = '/path/to/contact/logo.jpg'  # путь к файлу логотипа
try:
    files['contact_logo_image'] = open(logo_path, 'rb')
except FileNotFoundError:
    pass

response = requests.post('https://api.sendapi.net', data=data, files=files)
result = response.json()
print(result)
                                
Адрес:
https://api.sendapi.net
Метод:
POST
Параметры для file:
Данные передаваемого файла
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_send_contact_card Отправить контакт Whatsapp
phone да Номер телефона получателя
contact_phone да Номер телефона, который передается в контакте
contact_name да Имя контакта
logo_id да, если не указан параметр contact_logo_image ID логотипа, который становится известен после загрузки логотипа через параметр contact_logo_image. [Параметр устарел используйте file_url]
file_url да, если не указан параметр contact_logo_image Url на картинку. Формат изображения jpg, jpeg, png. Пример: https://api.sendapi.net/img/kp6.png
api_id да Ваш API ключ
Параметры для contact_logo_image:
contact_logo_image да, если не указан параметр logo_id; если указан параметр logo_id, загружаемый файл будет игнорироваться. Внимание: разрешен к отправке только формат изображения jpg, jpeg. Параметр, в который нужно загружать файл
Ответ при успешном запросе:

При успешном возвращается только статус отправки.

{
  "result":0,
}
Ответ при успешном запросе, когда передан contact_logo_image:

При успешном возвращается статус отправки и ID логотипа, который можно далее подставлять к параметру logo_id.

{
  "result":0,
  "logo_id":"100"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_send_geolocation","phone":"77000000000","latitude":"53.284461","longitude":"69.378938","altitude":"5.5","accurate":"5.5","api_id":"<app id>"}
Примеры кода:
$data['json_data'] = json_encode([
  "method"     =>  "whatsapp_send_geolocation",
  "phone"      =>  "77000000000",
  "latitude"   =>  "53.284461",
  "longitude"  =>  "69.378938",
  "altitude"   =>  "5.5",
  "accurate"   =>  "5.5",
  "api_id"     =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
                                
const data = {
  json_data: JSON.stringify({
    method: "whatsapp_send_geolocation",
    phone: "77000000000",
    latitude: "53.284461",
    longitude: "69.378938",
    altitude: "5.5",
    accurate: "5.5",
    api_id: "<app id>"
  })
};

fetch("https://api.sendapi.net", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: new URLSearchParams(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
                                
import requests
import json

data = {
    'json_data': json.dumps({
        'method': 'whatsapp_send_geolocation',
        'phone': '77000000000',
        'latitude': '53.284461',
        'longitude': '69.378938',
        'altitude': '5.5',
        'accurate': '5.5',
        'api_id': '<app id>'
    })
}

response = requests.post('https://api.sendapi.net', data=data)
result = response.json()
print(result)
                                
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_send_geolocation Отправить геопозицию Whatsapp
phone да Номер телефона получателя
latitude да Широта
longitude да Долгота
altitude да Масштаб карты (параметр z ссылки Google Maps), например 17
accurate да Точность
api_id да Ваш API ключ
Ответ при успешном запросе:

При успешном запросе будет возвращен ID отправленного сообщения по которому в дальнейшем можно получить его статус.

{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_message_list","message_id":"0","limit":"100","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"      =>  "whatsapp_message_list",
  "message_id"  =>  "0",
  "limit"       =>  "100",
  "api_id"      =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_message_list Получить список сообщений Whatsapp
message_id нет ID сообщения. По умолчанию 0.
phone нет Номер телефона
limit нет Кол-во записей за запрос. По умолчанию 50.
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[{
              "message_id":1,
              "transport":"whatsapp",
              "message_route":"inbox",
              "message_type":"message-chat",
              "message_text":"123",
              "message_quoted":null,
              "phone":"7700****000",
              "file_url":null,
              "phone_id":426,
              "add_date":"2019-11-28 16:44:09",
              "message_status":2,
              "message_status_name":"delivered_to_device",
              "referral":null,
              "transport_ph_numb":"777****6224"}]
}

referral — переход с рекламы Click-to-WhatsApp: ID объявления, ID клика и данные объявления; null — сообщение не из рекламы. Поля объекта — как в Webhook.

Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_message_get","message_id":"1","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"      =>  "whatsapp_message_get",
  "message_id"  =>  "1",
  "api_id"      =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_message_get Получить статус сообщения
message_id да Номер сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[массив данных]
}

Элемент массива — те же поля, что у whatsapp_message_list, включая referral — переход с рекламы Click-to-WhatsApp (null — сообщение не из рекламы; поля объекта — как в Webhook).

Ответ при не успешном запросе:
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_phone_list","phone_id":"0","limit":"100","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"    =>  "whatsapp_phone_list",
  "phone_id"  =>  "0",
  "limit"     =>  "100",
  "api_id"    =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_phone_list Получить список подписчиков
phone_id нет ID телефона. По умолчанию 0.
limit нет Кол-во записей за запрос. По умолчанию 50.
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[массив данных]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_phone_add","phone":"77000000000","name":"Имя","contact_company":"0","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_phone_add",
  "phone"   =>  "77000000000",
  "name"    =>  "Имя",
  "contact_company" => "0",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_phone_add Добавить подписчика
phone да Номер подписчика
name нет Имя подписчика
contact_company нет Отправлять или нет контакт компании пользователю. 1 - отправлять, 0 - не отправлять
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[массив данных]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_phone_get","phone":"77000000000","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_phone_get",
  "phone"   =>  "77000000000",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_phone_get Получить данные подписчика
phone да Номер подписчика
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[массив данных]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_unsubscribe","phone":"77000000000","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_unsubscribe",
  "phone"   =>  "77000000000",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_unsubscribe Отписать подписчика от рассылки
phone да Номер подписчика
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_description":"Подписчик отписан."
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_group_list","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_group_list",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_group_list Получить список whatsapp групп
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "groups": [
    {
      "adminCheck":false,
      "admins":["77*********"],
      "subscribers":["77*********","77*********","77*********"],
      "group_id":"whatsapp_group_********-********",
      "name":"Тест группа"
    }
  ]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_group_get","group_id":"whatsapp_group_*******","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_group_get",
  "group_id"=>  "whatsapp_group_*******",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_group_get Получить whatsapp группу
group_id да id группы
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "group":{
    "adminCheck":false,
    "admins":["77*********"],
    "subscribers":["77*********","77*********","77*********"],
    "group_id":"whatsapp_group_********-********",
    "name":"Тест группа"
  }
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"     =>  "whatsapp_group_create",
  "sp_numb"    =>  "1",
  "group_name" =>  "Тест группа",
  "subscribers"=>  ['7700*******'],
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_group_create Создать whatsapp группу. Данный метод создает задачу на создание группы. Группа появится только после выполнения задачи. Время выполнения задачи зависит от нагруженности канала.
sp_numb да id канала, можно получить через метод whatsapp_sender_get
group_name да Наименование группы
subscribers да Массив подписчиков
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_description":"Задача на создание группы подана успешно. Ожидайте появления группы в списке групп."
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"     =>  "whatsapp_group_contact_set",
  "group_id"   =>  "whatsapp_group_*******",
  "subscribers"=>  ['7700*******'],
  "api_id"     =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_group_contact_set Данный метод создает задачу на добавление подписчиков в группу. Подписчики появятся только после выполнения задачи. Время выполнения задачи зависит от нагруженности канала.
group_id да id группы
subscribers да Массив подписчиков
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_description":"Задача на добавление контактов в группу подана успешно."
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"     =>  "whatsapp_group_contact_del",
  "group_id"   =>  "whatsapp_group_*******",
  "subscribers"=>  ['7700*******'],
  "api_id"     =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_group_contact_del Данный метод создает задачу на удаление подписчиков из группы. Подписчики удалятся только после выполнения задачи. Время выполнения задачи зависит от нагруженности канала.
group_id да id группы
subscribers да Массив подписчиков
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_description":"Задача на удаление контактов из группу подана успешно."
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"     =>  "whatsapp_group_contact_set_as_admin",
  "group_id"   =>  "whatsapp_group_*******",
  "subscriber" =>  "7700*******",
  "api_id"     =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_group_contact_set_as_admin Данный метод создает задачу на добавление права админа подписчику в группе. Время выполнения задачи зависит от нагруженности канала.
group_id да id группы
subscriber да Номер подписчика
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_description":"Задача на добавление прав админа подана успешно."
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"contact_add","phone":"77000000000","sp_numb":"0","name":"Имя","contact_company":"0","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "contact_add",
  "phone"   =>  "77000000000",
  "sp_numb" =>  "0",
  "name"    =>  "Имя",
  "contact_company" => "0",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method contact_add Добавить подписчика с указанием канала
phone да Номер подписчика
sp_numb да Id канала, можно получить через метод whatsapp_sender_get
name нет Имя подписчика
contact_company нет Отправлять или нет контакт компании пользователю. 1 - отправлять, 0 - не отправлять
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "phone" : "whatsapp_biz_77000000000", // Вернет номер в формате в зависимости от канала
  "sp_numb" : 0,
  "result_description" : "Подписчик добавлен."
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"whatsapp_sender_get","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_sender_get",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_sender_get Получить данные каналов
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"chat_work_list","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "chat_work_list",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method chat_work_list Получить список контактов в работе
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"chat_work_update","phone":"77000000000","operator_id":"10","action":"chat_in_work","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "chat_work_update",
  "phone"   =>  "77000000000",
  "operator_id" => "10",
  "action"  => "chat_in_work"
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method chat_work_update Взять или закрыть диалог
phone да Контакт
operator_id да ID оператора
action да chat_in_work - Взять в работу, chat_out_of_work - закрыть диалог
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"chat_operator_online","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "chat_operator_online",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method chat_operator_online Получить операторов онлайн
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"operation_mode","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "operation_mode",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method operation_mode Получить режим работы
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "instagram_send_text",
  "phone"   => "instagram_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method instagram_send_text Отправить сообщение instagram
phone да Контакт instagram. Формат instagram_0000000000.
text да Текст сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "instagram_send_file",
  "phone"   => "instagram_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'instagram_send_file',
  'phone'  => 'instagram_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method instagram_send_file Отправить файл instagram
phone да Контакт instagram. Формат instagram_0000000000.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "telegram_send_text",
  "phone"   => "telegram_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

Отправка первым сообщением по @username

Если контакт ещё не добавлен в канал, можно вместо `phone` указать `tg_login` и `sp_numb` (идентификатор канала). Сервер попытается разрешить `@username` через Telegram-gateway, автоматически создать/проверить подписку в указанном `sp_numb` и затем отправить сообщение.

$data['json_data'] = json_encode([
    "method"  =>  "telegram_send_text",
    "sp_numb" => 123,
    "tg_login"=> "@username",
    "text"    => "Привет! Это первое сообщение.",
    "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
            

Примечания:

  • Валидация `tg_login`: логин должен соответствовать шаблону ^@[a-zA-Z][a-zA-Z0-9_]{4,31}$.
  • sp_numb — это идентификатор канала (phone_id / smap id). Указанный канал должен иметь настроенный Telegram-слот (tg_v2_slot_id).
  • Если при отправке сообщение не уходит и возвращается код ошибки, проверьте корректность `tg_login`, доступность Telegram-gateway и наличие `sp_numb`.

Отправка в тему группы

Если бот подключён к группе с темами (форумом), сообщение можно отправить в тему: phone — группа вида telegram_-1001234567890, topic_id — id темы из ответа метода telegram_create_topic.

$data['json_data'] = json_encode([
    "method"   =>  "telegram_send_text",
    "phone"    => "telegram_-1001234567890",
    "topic_id" => 42,
    "text"     => "Сообщение в тему",
    "api_id"   =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
            
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method telegram_send_text Отправить сообщение telegram
phone да (обязателен если не указан tg_login) Контакт telegram. Формат telegram_0000000000.
tg_login да (обязателен если не указан phone) Логин Telegram в формате @username — для первого сообщения контакту, которого ещё нет в канале
sp_numb да (обязателен вместе с tg_login) Идентификатор канала (phone_id), через который отправить сообщение по tg_login
topic_id нет Id темы группы (форума), куда отправить сообщение: целое число больше нуля, только для группы бота (phone вида telegram_-1001234567890)
reply_to_message_id нет Id сообщения Telegram, на которое ответить цитатой: целое число больше нуля, только для бота Telegram. Если исходное сообщение удалено, ответ уходит без цитаты
reply_quote нет Фрагмент текста сообщения reply_to_message_id, который процитировать: от 1 до 1024 символов, точно как в сообщении, только вместе с reply_to_message_id. Если фрагмента нет в сообщении, сообщение не отправится
text да Текст сообщения
operator_id нет Id сотрудника аккаунта (раздел «Персонал»), от имени которого уходит сообщение: целое число больше нуля. Не передан — от владельца аккаунта. Не сотрудник этого аккаунта, удалён или заблокирован — отказ без отправки (result 2)
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Создаёт тему (форум) в группе Telegram, подключённой к боту кабинета командой /connect. В группе должны быть включены темы, а бот — администратором с правом управлять темами. Id темы из ответа передаётся в topic_id метода telegram_send_text.

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "telegram_create_topic",
  "phone"   => "telegram_-1001234567890",
  "name"    => "Клиент · кабинет 123",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method telegram_create_topic Создать тему в группе telegram
phone да Группа бота telegram. Формат telegram_-1001234567890.
name да Имя темы, от 1 до 128 символов
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "topic_id":42,
  "name":"Клиент · кабинет 123"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Группа не подключена к этому аккаунту",
  "error_code":"not_connected"
}

Причина отказа — в поле error_code: not_connected — группа не подключена к кабинету, topics_not_enabled — в группе не включены темы, bot_not_admin — бот не администратор или не может управлять темами, telegram_error — Telegram не ответил.

Ставит реакцию бота на сообщение в группе Telegram, подключённой к боту кабинета командой /connect. У бота на сообщении одна реакция: новая заменяет прежнюю, пустая строка в reaction снимает её. Допустимы только эмодзи из списка реакций Telegram (например 👀, ✍, 👨‍💻, 👌, 🤔, 🤷).

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"     =>  "telegram_set_reaction",
  "phone"      => "telegram_-1001234567890",
  "message_id" => 4242,
  "reaction"   => "👀",
  "api_id"     =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method telegram_set_reaction Поставить реакцию на сообщение группы telegram
phone да Группа бота telegram. Формат telegram_-1001234567890.
message_id да Id сообщения Telegram в группе: целое число больше нуля
reaction да Эмодзи реакции из списка Telegram; пустая строка снимает реакцию бота
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":4242,
  "reaction":"👀"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Группа не подключена к этому аккаунту",
  "error_code":"not_connected"
}

Причина отказа — в поле error_code: not_connected — группа не подключена к кабинету, bot_not_found, bot_not_owned, bot_not_bound — бот группы не найден, принадлежит другому кабинету или не подключён к каналу SendAPI, telegram_error — Telegram отклонил реакцию (сообщения нет в группе, эмодзи не разрешено в группе) или не ответил.

Переносит сообщение группы Telegram, подключённой к боту кабинета командой /connect, в тему группы. В Telegram нет переноса сообщений между темами, поэтому бот пересылает сообщение в тему (в теме видно «Переслано от» с автором) и удаляет исходное. Для удаления бот должен быть администратором с правом удалять сообщения, а сообщение — младше 48 часов; иначе исходное остаётся, а в ответе deleted — false. Id темы — из ответа метода telegram_create_topic.

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"     =>  "telegram_move_message",
  "phone"      => "telegram_-1001234567890",
  "message_id" => 4242,
  "topic_id"   => 42,
  "api_id"     =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method telegram_move_message Перенести сообщение группы telegram в тему
phone да Группа бота telegram. Формат telegram_-1001234567890.
message_id да Id сообщения Telegram в группе: целое число больше нуля
topic_id да Id темы группы, куда перенести сообщение: целое число больше нуля
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":4242,
  "topic_id":42,
  "new_message_id":4250,
  "deleted":true
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Группа не подключена к этому аккаунту",
  "error_code":"not_connected"
}

Причина отказа — в поле error_code: not_connected — группа не подключена к кабинету, bot_not_found, bot_not_owned, bot_not_bound — бот группы не найден, принадлежит другому кабинету или не подключён к каналу SendAPI, telegram_error — Telegram не переслал сообщение (сообщения или темы нет в группе) или не ответил; исходное сообщение в этом случае не удаляется.

Закрепляет сообщение в группе Telegram, подключённой к боту кабинета командой /connect, или открепляет его (unpin — true). Закрепление — без уведомления участникам группы. Бот должен быть администратором группы с правом закреплять сообщения.

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"     =>  "telegram_pin_message",
  "phone"      => "telegram_-1001234567890",
  "message_id" => 4242,
  "unpin"      => false,
  "api_id"     =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method telegram_pin_message Закрепить сообщение группы telegram
phone да Группа бота telegram. Формат telegram_-1001234567890.
message_id да Id сообщения Telegram в группе: целое число больше нуля
unpin нет true — открепить сообщение; false или без параметра — закрепить
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":4242,
  "pinned":true
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Бот не администратор группы или у него нет права закреплять сообщения",
  "error_code":"bot_cannot_pin"
}

Причина отказа — в поле error_code: not_connected — группа не подключена к кабинету, bot_not_found, bot_not_owned, bot_not_bound — бот группы не найден, принадлежит другому кабинету или не подключён к каналу SendAPI, bot_cannot_pin — бот не администратор группы или у него нет права закреплять сообщения, telegram_error — Telegram отклонил запрос (сообщения нет в группе) или не ответил.

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "telegram_send_file",
  "phone"   => "telegram_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'telegram_send_file',
  'phone'  => 'telegram_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method telegram_send_file Отправить файл telegram
phone да Контакт telegram. Формат telegram_0000000000.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
topic_id нет Id темы группы (форума), куда отправить сообщение: целое число больше нуля, только для группы бота (phone вида telegram_-1001234567890)
reply_to_message_id нет Id сообщения Telegram, на которое ответить цитатой: целое число больше нуля, только для бота Telegram. Если исходное сообщение удалено, ответ уходит без цитаты
reply_quote нет Фрагмент текста сообщения reply_to_message_id, который процитировать: от 1 до 1024 символов, точно как в сообщении, только вместе с reply_to_message_id. Если фрагмента нет в сообщении, сообщение не отправится
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "vk_send_text",
  "phone"   => "vk_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method vk_send_text Отправить сообщение vk
phone да Контакт vk. Формат vk_0000000000.
text да Текст сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "vk_send_file",
  "phone"   => "vk_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'vk_send_file',
  'phone'  => 'vk_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method vk_send_file Отправить файл vk
phone да Контакт vk. Формат vk_0000000000.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "facebook_send_text",
  "phone"   => "facebook_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method facebook_send_text Отправить сообщение facebook
phone да Контакт facebook. Формат facebook_0000000000.
text да Текст сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "facebook_send_file",
  "phone"   => "facebook_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'facebook_send_file',
  'phone'  => 'facebook_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method facebook_send_file Отправить файл facebook
phone да Контакт facebook. Формат facebook_0000000000.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "yandex_send_text",
  "phone"   => "yandex_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method yandex_send_text Отправить сообщение yandex
phone да Контакт yandex. Формат yandex_0000000000.
text да Текст сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "yandex_send_file",
  "phone"   => "yandex_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'yandex_send_file',
  'phone'  => 'yandex_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method yandex_send_file Отправить файл yandex
phone да Контакт yandex. Формат yandex_0000000000.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "viber_bot_send_text",
  "phone"   => "viber_bot_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method viber_bot_send_text Отправить сообщение viber_bot
phone да Контакт viber_bot. Формат viber_bot_0000000000.
text да Текст сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "viber_bot_send_file",
  "phone"   => "viber_bot_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'viber_bot_send_file',
  'phone'  => 'viber_bot_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method viber_bot_send_file Отправить файл viber_bot
phone да Контакт viber_bot. Формат viber_bot_0000000000.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "sendapi_send_text",
  "phone"   => "sendapi_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method sendapi_send_text Отправить сообщение sendapi
phone да Контакт sendapi. Формат sendapi_0000000000.
text да Текст сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "sendapi_send_file",
  "phone"   => "sendapi_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'sendapi_send_file',
  'phone'  => 'sendapi_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method sendapi_send_file Отправить файл sendapi
phone да Контакт sendapi. Формат sendapi_0000000000.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Отправлять сообщение можно в интервале 24 часа после последнего входящего сообщения от контакта.

Узнать, прошло ли 24 часа и есть ли еще возможность отправить сообщение Вы можете воспользовавшись методом whatsapp_phone_get в параметре inbox_time (время отображается в секундах).


Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_biz_send_text",
  "phone"   => "whatsapp_biz_0000000000",
  "text"    => "Сообщение",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_biz_send_text Отправить сообщение WhatsApp Business
phone да Контакт WhatsApp Business. Формат whatsapp_biz_0000000000.
Собеседник WhatsApp Business, скрывший номер, приходит не с номером, а с BSUID (идентификатор пользователя WhatsApp): контакт вида whatsapp_biz_US.13491208655302741918. На такой контакт отправляют так же, как на номер.
text да Текст сообщения
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

1. Отправка файла ссылкой. Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_biz_send_file",
  "phone"   => "whatsapp_biz_0000000000",
  "file_url"=> "https://api.sendapi.net/img/kp6.png",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      

2. Отправка файлом. Пример на PHP (с включенным модулем curl):


$file_path = 'абсолютный путь /12019526947.jpg';

if (function_exists('curl_file_create')) { // php 5.5+
  $cFile = curl_file_create($file_path);
} else {
  $cFile = '@' . realpath($file_path);
}
$data['json_data'] = json_encode([
  'method' => 'whatsapp_biz_send_file',
  'phone'  => 'whatsapp_biz_0000000000',
  'api_id' => '<app id>'
]);
$data['file'] = $cFile;

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_biz_send_file Отправить файл WhatsApp Business
phone да Контакт WhatsApp Business. Формат whatsapp_biz_0000000000.
Собеседник WhatsApp Business, скрывший номер, приходит не с номером, а с BSUID (идентификатор пользователя WhatsApp): контакт вида whatsapp_biz_US.13491208655302741918. На такой контакт отправляют так же, как на номер.
file_url да Ссылка на файл, обязательна если не прикреплен файл к запросу
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1"
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_biz_template_list",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_biz_template_list Получить шаблоны WhatsApp Business
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "result_data":[
    {"sp_numb":0000,"phone_number":00000000000,"template_name":"template_1","template_message":"Сообщение","params_count":0}
  ]
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}
$data['json_data'] = json_encode([
  "method"  =>  "whatsapp_biz_template_send",
  "phone"   => "whatsapp_biz_0000000000",
  "template_name" => "template_1",
  "template_params" => ["текст"],
  "api_id" => "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method whatsapp_biz_template_send Отправить шаблон WhatsApp Business
phone да Контакт WhatsApp Business. Формат whatsapp_biz_0000000000.
Собеседник WhatsApp Business, скрывший номер, приходит не с номером, а с BSUID (идентификатор пользователя WhatsApp): контакт вида whatsapp_biz_US.13491208655302741918. На такой контакт отправляют так же, как на номер.
template_name да Название шаблона
template_params да Дополнительные данные шаблона
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "message_id":"1",
  "user_balance": 0
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Возвращает список всех активных каналов (номеров) аккаунта с безопасными данными по всем доступным транспортам.

Пример запроса через HTTP:

https://api.sendapi.net?json_data={"method":"channels_list","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "channels_list",
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method channels_list Получить список каналов
api_id да Ваш API ключ
Поля в result_data:
Поле Тип Описание
sp_numb int ID канала (используется в параметре sp_numb при отправке)
phone_number string Номер телефона / идентификатор канала
transport string Тип транспорта: whatsapp, telegram, instagram, vk, facebook, viber_bot, other
active_status string Статус канала (on — активен)
priority int|null Приоритет канала (меньше = выше приоритет)
Ответ при успешном запросе:
{
  "result": 0,
  "result_data": [
    {
      "sp_numb": 123,
      "transport": "whatsapp",
      "active_status": "on",
      "priority": 1
    },
    {
      "sp_numb": 456,
      "phone_number": "79007654321",
      "transport": "telegram",
      "active_status": "on",
      "priority": 2
    }
  ]
}
Ответ при не успешном запросе (Подробнее):
{
  "result": 1,
  "result_description": "Параметр method не передан."
}
Примеры кода:
$data['json_data'] = json_encode([
  "method"  =>  "user_balance",
  "api_id" => "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
                                
const data = {
  json_data: JSON.stringify({
    method: "user_balance",
    api_id: "<app id>"
  })
};

fetch("https://api.sendapi.net", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: new URLSearchParams(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error("Error:", error));
                                
import requests
import json

data = {
    'json_data': json.dumps({
        'method': 'user_balance',
        'api_id': '<app id>'
    })
}

response = requests.post('https://api.sendapi.net', data=data)
result = response.json()
print(result)
                                
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method user_balance Баланс пользователя
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0,
  "user_balance": 0
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

Данный метод так же подходит для разблокировки API, если была блокировка по причине длительных некорректных ответов на запросы по URL Web-хука. Необходимо в запросе указывать статус 'active'.

Пример на отправку сообщения через HTTP:

https://api.sendapi.net?json_data={"method":"webhook_status_update","status":"off","api_id":"<app id>"}

Пример на PHP (с включенным модулем curl):

$data['json_data'] = json_encode([
  "method"  =>  "webhook_status_update",
  "status"   =>  "off", // доступные статусы: 'active', 'off'
  "api_id"  =>  "<app id>"
]);

$ch = curl_init("https://api.sendapi.net");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$body = curl_exec($ch);
curl_close($ch);
      
Адрес:
https://api.sendapi.net
Метод:
GET, POST
Параметры для json_data:
Параметр Обязательный Описание
method webhook_status_update Обновить статус вебхука
status да Доступные статусы: active, timeout, off.
api_id да Ваш API ключ
Ответ при успешном запросе:
{
  "result":0
}
Ответ при не успешном запросе (Подробнее):
{
  "result":1,
  "result_description":"Параметр method не передан."
}

При возникновении ошибок API возвращает JSON ответ с полем result не равным 0 и описанием ошибки в поле result_description.

Пример ответа с ошибкой:
{
  "result": 1,
  "result_description": "Параметр method не передан."
}
Общие принципы обработки ошибок:
  • Всегда проверяйте поле result в ответе
  • При result != 0 обрабатывайте ошибку согласно описанию в result_description
  • Реализуйте повторные попытки для временных ошибок (коды 42, 6, 72)
  • Проверяйте корректность передаваемых параметров перед отправкой запроса

Варианты ответа:

Ответ Описание
0 Успешный результат
1 Ошибка
11 Не корректный параметр method.
2 Параметр phone не передан.
21 Не корректный параметр phone.
22 Подписчик не найден.
23 Подписчик отписан или не обработан.
24 Не удалось обновить данные подписчика.
3 Параметр text не передан.
31 Не корректный параметр text.
32 Превышена длина сообщения. Максимальная длина 2000 символов. Отправляйте большие сообщения через POST.
4 Параметр api_id не передан.
41 Не корректный параметр api_id.
42 Системная ошибка. Обратитесь в службу поддержки.
5 Параметр message_id не передан.
51 Не корректный параметр message_id.
52 Не удалось получить массив сообщений.
6 Не удалось создать задание на отправку сообщения.
61 Данные не найдены.
62 Необходимо приобрести или оплатить тариф.
71 Отправители не найдены.
72 Отправители переполнены.

Webhook

Настроить ссылку для Webhook можно на странице Настройки API

Все события отправляются методом POST с заголовком Content-Type: application/json на указанный вами URL. Если в настройках задан токен авторизации, он передаётся в HTTP-заголовке Authorization. Тип события определяется полем callback_status. Поля transport, phone_id, user_id, add_date, reverse_date присутствуют во всех событиях.

Действия по которым срабатывает Webhook:

Новое входящее сообщение POST <Your webhook url>
Content-Type: application/json
Параметр Значение/Тип Описание
callback_status new_inbox_message Тип действия. Новое входящее сообщение
phone string Номер телефона
transport string Канал связи whatsapp
phone_number string Номер шлюза, подключенного к системе
phone_id int ID шлюза подключенного к системе
message_id int ID сообщения
message_data Array Массив данных сообщения (последнее сообщение). Поля элемента:
ПолеТипОписание
message_idintID сообщения
message_routestringНаправление: inbox / outbox
message_typestringТип сообщения (message-chat, image, file и т.п.)
message_textstringТекст сообщения
message_quotedstring|nullЦитируемое сообщение (если есть)
phonestringНомер телефона контакта
Собеседник WhatsApp Business, скрывший номер, приходит не с номером, а с BSUID (идентификатор пользователя WhatsApp): контакт вида whatsapp_biz_US.13491208655302741918. На такой контакт отправляют так же, как на номер.
sp_numbintID шлюза-отправителя
file_urlstring|nullСсылка на вложение (если есть)
transportstringКанал связи
add_dateISODateДата сообщения
referral object|null Переход с рекламы: клиент написал, нажав на объявление Click-to-WhatsApp (Instagram, Facebook). null — сообщение не из рекламы и все исходящие. Объект есть только у сообщения клиента, с которого он начал переписку (текст, фото, голосовое); у картинки объявления, которую система добавляет отдельным сообщением на номерах приложения WhatsApp, его нет — один клик соответствует одному сообщению с referral. Имена полей — как у объекта referral в WhatsApp Cloud API Meta. Любое поле может быть null: WhatsApp заполняет их не всегда. На номерах WhatsApp Business API (WABA) объект тот же, данные передаёт Meta: source_app всегда null, ctwa_clid — null у рекламы в статусах WhatsApp.
ПолеТипОписание
source_typestring|nullИсточник перехода: ad — объявление
source_idstring|nullID объявления в Meta (строкой: число из 18 цифр)
source_urlstring|nullСсылка на объявление или пост
source_appstring|nullГде показано объявление: instagram, facebook, whatsapp (у WABA — всегда null)
ctwa_clidstring|nullID клика по объявлению (Click-to-WhatsApp click ID)
headlinestring|nullЗаголовок объявления
bodystring|nullТекст объявления
media_typestring|nullМедиа объявления: image или video
thumbnail_urlstring|nullКартинка объявления или превью видео (ссылка на CDN Meta, со временем перестаёт открываться)
"referral": {
  "source_type": "ad",
  "source_id": "120200000000000000",
  "source_url": "https://www.instagram.com/p/EXAMPLE/",
  "source_app": "instagram",
  "ctwa_clid": "ARAkExampleClickId...",
  "headline": "Напишите нам",
  "body": "Текст объявления",
  "media_type": "image",
  "thumbnail_url": "https://scontent.xx.fbcdn.net/..."
}
author object|null Автор сообщения в групповом чате: группы WhatsApp, Telegram, Instagram и MAX, комментарии к постам Instagram. null — не группа, исходящие и сообщение группы без автора. Поле есть только в Webhook: у методов whatsapp_message_list и whatsapp_message_get его нет.
ПолеТипОписание
phonestring|nullАдрес личной переписки с автором: номер участника группы WhatsApp, tg_ID в Telegram, telegram_ID у бота Telegram, instagram_ID в Instagram, max_ID в MAX. null — адрес неизвестен
namestring|nullИмя автора — имя его контакта в кабинете; у бота Telegram — имя из профиля Telegram. null — имени нет
"author": {
  "phone": "77001112233",
  "name": "Ivan Petrov"
}
user_id int ID клиента в системе
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления
Новое исходящее сообщение POST <Your webhook url>
Content-Type: application/json
Параметр Значение/Тип Описание
callback_status new_outbox_message Тип действия. Отправлено новое исходящее сообщение
phone string Номер телефона контакта
transport string Канал связи (whatsapp / telegram / instagram и т.п.)
phone_number string Номер шлюза, подключённого к системе
phone_id int ID шлюза, подключённого к системе
message_id int ID сообщения
message_data Array Массив данных сообщения (структура — как у входящего сообщения)
user_id int ID клиента в системе
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления
Новый подписчик (контакт) POST <Your webhook url>
Content-Type: application/json
Параметр Значение/Тип Описание
callback_status new_subscriber Тип действия. Появился новый контакт/подписчик
phone string Номер телефона контакта
transport string Канал связи
phone_number string Номер шлюза, подключённого к системе
phone_id int ID шлюза, подключённого к системе
user_id int ID клиента в системе
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления
Смена номера шлюза POST <Your webhook url>
Content-Type: application/json
Параметр Значение/Тип Описание
callback_status whatsapp_change_gateway_ph_number Тип действия. У шлюза изменился номер телефона
phone string Номер телефона контакта (если применимо)
transport string Канал связи
phone_number string Новый номер шлюза, подключённого к системе
phone_id int ID шлюза, подключённого к системе
user_id int ID клиента в системе
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления
Взят в работу / Закончен диалог POST <Your webhook url>
Content-Type: application/json
Параметр Значение/Тип Описание
callback_status chat_in_work/chat_out_of_work Тип действия. chat_in_work - взят в работу. chat_out_of_work - диалог закончен
phone string Номер телефона
transport string Канал связи whatsapp
phone_number string Номер шлюза, подключенного к системе
phone_id int ID шлюза подключенного к системе
hook_body_row json {operator_id:1}. ID оператора
user_id int ID клиента в системе
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления
Статусы доставки сообщений для WhatsApp POST <Your webhook url>
Content-Type: application/json
Параметр Значение/Тип Описание
callback_status set_delivery_status Тип действия. Статус доставки отправленного сообщения изменился
delivery_status string

Статус доставки на номера

Значение Описание
4 Сообщение отправлено
5 Сообщение доставлено
13 Сообщение прочитано

Статус доставки в группы

Значение Описание
4 Сообщение отправлено на номера всех участников
5 Сообщение доставлено на номера всех участников
13 Сообщение прочитано всеми участниками группы
phone string Номер телефона
transport string Канал связи WhatsApp
phone_number string Номер шлюза, подключенного к системе
phone_id int ID шлюза подключенного к системе
user_id int ID клиента в системе
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления
Собеседник удалил сообщение POST <Your webhook url>
Content-Type: application/json

Собеседник удалил своё сообщение (или администратор группы удалил чужое). Сообщение в чате остаётся как было, а в ту же переписку добавляется служебное входящее сообщение с цитатой удалённого — его текст всегда на русском, как в примере ниже. Событие new_inbox_message для служебного сообщения не отправляется. Включать событие отдельно не нужно: оно приходит на ссылку вебхука вместе с остальными событиями.

Параметр Значение/Тип Описание
callback_status message_deleted Тип действия. Собеседник удалил сообщение
phone string Номер телефона контакта
transport string Канал связи (whatsapp / telegram / instagram и т.п.)
phone_number string Номер шлюза, подключённого к системе
phone_id int ID шлюза, подключённого к системе
message_id int ID служебного сообщения об удалении
deleted_message_id int ID удалённого сообщения — тот же message_id, что пришёл в событии о нём (например, new_inbox_message)
message_data Array Массив данных служебного сообщения (структура — как у входящего сообщения): message_text — текст уведомления на русском, message_quoted — текст удалённого сообщения (null, если текста не было, например у файла без подписи), phone — номер телефона контакта. Если служебное сообщение не найдено, вместо массива приходит строка JSON с кодом ответа 61.
user_id int ID клиента в системе
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления

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

{
  "phone": "77011234567",
  "phone_number": "77000000000",
  "callback_status": "message_deleted",
  "transport": "whatsapp",
  "phone_id": 427,
  "user_id": 1234,
  "add_date": "2026-10-22T09:15:01.000Z",
  "reverse_date": "2026-10-22T09:15:01.000Z",
  "message_id": 5001,
  "deleted_message_id": 4999,
  "message_data": [
    {
      "message_id": 5001,
      "transport": "whatsapp",
      "message_route": "inbox",
      "message_type": "message-chat",
      "message_text": "Пользователь удалил это сообщение",
      "message_quoted": "Завтра в 10:00 подойдёт?",
      "phone": "77011234567",
      "sp_numb": 427,
      "file_url": null,
      "add_date": "2026-10-22T09:15:00.000Z",
      "referral": null,
      "author": null
    }
  ]
}
События сделок amoCRM (Meta Conversions API) POST <Your webhook url>
Content-Type: application/json
Включается тумблером «Вебхуки о сделках» в разделе Настройки API → AmoCRM. Ссылка вебхука и токен берутся из раздела «Настройка вебхука» (SendAPI). Удобно для отправки событий Lead (создание сделки) и Purchase (успешная сделка) в Meta Conversions API.
Параметр Значение/Тип Описание
callback_status deal_created / deal_status_changed Тип действия. deal_created — сделка создана. deal_status_changed — изменён статус сделки
phone string Телефон контакта сделки (для сопоставления с человеком в Meta CAPI)
transport string sendapi (событие CRM, не привязано к каналу сообщений)
user_id int ID клиента в системе
hook_body_row json Данные сделки:
Поле Тип Описание
crmstringВсегда "amocrm"
eventstringdeal_created / deal_status_changed
deal_idintID сделки в amoCRM
pipeline_idint|nullID воронки
status_idint|nullТекущий статус сделки
old_status_idint|nullПрежний статус (только для deal_status_changed)
pricenumber|nullСумма сделки
is_wonbooltrue, если статус = «успешно реализовано» (142). Признак для Purchase
responsible_user_idint|nullID ответственного менеджера
namestring|nullНазвание сделки
add_date ISODate Дата добавления
reverse_date ISODate Дата добавления
Загрузка...