Vai al contenuto
Wbiztool

API di messaggistica

API Cronologia messaggi

Ottieni l'elenco dei messaggi del tuo spazio di lavoro in un intervallo di date, con lo stato di ciascuno. Usala per riconciliare ciò che è stato inviato, creare report o trovare i messaggi non riusciti da reinviare.

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

Corpo: JSON (necessario per le pagine successive alla prima) o campi di un modulo

La cronologia comprende tutti i messaggi dello spazio di lavoro della tua chiave API, che siano stati inviati tramite l'API, la dashboard o una campagna. I risultati arrivano 200 per pagina, dal più vecchio. Gli stessi dati sono disponibili nella pagina Report.

Esempio rapido#

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
  }'

Sostituisci 12345 e YOUR_API_KEY con i tuoi valori. Consulta Autenticazione per sapere dove trovarli.

Parametri della richiesta#

Autenticazione

client_idintegerobbligatorio

Il tuo ID Client API, da Impostazioni → Chiavi API.

api_keystringobbligatorio

La tua chiave API, dalla stessa pagina.

Filtri

start_datestringobbligatorio

Primo giorno da includere, nel formato DD-MM-YYYY, ad esempio 01-09-2026.

end_datestringobbligatorio

Fine dell'intervallo, nel formato DD-MM-YYYY. Questo giorno non è incluso. Vedi Intervallo di date.

whatsapp_clientintegerfacoltativo

Restituisce solo i messaggi inviati da questo numero WhatsApp, usando il suo ID dalle Impostazioni WhatsApp. Omettilo per ottenere i messaggi di tutti i tuoi numeri.

pageintegerfacoltativo

Numero di pagina, a partire da 1 (il valore predefinito). Ogni pagina contiene fino a 200 messaggi. Invialo come numero JSON. 0 o un numero negativo restituisce total con un history vuoto.

Intervallo di date#

Le date vengono interpretate come la mezzanotte all'inizio di quel giorno nell'ora standard indiana (IST, UTC+5:30), e i messaggi vengono selezionati in base a quando sono stati creati (messi in coda o pianificati), non a quando sono stati inviati. L'intervallo va da start_date 00:00 fino a end_date 00:00, quindi:

  • "start_date": "01-09-2026", "end_date": "08-09-2026" restituisce i messaggi dall'1 al 7 settembre. L'8 settembre non è incluso.
  • Per ottenere un solo giorno, imposta end_date sul giorno successivo: "start_date": "15-09-2026", "end_date": "16-09-2026".
  • Se le due date coincidono, non ottieni alcun messaggio.

Paginazione#

Ogni risposta contiene total, il numero di messaggi dell'intero intervallo, e fino a 200 di questi in history. Richiedi page 2, 3 e così via finché page × 200 non è almeno pari a total.

Risposta#

Una richiesta riuscita restituisce HTTP 200:

{
  "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" }
  ]
}
CampoTipoDescrizione
messagestringSuccess quando la richiesta è riuscita, altrimenti l'errore.
statusintegerSempre 0. Non usarlo per rilevare il successo.
totalintegerNumero di messaggi nell'intervallo di date su tutte le pagine. Presente solo in caso di successo.
historyarrayFino a 200 messaggi in questa pagina, dal più vecchio. Vuoto in caso di errore.
history[].idintegerID del messaggio, lo stesso msg_id restituito al momento dell'invio.
history[].msg_typestringText, Image o File.
history[].contactstringIl numero di telefono del destinatario con prefisso internazionale, oppure il nome del gruppo per i messaggi di gruppo.
history[].message_statusstringVedi la tabella sotto.

Valori di stato dei messaggi#

message_statusSignificato
PendingIn coda o pianificato, non ancora inviato (stato 0).
SentInviato dal tuo numero WhatsApp (stato 1).
DeliveredRiservato, al momento non viene restituito.
ReadRiservato, al momento non viene restituito.
FailedNon è stato possibile inviarlo, oppure l'invio è stato interrotto (stato 2). Usa Stato del messaggio per vedere l'error.
CancelledAnnullato prima dell'invio (stato 3).
ExpiredNon inviato prima della scadenza expire_after_seconds (stato 4).

Al momento le spunte di consegna e di lettura non vengono registrate, quindi i messaggi inviati risultano sempre Sent. Delivered e Read sono valori riservati; se dovessero comparire, considerali come Sent.

Errori#

Gli errori restituiscono HTTP 200 con status impostato su 0, salvo dove indicato:

{ "message": "Error", "status": 0, "history": [] }
MessaggioCome risolvere
Errorstart_date o end_date mancano o non sono nel formato DD-MM-YYYY, il corpo JSON non è valido (spesso per una virgola finale) oppure la richiesta non era una POST.
Auth ErrorInvia sia client_id sia api_key.
Invalid Client IdInvia client_id come numero. Restituito con HTTP 403, senza history.
Auth Error: invalid api keyVerifica che la chiave esista, non sia stata eliminata e appartenga a questo client_id. Restituito con HTTP 400, senza history.
Demo Account can not access apisUsa un account normale.

Suggerimenti#

  • Recupera la cronologia a piccoli intervalli: un giorno o una settimana alla volta mantengono basso il numero di pagine.
  • Trova i messaggi non riusciti: filtra history per Failed, poi chiama Stato del messaggio con ogni id per vedere perché non è riuscito. Prima di riprovare, controlla l'error: Sending was interrupted and may have been delivered… significa che il destinatario potrebbe avere già il messaggio.
  • I messaggi vecchi vengono eliminati: i messaggi che hanno raggiunto uno stato finale e non sono cambiati per circa 90 giorni possono essere eliminati e non comparire più qui, così come i messaggi ancora in coda 90 giorni dopo la creazione o la pianificazione, su un numero disconnesso o eliminato.
  • Monitoraggio in tempo reale: per reagire quando i messaggi vengono inviati, passa un webhook quando invii il messaggio invece di interrogare periodicamente questo endpoint.