SMSC.ru HTTP API API

Отрасль: Связь и уведомления. Актуально на 2026-10-24.

HTTP/HTTPS API сервиса рассылок SMSC.ru. Через один скрипт отправки уходят SMS, MMS, бинарные и flash-сообщения, HLR- и ping-запросы, email, голосовые сообщения, Viber, Telegram и WhatsApp. Также есть проверка статуса, баланса и стоимости, шаблоны, рассылки (jobs) и подтверждение Mobile ID. Формат ответа задаётся параметром fmt (строка, числа, XML или JSON).

Сценарии

Отправить SMS и узнать стоимость

Коды подтверждения, уведомления о заказах и рассылки через SMSC.ru.

  1. Возьми логин и пароль для API (страница паролей в кабинете) или apikey. Если в кабинете задан список разрешённых IP, запросы с других адресов вернут ошибку 2.
  2. Чтобы узнать цену без отправки, сделай тот же запрос с cost = 1: GET /sys/send.php с phones и mes. Для отправки с возвратом стоимости и баланса — cost = 3.
  3. Отправь: GET /sys/send.php (или POST) с login, psw, phones (через запятую, в международном формате), mes, sender (зарегистрированное имя), charset = utf-8 и fmt = 3 — ответ в JSON. Без charset текст считается в windows-1251.
  4. В ответе id и cnt (число SMS). Сохрани id: по нему проверяется статус. Ошибка приходит как {"error": ..., "error_code": N}: 3 — нет денег, 6 — сообщение запрещено, 7 — неверный номер.
  5. Если удобнее JSON в теле запроса, те же параметры принимает POST /rest/send/.
curl -G https://smsc.ru/sys/send.php \
  -d login=<логин> -d psw=<пароль> \
  -d phones=79991234567 \
  --data-urlencode 'mes=Код подтверждения: 4821' \
  -d sender=<имя отправителя> -d charset=utf-8 -d fmt=3 -d cost=3

Проверить статус доставки

Узнать, доставлено ли сообщение, — для повторной отправки или отчёта.

  1. Запроси статус: GET /sys/status.php с phone и id отправленного сообщения (несколько — через запятую в одинаковом порядке) и fmt = 3.
  2. С all = 1 вернётся полная информация, с all = 2 — ещё страна, оператор и регион.
  3. Статус доступен в течение суток после отправки, потом сообщения уходят в архив.
  4. Не опрашивай чаще лимита: не больше 5 одинаковых запросов по одному сообщению в минуту.
curl -G https://smsc.ru/sys/status.php \
  -d login=<логин> -d psw=<пароль> \
  -d phone=79991234567 -d id=<id сообщения> -d fmt=3 -d all=1

Следить за балансом

Не остаться без денег посреди рассылки.

  1. Запроси баланс: GET /sys/balance.php с fmt = 3. С cur = 1 вернётся валюта счёта и кредит, если он есть.
  2. Перед большой рассылкой посчитай её стоимость тем же запросом на отправку с cost = 1 и сравни с балансом.
  3. Баланс можно запрашивать не чаще 10 раз в минуту — проверяй его по расписанию, а не перед каждым сообщением.
curl -G https://smsc.ru/sys/balance.php -d login=<логин> -d psw=<пароль> -d fmt=3

Подтвердить номер через Mobile ID

Подтверждение номера телефона кодом от сервиса Mobile ID.

  1. Отправь запрос подтверждения: GET /sys/send.php с phones = номер пользователя и mes = auth.
  2. Пользователь получит код. Попроси его ввести код на сайте.
  3. Проверь код: GET /sys/mob_id.php с phone и code. Если код верный, номер подтверждён.
curl -G https://smsc.ru/sys/send.php -d login=<логин> -d psw=<пароль> -d phones=79991234567 -d mes=__auth__ -d fmt=3
curl -G https://smsc.ru/sys/mob_id.php -d login=<логин> -d psw=<пароль> -d phone=79991234567 -d code=<код>

Базовые URL

Авторизация

Тип: API-ключ

Параметры login и psw (пароль создаётся или меняется на странице паролей в кабинете) либо apikey вместо пары логин/пароль. Если в кабинете задан список разрешённых IP, запросы с других адресов отклоняются с ошибкой 2.

Методы

GET /sys/send.php — Отправка сообщений

Можно и POST. Обязательны login, psw и phones + mes (или list).

Расчёт стоимости без отправки — тот же запрос с cost=1.

Ответ при fmt=3: cost=0 — id, cnt; cost=1 — cost, cnt; cost=2 — id, cnt, cost; cost=3 — плюс balance.

