Документация для разработчиков

RESTful API с авторизацией по токену доступа, JSON в кодировке UTF-8 и в запросах, и в ответах. К каждому эндпоинту ниже приложен пример curl, который можно запустить как есть.


SMS API — отправка сообщений

Запускайте отправку прямо из своих систем. В to передаётся один номер либо несколько через запятую (до 1000 за вызов); после приёма возвращается message_id, по которому можно проверить статус доставки.

Заголовки авторизации
Параметр
Обязательный
Описание
Authorization
Да
Передавайте API-токен по схеме Bearer, например:Authorization: Bearer {api_token}
Accept
Да
Укажите application/json

Отправить сообщение

Отправка текстового SMS на один или несколько номеров. В ответе segments — сколько сообщений занимает эта отправка, cost — её итоговая стоимость.

Эндпоинт

POST https://redsmsbox.com/api/v1/sms/send

Параметр

Параметр
Обязательный
Тип
Описание
to
Да
string
Номер получателя в формате E.164 (с кодом страны); несколько номеров разделяются запятыми
message
Да
string
Текст сообщения. Для Китая формат — 【имя отправителя】текст, а рекламные сообщения должны заканчиваться строкой об отказе от рассылки
channel
Нет
string
Идентификатор маршрута; по умолчанию используется маршрут аккаунта
sender_id
Нет
string
Собственный идентификатор отправителя (Sender ID) для международных сообщений
schedule_at
Нет
string
Время отправки по расписанию (ISO 8601 UTC); без него сообщение уходит немедленно
callback_url
Нет
string
URL вебхука для квитанции по этому сообщению; переопределяет настройку аккаунта

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

curl -X POST https://redsmsbox.com/api/v1/sms/send \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
  "to": "+8613800138000",
  "message": "【RedsmsBox】您的验证码是 123456,5 分钟内有效。"
}'

Ответ

{
  "ok": true,
  "message_id": "msg_3f7a91",
  "status": "queued",
  "to": "+8613800138000",
  "segments": 1,
  "cost": "0.06",
  "currency": "USD"
}
{
    "ok": false,
    "error_code": "invalid_parameter",
    "error": "The body is not valid JSON, or a field failed validation"
}

Ответы с ошибкой всегда приходят в этой оболочке. Поле error всегда на английском и не следует за языком интерфейса — оно предназначено для машин и агрегации логов. Ветвитесь по error_code и никогда не сравнивайте текст error. Полная таблица кодов есть в документации для разработчиков в консоли.

Проверить статус доставки

Запрос текущего статуса одного сообщения и времени квитанции оператора по message_id, полученному при отправке.

Эндпоинт

GET https://redsmsbox.com/api/v1/sms/{message_id}

Параметр

Параметр
Обязательный
Тип
Описание
message_id
Да
string
Идентификатор сообщения, возвращённый эндпоинтом отправки

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

curl -X GET https://redsmsbox.com/api/v1/sms/msg_3f7a91 \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'

Ответ

{
  "ok": true,
  "message_id": "msg_3f7a91",
  "status": "delivered",
  "to": "+8613800138000",
  "segments": 1,
  "cost": "0.06",
  "currency": "USD",
  "submitted_at": "2026-08-16T09:12:31Z",
  "delivered_at": "2026-08-16T09:12:34Z"
}
{
    "ok": false,
    "error_code": "invalid_parameter",
    "error": "The body is not valid JSON, or a field failed validation"
}

Ответы с ошибкой всегда приходят в этой оболочке. Поле error всегда на английском и не следует за языком интерфейса — оно предназначено для машин и агрегации логов. Ветвитесь по error_code и никогда не сравнивайте текст error. Полная таблица кодов есть в документации для разработчиков в консоли.

История отправок

Постраничный вывод истории отправок текущего аккаунта с фильтрами по времени и статусу.

Эндпоинт

GET https://redsmsbox.com/api/v1/sms

Параметр

Параметр
Обязательный
Тип
Описание
status
Нет
string
Фильтр по статусу, например queued / delivered / failed
start
Нет
string
Начало периода (ISO 8601 UTC)
end
Нет
string
Конец периода (ISO 8601 UTC)
page
Нет
number
Номер страницы, по умолчанию 1

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

curl -X GET 'https://redsmsbox.com/api/v1/sms?status=delivered&page=1' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'

Ответ

{
  "ok": true,
  "page": 1,
  "total": 2,
  "items": [
    {
      "message_id": "msg_3f7a91",
      "status": "delivered",
      "to": "+8613800138000",
      "segments": 1,
      "cost": "0.06"
    }
  ]
}
{
    "ok": false,
    "error_code": "invalid_parameter",
    "error": "The body is not valid JSON, or a field failed validation"
}

Ответы с ошибкой всегда приходят в этой оболочке. Поле error всегда на английском и не следует за языком интерфейса — оно предназначено для машин и агрегации логов. Ветвитесь по error_code и никогда не сравнивайте текст error. Полная таблица кодов есть в документации для разработчиков в консоли.

Не нашли нужного? Напишите нам

Опишите свою задачу, и поддержка вернётся с допустимым объёмом, рекомендацией по маршруту и ценой.