Skip to content

Список устройств

Возвращает все Android-устройства, подключённые к вашему аккаунту GoSMS.

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

Ответ — 200 OK

json
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "android",
    "name": "Samsung Galaxy A54",
    "name_custom": "Офисный телефон",
    "identifier": "abc123def456",
    "is_online": true,
    "is_charging": false,
    "battery_level": 72,
    "can_send_sms": true,
    "selected_sim": -1,
    "notify_low_battery": true,
    "forward_incoming_sms": false,
    "sim_cards": [
      { "index": 0, "name_operator": "МТС" },
      { "index": 1, "name_operator": "Билайн" }
    ],
    "created_at": "2024-01-10T08:00:00Z",
    "updated_at": "2024-01-15T10:30:00Z"
  }
]

Поля устройства

ПолеТипОписание
idstring (UUID)Уникальный ID устройства
typestringТип устройства (всегда "android")
namestringСистемное название (задаётся приложением при первом подключении)
name_customstringВаше название устройства (задаётся в панели). Пустая строка если не задано
identifierstringАппаратный идентификатор устройства
is_onlinebooleanУстройство сейчас онлайн
is_chargingbooleanУстройство заряжается
battery_levelintegerУровень заряда батареи (0–100)
can_send_smsbooleanРазрешена ли отправка SMS
selected_simintegerАктивная SIM-карта (см. ниже)
notify_low_batterybooleanУведомлять о низком заряде
forward_incoming_smsbooleanПередавать входящие SMS в панель
sim_cardsarrayСписок SIM-карт в устройстве
created_atstringДата первого подключения
updated_atstringДата последнего обновления

Значения selected_sim

ЗначениеОписание
-2Системная SIM по умолчанию (настройка Android)
-1Случайная из доступных SIM-карт
0Первый слот SIM
1Второй слот SIM
2Третий слот SIM

Примеры

curl

bash
curl "https://api.gosms.ru/api/ext/v1/devices" \
  -H "Authorization: Bearer ВАШ_КЛЮЧ"

Python

python
import requests

response = requests.get(
    "https://api.gosms.ru/api/ext/v1/devices",
    headers={"Authorization": "Bearer ВАШ_КЛЮЧ"},
)
response.raise_for_status()
devices = response.json()

print(f"Всего устройств: {len(devices)}")
for device in devices:
    name = device["name_custom"] or device["name"]
    status = "🟢 онлайн" if device["is_online"] else "🔴 офлайн"
    battery = device["battery_level"]
    print(f"  {name}{status}, батарея: {battery}%")

JavaScript

javascript
const response = await fetch('https://api.gosms.ru/api/ext/v1/devices', {
  headers: { 'Authorization': 'Bearer ВАШ_КЛЮЧ' }
});
const devices = await response.json();

// Фильтруем только онлайн-устройства с разрешённой отправкой SMS
const readyDevices = devices.filter(d => d.is_online && d.can_send_sms);
console.log(`Готово к отправке: ${readyDevices.length} из ${devices.length}`);

Выбор устройства для отправки

python
def get_best_device(devices: list) -> str | None:
    """Возвращает ID лучшего устройства для отправки SMS."""
    candidates = [
        d for d in devices
        if d["is_online"] and d["can_send_sms"]
    ]
    if not candidates:
        return None

    # Выбираем с наибольшим зарядом
    best = max(candidates, key=lambda d: d["battery_level"])
    return best["id"]

devices = requests.get(
    "https://api.gosms.ru/api/ext/v1/devices",
    headers={"Authorization": "Bearer ВАШ_КЛЮЧ"}
).json()

device_id = get_best_device(devices)
if device_id:
    print(f"Будем использовать устройство: {device_id}")
else:
    print("Нет доступных устройств для отправки")

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