Параметр Где Тип Обяз. Описание
login query string да Логин (или apikey)
psw query string да Пароль
phones query string да Номера в международном формате через запятую или точку с запятой; также коды групп G<номер>, email, ник Telegram
mes query string да Текст, до 1000 символов
id query string нет ID сообщения клиента: число 1–2147483647 или строка до 40 символов
sender query string нет Зарегистрированное имя отправителя, до 11 символов или 15 цифр
fmt query integer нет Формат ответа: 0 строка, 1 числа, 2 XML, 3 JSON
cost query integer нет 0 отправить, 1 только стоимость, 2 отправить и вернуть стоимость, 3 + баланс
charset query string нет utf-8 или koi8-r (по умолчанию windows-1251)
translit query integer нет 0 нет, 1 translit, 2 mpaHc/Ium
tinyurl query integer нет 1 — сокращать ссылки
time query string нет Время отправки: DDMMYYhhmm, DD.MM.YY hh:mm, h1-h2, 0ts, +m
tz query string нет Часовой пояс относительно Москвы
period query number нет Растянуть рассылку на 0.1–720 часов (с freq)
freq query integer нет Интервал между частями рассылки, 1–1440 минут
valid query string нет Срок жизни: 1–24 часа или чч:мм
maxsms query integer нет Максимум частей в сообщении
list query string нет Пакет номер:сообщение, по одному в строке (%0A)
flash query integer нет 1 — Flash SMS
hlr query integer нет 1 — HLR-запрос без отправки SMS
ping query integer нет 1 — ping-SMS (невидимое)
call query integer нет 1 — голосовое сообщение
voice query string нет Голос: m, m2, m3, m4, w, w2, w3, w4
mail query integer нет 1 — email (нужны subj и sender)
subj query string нет Тема MMS или email
viber query integer нет 1 — Viber
tg query integer нет 1 — код подтверждения в Telegram (4–8 цифр в mes)
bot query string нет Бот: Telegram @botname_bot, WhatsApp wa:номер
fileurl query string нет URL прикрепляемого файла
err query integer нет 1 — вернуть номера с ошибками
op query integer нет 1 — вернуть по номерам mccmnc, стоимость, статус, ошибку
userip query string нет IP пользователя для лимита сообщений на IP

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

https://smsc.ru/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello!

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

https://smsc.ru/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&cost=1

POST /rest/send/ — Отправка с параметрами в JSON

Те же параметры, что у send.php, передаются JSON-объектом в теле запроса.

Параметр Где Тип Обяз. Описание
login body string да Логин (или apikey)
psw body string да Пароль
phones body string да Номера получателей
mes body string да Текст сообщения

GET /sys/status.php — Статус сообщения

Можно и POST. Статус запрашивается в течение суток после отправки, затем сообщения уходят в архив.

Параметр Где Тип Обяз. Описание
login query string да Логин (или apikey)
psw query string да Пароль
phone query string да Номер или номера через запятую (в порядке id)
id query string да ID сообщения или список через запятую
fmt query integer нет 0 строка, 1 статус и время через запятую, 2 XML, 3 JSON
all query integer нет 1 — полная информация, 2 — плюс страна, оператор, регион
bot query integer нет 1 — статус сообщения в Telegram-бот
del query integer нет 1 — удалить отправленное сообщение
charset query string нет utf-8 или koi8-r

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

https://smsc.ru/sys/status.php?login=<login>&psw=<password>&phone=<phone>&id=<sms_id>

GET /sys/balance.php — Баланс

Ответ при fmt=3: balance; при cur=1 и ненулевом кредите — credit, currency.

Параметр Где Тип Обяз. Описание
login query string да Логин (или apikey)
psw query string да Пароль
cur query integer нет Вернуть валюту счёта
fmt query integer нет 0/1 строка, 2 XML, 3 JSON

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

https://smsc.ru/sys/balance.php?login=<login>&psw=<password>

GET /sys/mob_id.php — Подтверждение кода Mobile ID

Запрос Mobile ID отправляется через send.php с mes=__auth__; код подтверждается этим скриптом.

Параметр Где Тип Обяз. Описание
login query string да Логин
psw query string да Пароль
phone query string да Номер
code query string да Код

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

https://smsc.ru/sys/mob_id.php?login=<login>&psw=<password>&phone=<phone>&code=<code>

Нюансы

Ошибки

Код Описание
1 Ошибка в параметрах
2 Неверный логин или пароль, либо IP не в списке разрешённых
3 Недостаточно средств
4 IP временно заблокирован из-за частых ошибок
5 Неверный формат даты
6 Сообщение запрещено (по тексту или имени отправителя)
7 Неверный формат номера
8 Сообщение не может быть доставлено на номер
9 Дубль запроса или 15 и более одновременных запросов

Ограничения

Источники


Если этого недостаточно — официальная документация: https://smsc.ru/api/http/ JSON: https://mcp-everything.ru/api/integrations/smsc. MCP: https://mcp-everything.ru/mcp