Проверить статус отправленных сообщений

Последнее изменение: 21.04.2026

Мы настоятельно рекомендуем использовать бесплатную опцию webhook для более быстрого и удобного получения статусов сообщений. Она позволяет вам не запрашивать многократно статус сообщений - они будут автоматически отправляться на ваш сервер в реальном времени.

Если у вас есть необходимость вручную проверить статус отправленных вами сообщений, то вы можете отправить следующие запросы на наш сервер.

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

https://sms.ru/sms/status?api_id=[зарегистрируйтесь, чтобы получить api_id]&sms_id=000000-000001,000000-000002,000000-000003&json=1

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

При включенном параметре json=1:

{
    "status": "OK", // Запрос выполнен успешно (нет ошибок в авторизации, проблем с отправителем, итд...)
    "status_code": 100, // Успешный код выполнения
    "sms": {
        "000000-000001": {
            "status": "OK", // Статус получен успешно.
            "status_code": 103, // Код статуса
            "cost": 0.50, // Стоимость
            "status_text": "Сообщение доставлено" // Текст статуса
        },
        "000000-000002": {
            "status": "OK", // Статус получен успешно.
            "status_code": 104, // Код статуса
            "cost": 0.50, // Стоимость
            "status_text": "Не может быть доставлено: время жизни истекло" // Текст статуса
        },
        "000000-000003": {
            "status": "ERROR", // Возможные варианты: OK или ERROR.
            "status_code": -1, // Код ошибки
            "status_text": "Сообщение не найдено" // Текст ошибки
        }
    } ,
    "balance": 4122.56 // Ваш баланс после отправки
}

Без json:

100 // запрос выполнен успешно
103 // статус первого сообщения
104 // статус второго сообщения
-1 // статус третьего сообщения

Параметры

Параметр Обязательный Описание
sms_id да Идентификатор сообщения, полученный при использовании метода sms/send. Можно указать несколько идентификаторов через запятую (до 100 штук за раз).
json=1 рекомендуется Данный параметр вызывает ответ сервера в формате JSON, в котором предоставлено больше данных об отправленных сообщениях

Авторизация осуществляется при помощи:

Параметр Обязательный Описание
api_id да Авторизацию по вашему уникальному ключу (api_id). Этот способ авторизации - самый удобный и приведен в примере выше. Ваш api_id вы можете найти на главной странице личного кабинета: [зарегистрируйтесь, чтобы получить api_id]

Пример на PHP (со включенным модулем curl)

Мы настоятельно рекомендуем использовать нашу библиотеку под PHP. Данный код указан только в качестве простого примера.

$ch = curl_init("https://sms.ru/sms/status");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
    "api_id" => "[зарегистрируйтесь, чтобы получить api_id]",
    "sms_id" => "000000-000001,000000-000002,000000-000003", // До 100 штук за раз
    "json" => 1 // Для получения более развернутого ответа от сервера
));
$body = curl_exec($ch);
curl_close($ch);

$json = json_decode($body);
if ($json) { // Получен ответ от сервера
    print_r($json); // Для дебага
    if ($json->status == "OK") { // Запрос выполнился
        foreach ($json->sms as $sms_id => $data) { // Перебираем массив сообщений
            if ($data->status == "OK") { // Статус сообщения получен
                echo "ID сообщения: $sms_id ";
                echo "Код статуса сообщения: $data->status_code ";
                echo "Текст статуса сообщения: $data->status_text ";
                echo "Стоимость сообщения: $data->cost ";
                echo "";
            } else { // Ошибка в получении статуса
                echo "ID сообщения: $sms_id ";
                echo "Код ошибки: $data->status_code ";
                echo "Текст ошибки: $data->status_text ";
                echo "";
            }
        }
    } else { // Запрос не выполнился (возможно ошибка авторизации, параметрах, итд...)
        // Код ошибки: $json->status_code
        // Текст ошибки: $json->status_text
    }
} else { // Запрос не выполнился Не удалось установить связь с сервером

}

Пример на PHP без curl

Мы настоятельно рекомендуем использовать нашу библиотеку под PHP. Данный код указан только в качестве простого примера.

$body = file_get_contents("https://sms.ru/sms/status?api_id=[зарегистрируйтесь, чтобы получить api_id]&sms_id=000000-000001,000000-000002,000000-000003&json=1");

$json = json_decode($body);
print_r($json); // Для дебага
// Для разбора $json можно использовать кусок кода из предыдущего примера.

Пример на Perl

#!/usr/bin/perl
use LWP::Simple;
use HTTP::Request::Common qw(POST);

$ua = LWP::UserAgent->new;
my $req = POST 'https://sms.ru/sms/status',
[
api_id => '[зарегистрируйтесь, чтобы получить api_id]',
sms_id => '000000-000001,000000-000002,000000-000003',
];
print $ua->request($req)->as_string;

Пример на curl

Если вы используете curl под Windows. То знак \ перед знаками ? и & необходимо убрать.

curl https://sms.ru/sms/send\?api_id=[зарегистрируйтесь, чтобы получить api_id]\&sms_id=000000-000001,000000-000002,000000-000003