SMS empfangen per API: eingehende Antworten lesen
Lesen Sie die SMS, mit denen Ihnen geantwortet wurde, ohne Webhooks zu empfangen.
Zuletzt aktualisiert
GET
/api/v1/messages/inboundLiefert empfangene SMS in der Reihenfolge, in der sie bei DroidSender angekommen sind. Die Alternative zum Webhook received, wenn Sie keinen Server haben, der Anfragen annimmt: Ein Skript, das jede Minute läuft, genügt.
| Parameter | Wofür |
|---|---|
| since | Datum nach ISO 8601: alle, die ab diesem Zeitpunkt eingegangen sind |
| cursor | der nextCursor der vorherigen Antwort; hat Vorrang vor since |
| limit | 1 bis 100, standardmäßig 50 |
| from | nur die von einer Nummer, in beliebigem Format |
| deviceId | nur die, die ein bestimmtes Telefon empfangen hat |
| reference | nur die Antworten auf Sendungen mit dieser Referenz |
{
"messages": [
{
"id": "msg_01H8Z",
"from": "+14155550100",
"message": "JA",
"receivedAt": "2026-08-14T10:30:44.000Z",
"conversationId": "conv_9f21",
"deviceId": "dev_oppo_cph2577",
"inReplyTo": {
"id": "msg_01H8X",
"reference": "appointment_8841",
"body": "Können Sie Ihren Termin morgen um 10 Uhr bestätigen? Antworten Sie JA",
"sentAt": "2026-08-14T09:02:11.000Z"
}
}
],
"nextCursor": "MjAyNi0wOC0xNFQxMDozMDo0NS4xMjNafG1zZ18wMUg4Wg",
"hasMore": false
}Jede Minute lesen
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
# läuft jede Minute (cron); behält den Cursor zwischen den Läufen
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"]}// nextCursor speichern, wo Sie möchten (Datenbank, Datei)
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);Eine SMS erscheint hier bis zu 10 Sekunden nach ihrem Eingang. Das Abrufen markiert die Unterhaltung nicht als gelesen. Der beim Verbinden eines Telefons importierte Verlauf ist nicht enthalten, genau wie beim Webhook.