Skip to content

Отправить SMS (GET)

Браузерный эндпоинт — отправляет SMS через обычный GET-запрос. Все параметры передаются в строке запроса (query string).

Метод: GET
Эндпоинт: /api/ext/v1/sms/send
Требуемое разрешение: sms:send

Этот эндпоинт удобен когда нужно отправить SMS прямо из браузера, скрипта оболочки или сервиса, который умеет только GET-запросы (например, некоторые системы мониторинга или вебхуки).

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

ПараметрОбязательноОписание
phoneНомер телефона в международном формате (+79001234567)
textТекст SMS. Максимум 170 символов, независимо от алфавита (см. ниже)
device_idUUID устройства. Если не указан — автовыбор
no_storetrue чтобы не сохранять SMS в истории
token❌*API-ключ, если не передаёте заголовок Authorization

*token нужен только если вы не используете заголовок Authorization: Bearer.

Лимит символов в SMS

Максимальная длина сообщения — 170 символов, независимо от алфавита (латиница, кириллица, эмодзи и любые другие Unicode-символы). Длина считается по символам, а не по байтам — кириллический и латинский текст занимают лимит одинаково.

Почему 170, а не 300?

Мы намеренно снизили лимит с 300 до 170 символов, чтобы ваши устройства реже разбивали SMS на несколько частей. При разбиении SMS оператор может сформировать некорректные заголовки, из-за чего часть сообщения может быть заблокирована или не доставлена.

Знак + в номере телефона

Символ + в URL-строке запроса нужно передавать как %2B. HTTP-библиотеки (Python requests, fetch, axios, HTTPClient) делают это автоматически — просто передавайте +79001234567 как обычную строку.

Примеры

curl

bash
curl -G "https://api.gosms.ru/api/ext/v1/sms/send" \
  -H "Authorization: Bearer ВАШ_КЛЮЧ" \
  --data-urlencode "phone=+79001234567" \
  --data-urlencode "text=Тест"

Флаг -G с --data-urlencode автоматически кодирует + и спецсимволы — вам не нужно думать об этом.

С API-ключом в URL (без заголовков)

bash
curl -G "https://api.gosms.ru/api/ext/v1/sms/send" \
  --data-urlencode "token=ВАШ_КЛЮЧ" \
  --data-urlencode "phone=+79001234567" \
  --data-urlencode "text=Тест"

Python

python
import requests

response = requests.get(
    "https://api.gosms.ru/api/ext/v1/sms/send",
    headers={"Authorization": "Bearer ВАШ_КЛЮЧ"},
    params={
        "phone": "+79001234567",   # requests сам закодирует + → %2B
        "text": "Привет из Python!",
    },
)
response.raise_for_status()
print(response.json())

JavaScript (браузер / Node.js)

javascript
const params = new URLSearchParams({
  phone: '+79001234567',   // URLSearchParams кодирует + автоматически
  text: 'Привет из браузера!',
});

const response = await fetch(
  `https://api.gosms.ru/api/ext/v1/sms/send?${params}`,
  { headers: { 'Authorization': 'Bearer ВАШ_КЛЮЧ' } }
);

const sms = await response.json();
console.log('Отправлено:', sms.id);

PHP

php
$response = file_get_contents(
    'https://api.gosms.ru/api/ext/v1/sms/send?' . http_build_query([
        'phone' => '+79001234567',   // http_build_query кодирует + автоматически
        'text'  => 'Привет из PHP!',
    ]),
    false,
    stream_context_create([
        'http' => [
            'header' => 'Authorization: Bearer ВАШ_КЛЮЧ',
        ],
    ])
);
print_r(json_decode($response, true));

Пример для системы мониторинга (URL с токеном)

Если система мониторинга умеет только GET и не позволяет задать заголовки — передайте API-ключ через token. Убедитесь, что ваша система URL-кодирует параметры, иначе + в номере телефона нужно заменить на %2B вручную:

https://api.gosms.ru/api/ext/v1/sms/send?token=ВАШ_КЛЮЧ&phone=%2B79001234567&text=ALERT

Ответ — 201 Created

Ответ идентичен POST /api/ext/v1/sms:

json
{
  "id": "550e8400-e29b-41d4-a716-446655440001",
  "device_id": "550e8400-e29b-41d4-a716-446655440000",
  "phone": "+79001234567",
  "message": "Тест",
  "status": "pending",
  "sent_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Когда использовать GET вместо POST

СитуацияРекомендация
Серверная интеграция, есть возможность задать заголовкиИспользуйте POST
Браузерный скрипт без CORS-проблемМожно GET
Система мониторинга, умеет только URLGET с ?token=
Webhook-сервис без поддержки заголовковGET с ?token=
Простой тест из адресной строки браузераGET

GoSMS — управление Android-устройствами для автоматизации отправки SMS