# Python (REST)

> No existe un SDK de Python: llame directamente a la API REST con requests. Envíe por POST un cuerpo JSON a /sms/sendSms con un token Bearer, o genere un cliente tipado a partir de la especificación OpenAPI 3.1 con openapi-generator.

- URL canónica: https://www.broadnet.me/es/developers/python
- Idioma: es
- Última actualización: 2026-10-21
- Editor: BroadNet (https://www.broadnet.me)

Llama a la API REST de BroadNet desde Python con las bibliotecas requests o httpx. No existe un paquete Python BroadNet: el único SDK oficial es para TypeScript y Node.js, no para Python. Si necesitas un cliente Python tipado, genéralo a partir de la especificación OpenAPI con openapi-generator; de lo contrario, las llamadas HTTP simples que se muestran a continuación son suficientes.

> **Mantenga la URL base en la configuración** Los ejemplos llaman a https://api.broadnet.me. Lea la URL base y el token de acceso (BROADNET_TOKEN) desde las variables de entorno, no desde el código. Las credenciales de prueba, y adónde enviar el tráfico de prueba, llegan con su acceso de prueba: solicítelo en /signup y le respondemos en un día hábil.

## Manejo de errores

Los errores devuelven un código de estado HTTP y un cuerpo JSON de ExceptionResponse (status, error, message, errorCode, requestUri). resp.raise_for_status() los convierte en excepciones. Reintente solo en caso de errores de red y respuestas 5xx, con retroceso; una vez que una llamada ha devuelto un ID de mensaje, el envío se aceptó, así que no lo vuelva a enviar sin más.

## Requisitos

Cualquier versión compatible Python 3. El ejemplo síncrono usa requests y el ejemplo asíncrono usa httpx; instala la biblioteca que uses.

## Ejemplos

### terminal

```bash
pip install requests httpx
```

Bibliotecas HTTP estándar. No se requiere ningún paquete BroadNet.

### send.py

```python
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 · el cuerpo de la respuesta es el ID del mensaje.

### async.py

```python
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())
```

Para listas grandes, utilice POST /sms/sendbulk con una carga de archivo en lugar de muchos envíos individuales.

### terminal

```bash
# 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
```

## Relacionado

- [Referencia de la API](https://www.broadnet.me/es/developers/api-reference)
- [Inicio rápido](https://www.broadnet.me/es/developers/quickstart)
- [Webhooks](https://www.broadnet.me/es/developers/webhooks)
