Zum Inhalt springen
Wbiztool

Messaging-API

Nachrichtenverlauf (Message History API)

Rufen Sie eine Liste der Nachrichten in Ihrem Arbeitsbereich für einen Datumsbereich ab, jeweils mit ihrem Status. Nutzen Sie die API, um Versandvorgänge abzugleichen, Berichte zu erstellen oder fehlgeschlagene Nachrichten für einen erneuten Versuch zu finden.

POSThttps://wbiztool.com/api/v1/report/

Body: JSON (erforderlich für Seiten nach der ersten) oder Formularfelder

Der Verlauf umfasst jede Nachricht im Arbeitsbereich Ihres API-Schlüssels, egal ob sie über die API, das Dashboard oder eine Kampagne gesendet wurde. Die Ergebnisse kommen mit 200 pro Seite, die ältesten zuerst. Dieselben Daten finden Sie auf der Seite Berichte.

Kurzes Beispiel#

curl -X POST https://wbiztool.com/api/v1/report/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "start_date": "01-09-2026",
    "end_date": "08-09-2026",
    "page": 1
  }'

Ersetzen Sie 12345 und YOUR_API_KEY durch Ihre eigenen Werte. Wo Sie diese finden, steht unter Authentifizierung.

Request-Parameter#

Authentifizierung

client_idintegererforderlich

Ihre API-Client-ID aus Einstellungen → API-Schlüssel.

api_keystringerforderlich

Ihr API-Schlüssel von derselben Seite.

Filter

start_datestringerforderlich

Erster einzubeziehender Tag im Format DD-MM-YYYY, zum Beispiel 01-09-2026.

end_datestringerforderlich

Ende des Bereichs im Format DD-MM-YYYY. Dieser Tag selbst ist nicht enthalten. Siehe Datumsbereich.

whatsapp_clientintegeroptional

Gibt nur Nachrichten zurück, die von dieser WhatsApp-Nummer gesendet wurden, angegeben über ihre ID aus den WhatsApp-Einstellungen. Lassen Sie den Parameter weg, um Nachrichten aller Ihrer Nummern zu erhalten.

pageintegeroptional

Seitennummer, beginnend bei 1 (Standard). Jede Seite enthält bis zu 200 Nachrichten. Senden Sie den Wert als JSON-Zahl. 0 oder eine negative Zahl liefert total mit leerem history.

Datumsbereich#

Datumsangaben werden als Mitternacht zu Beginn des jeweiligen Tages in indischer Standardzeit (IST, UTC+5:30) interpretiert, und Nachrichten werden nach ihrem Erstellungszeitpunkt (in die Warteschlange gestellt oder geplant) zugeordnet, nicht nach dem Versandzeitpunkt. Der Bereich reicht von start_date 00:00 bis end_date 00:00. Das heißt:

  • "start_date": "01-09-2026", "end_date": "08-09-2026" liefert den 1. bis 7. September. Der 8. September ist nicht enthalten.
  • Für einen einzelnen Tag setzen Sie end_date auf den Folgetag: "start_date": "15-09-2026", "end_date": "16-09-2026".
  • Wenn beide Daten gleich sind, erhalten Sie keine Nachrichten.

Paginierung#

Jede Antwort enthält total, die Anzahl der Nachrichten im gesamten Bereich, sowie bis zu 200 davon in history. Fordern Sie page 2, 3 und so weiter an, bis page × 200 mindestens total ist.

Antwort#

Ein erfolgreicher Request gibt HTTP 200 zurück:

{
  "message": "Success",
  "status": 0,
  "total": 3,
  "history": [
    { "id": 9817263, "msg_type": "Text", "contact": "919876543210", "message_status": "Sent" },
    { "id": 9817264, "msg_type": "File", "contact": "919812345670", "message_status": "Failed" },
    { "id": 9817265, "msg_type": "Image", "contact": "Sales Team Mumbai", "message_status": "Pending" }
  ]
}
FeldTypBeschreibung
messagestringSuccess, wenn der Request funktioniert hat, andernfalls der Fehler.
statusintegerImmer 0. Verwenden Sie das Feld nicht, um Erfolg zu erkennen.
totalintegerAnzahl der Nachrichten im Datumsbereich über alle Seiten. Nur bei Erfolg vorhanden.
historyarrayBis zu 200 Nachrichten auf dieser Seite, die ältesten zuerst. Bei einem Fehler leer.
history[].idintegerNachrichten-ID, identisch mit der msg_id, die beim Senden zurückgegeben wurde.
history[].msg_typestringText, Image oder File.
history[].contactstringDie Telefonnummer des Empfängers mit Ländervorwahl oder bei Gruppennachrichten der Gruppenname.
history[].message_statusstringSiehe Tabelle unten.

Werte für den Nachrichtenstatus#

message_statusBedeutung
PendingIn der Warteschlange oder geplant, noch nicht gesendet (Status 0).
SentVon Ihrer WhatsApp-Nummer gesendet (Status 1).
DeliveredReserviert, wird derzeit nicht zurückgegeben.
ReadReserviert, wird derzeit nicht zurückgegeben.
FailedKonnte nicht gesendet werden, oder der Sendevorgang wurde unterbrochen (Status 2). Den error sehen Sie über Nachrichtenstatus.
CancelledVor dem Versand storniert (Status 3).
ExpiredNicht vor Ablauf der Frist expire_after_seconds gesendet (Status 4).

Zustell- und Lesehäkchen werden derzeit nicht erfasst, daher erscheinen gesendete Nachrichten immer als Sent. Delivered und Read sind reservierte Werte; falls sie jemals erscheinen, behandeln Sie sie als Sent.

Fehler#

Fehler geben HTTP 200 mit status gleich 0 zurück, sofern nicht anders angegeben:

{ "message": "Error", "status": 0, "history": [] }
MeldungLösung
Errorstart_date oder end_date fehlt oder hat nicht das Format DD-MM-YYYY, der JSON-Body ist ungültig (oft wegen eines abschließenden Kommas) oder der Request war kein POST.
Auth ErrorSenden Sie client_id und api_key.
Invalid Client IdSenden Sie client_id als Zahl. Wird mit HTTP 403 ohne history zurückgegeben.
Auth Error: invalid api keyPrüfen Sie, ob der Schlüssel existiert, nicht gelöscht wurde und zu dieser client_id gehört. Wird mit HTTP 400 ohne history zurückgegeben.
Demo Account can not access apisVerwenden Sie ein reguläres Konto.

Tipps#

  • Verlauf in kleinen Bereichen abrufen: Ein Tag oder eine Woche pro Abfrage hält die Anzahl der Seiten gering.
  • Fehlgeschlagene Nachrichten finden: Filtern Sie history nach Failed und rufen Sie dann Nachrichtenstatus mit jeder id auf, um den Grund zu sehen. Prüfen Sie vor einem erneuten Versuch den error: Sending was interrupted and may have been delivered… bedeutet, dass der Empfänger die Nachricht möglicherweise bereits hat.
  • Alte Nachrichten werden entfernt: Nachrichten, die einen endgültigen Status erreicht haben und sich etwa 90 Tage lang nicht geändert haben, können entfernt werden und erscheinen dann hier nicht mehr. Dasselbe gilt für Nachrichten, die 90 Tage nach ihrer Erstellung oder ihrem geplanten Zeitpunkt noch in der Warteschlange einer getrennten oder gelöschten Nummer stehen.
  • Verfolgung in Echtzeit: Um direkt auf den Versand zu reagieren, übergeben Sie beim Senden der Nachricht einen webhook, statt diesen Endpoint regelmäßig abzufragen.