Список устройств
Возвращает все 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"
}
]Поля устройства
| Поле | Тип | Описание |
|---|---|---|
id | string (UUID) | Уникальный ID устройства |
type | string | Тип устройства (всегда "android") |
name | string | Системное название (задаётся приложением при первом подключении) |
name_custom | string | Ваше название устройства (задаётся в панели). Пустая строка если не задано |
identifier | string | Аппаратный идентификатор устройства |
is_online | boolean | Устройство сейчас онлайн |
is_charging | boolean | Устройство заряжается |
battery_level | integer | Уровень заряда батареи (0–100) |
can_send_sms | boolean | Разрешена ли отправка SMS |
selected_sim | integer | Активная SIM-карта (см. ниже) |
notify_low_battery | boolean | Уведомлять о низком заряде |
forward_incoming_sms | boolean | Передавать входящие SMS в панель |
sim_cards | array | Список SIM-карт в устройстве |
created_at | string | Дата первого подключения |
updated_at | string | Дата последнего обновления |
Значения 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("Нет доступных устройств для отправки")