# SMS.RU API: Узнать, доставлено ли сообщение

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

Проверить, дошло ли SMS, — опросом или вебхуком.

1. Разово: GET /sms/status с sms_id (до 100 через запятую). В ответе для каждого — status_code, status_text и cost. 103 — доставлено, 104 — не доставлено, истекло время жизни.
2. Постоянно: зарегистрируй обработчик статусов — GET /callback/add с url твоего скрипта (URL-кодированным). Так документация рекомендует вместо опроса.
3. SMS.RU будет присылать POST-запросы со статусами всех отправленных сообщений. Обработчик должен ответить строкой 100, иначе запрос будет повторяться.
4. Если ответ 901 — неверный URL обработчика.

```bash
# Статус двух сообщений
curl -G https://sms.ru/sms/status \
  -d api_id=<api_id> \
  -d sms_id=000000-10000000,000000-10000001 \
  -d json=1

# Обработчик статусов
curl -G https://sms.ru/callback/add \
  -d api_id=<api_id> \
  --data-urlencode 'url=https://example.ru/smsru/callback' \
  -d json=1
```

## Базовые URL

- Боевой: `https://sms.ru`

## Авторизация

Тип: API-ключ

Рекомендуемый способ — параметр `api_id` (выдаётся на главной странице личного кабинета). Альтернатива — `login` (номер телефона) и `password`; в этом случае обязательно HTTPS.

## Методы сценария

### GET /sms/status — Статус сообщений

В JSON-ответе для каждого `sms_id`: `status`, `status_code`, `cost`, `status_text`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `api_id` | query | string | да | Ключ API |
| `sms_id` | query | string | да | ID сообщений через запятую, до 100 |
| `json` | query | integer | нет | 1 — ответ в JSON |

### GET /callback/add — Добавление обработчика вебхуков

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

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `api_id` | query | string | да | Ключ API |
| `url` | query | string | да | Адрес обработчика (URL-кодированный при GET) |
| `json` | query | integer | нет | 1 — ответ в JSON |

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

```
https://sms.ru/callback/add?api_id=[зарегистрируйтесь, чтобы получить api_id]&url=https%3A%2F%2Fyoursite.ru%2Fcallback.php&json=1
```

## Нюансы

- Без `json=1` ответ — текстовые строки (код запроса, затем данные построчно).
- Вместо опроса `sms/status` и `callcheck/status` документация рекомендует вебхуки.
- Есть также `callback/del`, `callback/get`, `stoplist/del`, `stoplist/get`, `auth/check`, отправка через email/SMTP; PHP-библиотека — `https://sms.ru/php`.

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

- [Отправить SMS с кодом или уведомлением](https://mcp-everything.ru/integrations/sms-ru/scenarios/otpravit-sms-s-kodom-ili-uvedomleniem.md)
- [Подтвердить номер телефона звонком](https://mcp-everything.ru/integrations/sms-ru/scenarios/podtverdit-nomer-telefona-zvonkom.md)
- [Следить за балансом и лимитами](https://mcp-everything.ru/integrations/sms-ru/scenarios/sledit-za-balansom-i-limitami.md)

---

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