SMSC.ru HTTP API: Отправить SMS и узнать стоимость

Сценарий из mcp-everything. Актуально на 2026-10-24.

Коды подтверждения, уведомления о заказах и рассылки через 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

Базовые 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 да Текст сообщения

Нюансы

Другие сценарии


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