Отрасль: Связь и уведомления. Актуально на 2026-10-24.
HTTP/HTTPS API сервиса рассылок SMSC.ru. Через один скрипт отправки уходят SMS, MMS, бинарные и flash-сообщения, HLR- и ping-запросы, email, голосовые сообщения, Viber, Telegram и WhatsApp. Также есть проверка статуса, баланса и стоимости, шаблоны, рассылки (jobs) и подтверждение Mobile ID. Формат ответа задаётся параметром fmt (строка, числа, XML или JSON).
Коды подтверждения, уведомления о заказах и рассылки через SMSC.ru.
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
Узнать, доставлено ли сообщение, — для повторной отправки или отчёта.
curl -G https://smsc.ru/sys/status.php \
-d login=<логин> -d psw=<пароль> \
-d phone=79991234567 -d id=<id сообщения> -d fmt=3 -d all=1
Не остаться без денег посреди рассылки.
curl -G https://smsc.ru/sys/balance.php -d login=<логин> -d psw=<пароль> -d fmt=3
Подтверждение номера телефона кодом от сервиса Mobile ID.
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=<код>
https://smsc.ruhttps://www2.smsc.ruТип: API-ключ
Параметры login и psw (пароль создаётся или меняется на странице паролей в кабинете) либо apikey вместо пары логин/пароль. Если в кабинете задан список разрешённых IP, запросы с других адресов отклоняются с ошибкой 2.
Можно и 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
Те же параметры, что у send.php, передаются JSON-объектом в теле запроса.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
login |
body | string | да | Логин (или apikey) |
psw |
body | string | да | Пароль |
phones |
body | string | да | Номера получателей |
mes |
body | string | да | Текст сообщения |
Можно и 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>
Ответ при 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>
Запрос 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>
fmt=0 — ERROR = N (описание), при fmt=1 — 0,-N, при fmt=3 — {"error": "...", "error_code": N}; для ошибок 3, 6, 7, 8 дополнительно возвращается id.__PING__, __CALL__, __HLR__, __auth__./sys/templates.php (шаблоны), /sys/op_templates.php (шаблоны операторов), /sys/jobs.php (рассылки), /sys/ping.php (уведомления).| Код | Описание |
|---|---|
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