# SMS.RU API: Подтвердить номер телефона звонком

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

Бесплатная для пользователя альтернатива SMS-коду: он звонит на выданный номер, звонок сбрасывается, номер подтверждён.

1. Запусти проверку: GET /callcheck/add с phone — номером пользователя — и ip пользователя. В ответе check_id и call_phone_pretty — номер, на который нужно позвонить.
2. Покажи пользователю номер и попроси позвонить в течение 5 минут. Звонок бесплатный, система сама его сбросит.
3. Проверяй результат: GET /callcheck/status с check_id раз в несколько секунд или получай статус вебхуком. check_status = 401 — номер подтверждён, 400 — ещё нет.
4. Ошибка 402 значит, что время проверки истекло или check_id неверный — запусти проверку заново.

```bash
curl -G https://sms.ru/callcheck/add -d api_id=<api_id> -d phone=79991234567 -d ip=203.0.113.7 -d json=1
# в ответе: check_id и call_phone_pretty — номер, на который пользователь должен позвонить

curl -G https://sms.ru/callcheck/status -d api_id=<api_id> -d check_id=<check_id> -d json=1
# → check_status: 401 — номер подтверждён
```

## Базовые URL

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

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

Тип: API-ключ

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

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

### GET /callcheck/add — Авторизация по звонку: запуск

Пользователь должен позвонить на выданный номер в течение 5 минут; звонок бесплатный, система его сбрасывает. В JSON-ответе: `check_id`, `call_phone`, `call_phone_pretty`, `call_phone_html`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `api_id` | query | string | да | Ключ API |
| `phone` | query | string | да | Номер пользователя, с которого ожидается звонок |
| `ip` | query | string | нет | IP пользователя (из-за границы выдаётся обычный номер вместо 8-800) |
| `json` | query | integer | нет | 1 — ответ в JSON |

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

```
https://sms.ru/callcheck/add?api_id=[зарегистрируйтесь, чтобы получить api_id]&phone=79255070602&json=1
```

### GET /callcheck/status — Авторизация по звонку: статус

В JSON-ответе: `check_status` (`400` — не подтверждён, `401` — подтверждён), `check_status_text`.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `api_id` | query | string | да | Ключ API |
| `check_id` | query | string | да | ID из callcheck/add |
| `json` | query | integer | нет | 1 — ответ в JSON |

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

```
https://sms.ru/callcheck/status?api_id=[зарегистрируйтесь, чтобы получить api_id]&check_id=[идентификатор авторизации]&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/uznat-dostavleno-li-soobschenie.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
