BroadNet
Python·/python

Python (REST).

Python SDK не существует: вызывайте REST API напрямую с помощью requests. Отправьте POST-запросом JSON-тело на /sms/sendSms с токеном Bearer или сгенерируйте типизированный клиент по спецификации OpenAPI 3.1 с помощью openapi-generator.

5 минут чтения·Обновлено в сентябре 2026 года.·Раздел 14 из 15Центр разработчиков

Overview

Вызывайте REST API BroadNet из Python, используя библиотеки requests или httpx. Пакета BroadNet Python не существует: единственный официальный SDK предназначен для TypeScript и Node.js, а не Python. Если вам нужен типизированный клиент Python, сгенерируйте его из спецификации OpenAPI с помощью openapi-generator; в противном случае вам достаточно простых HTTP запросов, приведенных ниже.

Обработка ошибок

При возникновении ошибок возвращается код состояния HTTP и JSON тело ExceptionResponse (status, error, message, errorCode, requestUri). Метод resp.raise_for_status() преобразует их в исключения. Повторная попытка выполняется только при сетевых ошибках и ответах с кодом 5xx, с задержкой; как только вызов вернул идентификатор сообщения, отправка была принята, поэтому не следует отправлять запрос повторно вслепую.

Требования

Любая поддерживаемая версия Python 3. В синхронном примере используется requests, а в асинхронном — httpx; установите ту, которую вы используете.

Примеры

Скопируйте, вставьте, замените заполнители — примеры обращаются к production API как есть.

terminalbash
pip install requests httpx
↳ Простые HTTP библиотеки. Пакет BroadNet не требуется.
send.pypython
import os, requests

r = requests.post(
    "https://api.broadnet.me/sms/sendSms",
    headers={"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"},
    json={
        "senderId": "BroadNet",
        "destinationNumber": "447700900123",
        "message": "Your verification code is 482913",
        "messageType": "TEXT",
    },
)

print(r.status_code, r.text)  # message ID
↳ 200 OK · Тело ответа содержит идентификатор сообщения.
async.pypython
import asyncio
import os

import httpx

URL = "https://api.broadnet.me/sms/sendSms"
HEADERS = {"Authorization": f"Bearer {os.environ['BROADNET_TOKEN']}"}


async def send(client: httpx.AsyncClient, number: str, text: str) -> str:
    resp = await client.post(
        URL,
        headers=HEADERS,
        json={
            "senderId": "BroadNet",
            "destinationNumber": number,
            "message": text,
            "messageType": "TEXT",
        },
    )
    resp.raise_for_status()
    return resp.text  # message ID


async def main() -> None:
    recipients = ["447700900123", "447700900124", "447700900125"]
    async with httpx.AsyncClient(timeout=10) as client:
        ids = await asyncio.gather(
            *(send(client, n, "Your code is 482913") for n in recipients)
        )
    print(ids)


if __name__ == "__main__":
    asyncio.run(main())
↳ Для больших списков используйте POST /sms/sendbulk с загрузкой файла вместо множества отдельных рассылок.
terminalbash
# Optional: generate a typed Python client from the OpenAPI spec
curl -O https://www.broadnet.me/developers/openapi.yaml
npx @openapitools/openapi-generator-cli generate \
  -i openapi.yaml -g python -o broadnet-python
Тестовый доступ · ответ в течение одного рабочего дня

Запросите тестовый доступ и разрабатывайте уверенно.

Мы ответим в течение одного рабочего дня, предоставив тестовые учетные данные. Затем установите TypeScript SDK или вызовите REST API из любого языка и отправьте первое тестовое сообщение на свой номер.

$npm install @broadnet/cpaas-sdk axiosready