Se connecter

API d’envoi de SMS : POST /sms/send depuis votre Android

L’endpoint qui met un SMS en file d’attente sur l’un de vos téléphones.

Dernière mise à jour

POST/api/v1/sms/send

Le message rejoint la file d’attente de l’appareil et part dans l’ordre d’arrivée. La réponse n’attend pas l’envoi : queued signifie accepté.

Corps de la requête

ChampTypeObligatoireDescription
tostringouiNuméro au format E.164 (+14155550100). Un numéro national est interprété selon le pays du téléphone qui envoie
messagestringouiTexte du message, jusqu’à 10 000 caractères (environ 66 SMS en GSM-7). Les messages longs partent en SMS concaténés
deviceIdstringnonTéléphone à utiliser. Sans ce champ, nous choisissons celui dont la file d’attente est la plus courte
referencestringnonVotre propre identifiant, renvoyé dans les webhooks de ce message

Requête

bash
curl -X POST https://api.droidsender.com/api/v1/sms/send \
  -H "Content-Type: application/json" \
  -H "X-API-Key: DS-live-your-key" \
  -d '{
    "to": "+14155550100",
    "message": "Votre rendez-vous du 10/08 à 11h15 est confirmé.",
    "deviceId": "dev_oppo_cph2577",
    "reference": "appointment_8841"
  }'

Réponse

json
{
  "id": "msg_01H8X2",
  "status": "queued",
  "to": "+14155550100",
  "deviceId": "dev_oppo_cph2577",
  "reference": "appointment_8841",
  "segments": 1,
  "encoding": "GSM-7",
  "quota": { "used": 128, "included": 2000, "remaining": 1872 },
  "deviceOnline": true,
  "createdAt": "2026-08-16T14:22:05Z"
}

Réessayer sans envoyer deux fois

Envoyez un en-tête Idempotency-Key. Répéter une requête avec la même clé renvoie la réponse d’origine au lieu d’envoyer un second SMS. Les clés durent 72 heures ; un corps différent avec la même clé renvoie 409 idempotency_conflict.

bash
curl -X POST https://api.droidsender.com/api/v1/sms/send \
  -H "X-API-Key: DS-live-your-key" \
  -H "Idempotency-Key: appointment_8841_reminder" \
  -H "Content-Type: application/json" \
  -d '{ "to": "+14155550100", "message": "Rappel" }'

Lire une conversation

GET/api/v1/conversations/:id/messages

Renvoie la conversation dans l’ordre chronologique. Le conversationId arrive dans le webhook received. limit accepte de 1 à 100, 20 par défaut.

json
{
  "conversationId": "conv_9f21",
  "phone": "+14155550100",
  "deviceId": "dev_oppo_cph2577",
  "messages": [
    {
      "id": "msg_01H8X",
      "direction": "outbound",
      "body": "Votre rendez-vous du 10/08 à 11h15 est confirmé.",
      "status": "delivered",
      "reference": "appointment_8841",
      "at": "2026-08-14T09:02:11Z"
    },
    {
      "id": "msg_01H8Z",
      "direction": "inbound",
      "body": "Jeudi matin, si possible.",
      "status": "delivered",
      "reference": null,
      "at": "2026-08-14T10:30:44Z"
    }
  ]
}

Vérifier un message plus tard

GET/api/v1/messages/:id

Renvoie l’état actuel d’un message que vous avez envoyé. Utilisez-le pour rapprocher vos données quand un webhook n’est pas arrivé. Les messages reçus s’obtiennent avec GET /messages/inbound.

json
{
  "id": "msg_01H8X2",
  "status": "delivered",
  "to": "+14155550100",
  "deviceId": "dev_oppo_cph2577",
  "segments": 1,
  "encoding": "GSM-7",
  "reference": "appointment_8841",
  "createdAt": "2026-08-16T14:22:05Z",
  "deliveredAt": "2026-08-16T14:22:41Z",
  "error": null
}

Vos préférences en matière de cookies

Nous utilisons des cookies essentiels au fonctionnement du site. Avec votre accord, nous utilisons aussi des cookies de mesure d’audience et de publicité pour comprendre les visites et mesurer nos annonces. Vous pouvez modifier votre choix à tout moment dans les Paramètres des cookies. Politique relative aux cookies