Receive SMS API: read incoming replies

Last updated

Read the SMS people sent back, without receiving webhooks.

GEThttps://api.droidsender.com/api/v1/messages/inbound

Returns received SMS in the order they reached DroidSender. It is the alternative to the received webhook when you have no server that accepts requests: a script that runs every minute is enough.

ParameterWhat for
sinceISO 8601 date: the ones that arrived from then on
cursorthe nextCursor of the previous response; takes priority over since
limit1 to 100, 50 by default
fromonly the ones from a number, in any format
deviceIdonly the ones one phone received
referenceonly the replies to sends with this reference
json
{
    "messages": [
      {
        "id": "msg_01H8Z",
        "from": "+14155550100",
        "message": "SIM",
        "receivedAt": "2026-08-14T10:30:44.000Z",
        "conversationId": "conv_9f21",
        "deviceId": "dev_oppo_cph2577",
        "inReplyTo": {
          "id": "msg_01H8X",
          "reference": "marcacao_8841",
          "body": "Confirma a marcacao de amanha as 10h? Responda SIM",
          "sentAt": "2026-08-14T09:02:11.000Z"
        }
      }
    ],
    "nextCursor": "MjAyNi0wOC0xNFQxMDozMDo0NS4xMjNafG1zZ18wMUg4Wg",
    "hasMore": false
  }

The same object as the received webhook

Each message has the shape of the received webhook data, plus the id. If you already handle the webhook, the same code works for both.

Read every minute

curl "https://api.droidsender.com/api/v1/messages/inbound?since=2026-08-14T00:00:00Z" \
    -H "X-API-Key: DS-live-your-key"

Keep the nextCursor

It always comes back, even with no new messages. Use it on the next request and you never miss or repeat one, even when the phone was offline and delivers them hours late.

An SMS shows up here up to 10 seconds after it arrives. Reading does not mark the conversation as read. History imported when a phone connects is not included, same as the webhook.