# Python (REST)

> Il n'existe pas de SDK Python : appelez directement l'API REST avec requests. Envoyez en POST un corps JSON vers /sms/sendSms avec un jeton Bearer, ou générez un client typé à partir de la spécification OpenAPI 3.1 avec openapi-generator.

- URL canonique: https://www.broadnet.me/fr/developers/python
- Langue: fr
- Dernière mise à jour: 2026-10-21
- Éditeur: BroadNet (https://www.broadnet.me)

Appelez l'API REST de BroadNet depuis Python avec les bibliothèques requests ou httpx. Il n'existe pas de package Python BroadNet : le seul SDK officiel est destiné à TypeScript et Node.js, et non Python. Si vous souhaitez un client Python typé, générez-en un à partir de la spécification OpenAPI avec openapi-generator; sinon, les requêtes HTTP simples ci-dessous suffisent.

> **Conservez l'URL de base dans la configuration** Les exemples appellent https://api.broadnet.me. Lisez l'URL de base et le jeton d'accès (BROADNET_TOKEN) à partir des variables d'environnement, et non du code. Les identifiants de test, et l'adresse où envoyer le trafic de test, sont fournis avec votre accès de test : demandez-le sur /signup, nous répondons sous un jour ouvré.

## Gestion des erreurs

Les erreurs renvoient un code d'état HTTP et un corps JSON ExceptionResponse (status, error, message, errorCode, requestUri). La méthode resp.raise_for_status() les transforme en exceptions. Ne réessayez qu'en cas d'erreurs réseau et de réponses 5xx, avec un délai d'attente; une fois qu'un ID de message a été renvoyé, l'envoi a été accepté, il est donc inutile de le soumettre à nouveau sans raison.

## Exigences

Toute version Python 3 compatible est requise. L'exemple synchrone utilise requests et l'exemple asynchrone utilise httpx; installez celui que vous utilisez.

## Exemples

### terminal

```bash
pip install requests httpx
```

Bibliothèques HTTP simples. Aucun package BroadNet n'est requis.

### 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 · le corps de la réponse est l'ID du message.

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

Pour les listes importantes, utilisez POST /sms/sendbulk avec un téléchargement de fichier au lieu de plusieurs envois individuels.

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

## Voir aussi

- [Référence API](https://www.broadnet.me/fr/developers/api-reference)
- [Démarrage rapide](https://www.broadnet.me/fr/developers/quickstart)
- [Webhooks](https://www.broadnet.me/fr/developers/webhooks)
