API de réception de SMS : lire les réponses reçues
Lisez les SMS reçus en réponse, sans recevoir de webhooks.
Dernière mise à jour
GET
/api/v1/messages/inboundRenvoie les SMS reçus dans l’ordre où ils sont arrivés sur DroidSender. C’est l’alternative au webhook received quand vous n’avez pas de serveur qui accepte des requêtes : un script exécuté toutes les minutes suffit.
| Paramètre | À quoi il sert |
|---|---|
| since | date ISO 8601 : les messages arrivés à partir de ce moment |
| cursor | le nextCursor de la réponse précédente ; prioritaire sur since |
| limit | de 1 à 100, 50 par défaut |
| from | uniquement ceux d’un numéro, dans n’importe quel format |
| deviceId | uniquement ceux reçus par un téléphone donné |
| reference | uniquement les réponses aux envois portant cette référence |
{
"messages": [
{
"id": "msg_01H8Z",
"from": "+14155550100",
"message": "OUI",
"receivedAt": "2026-08-14T10:30:44.000Z",
"conversationId": "conv_9f21",
"deviceId": "dev_oppo_cph2577",
"inReplyTo": {
"id": "msg_01H8X",
"reference": "appointment_8841",
"body": "Pouvez-vous confirmer votre rendez-vous de demain à 10h ? Répondez OUI",
"sentAt": "2026-08-14T09:02:11.000Z"
}
}
],
"nextCursor": "MjAyNi0wOC0xNFQxMDozMDo0NS4xMjNafG1zZ18wMUg4Wg",
"hasMore": false
}Lire toutes les minutes
curl "https://api.droidsender.com/api/v1/messages/inbound?since=2026-08-14T00:00:00Z" \
-H "X-API-Key: DS-live-your-key"import pathlib, requests
# s'exécute toutes les minutes (cron) ; garde le curseur d'une exécution à l'autre
state = pathlib.Path("cursor.txt")
params = {"cursor": state.read_text()} if state.exists() else {"since": "2026-08-14T00:00:00Z"}
while True:
r = requests.get(
"https://api.droidsender.com/api/v1/messages/inbound",
headers={"X-API-Key": "DS-live-your-key"},
params=params,
).json()
for m in r["messages"]:
print(m["from"], m["message"], (m["inReplyTo"] or {}).get("reference"))
state.write_text(r["nextCursor"])
if not r["hasMore"]:
break
params = {"cursor": r["nextCursor"]}// stockez nextCursor où vous voulez (base de données, fichier)
let cursor = await loadSavedCursor();
do {
const url = new URL("https://api.droidsender.com/api/v1/messages/inbound");
if (cursor) url.searchParams.set("cursor", cursor);
const r = await fetch(url, { headers: { "X-API-Key": "DS-live-your-key" } }).then((x) => x.json());
for (const m of r.messages) await handleReply(m);
cursor = r.nextCursor;
await saveCursor(cursor);
if (!r.hasMore) break;
} while (true);Un SMS apparaît ici jusqu’à 10 secondes après son arrivée. La lecture ne marque pas la conversation comme lue. L’historique importé lors de la connexion d’un téléphone n’est pas inclus, comme pour le webhook.