Documentazione

API REST per il middleware WhatsApp waboom.

Autenticazione

Ogni chiamata usa un Bearer token. La org API key (wbo_…, creabile da console → Impostazioni → API keys) opera a livello di organizzazione: crea istanze e usa tutte le istanze dell'org — è ciò che serve per fare tutto headless da un'app esterna. In alternativa, un token istanza per una singola istanza, o la ADMIN_API_KEY super-admin.

# header su ogni richiesta
Authorization: Bearer <token>

Bootstrap headless (org API key)

Con una org API key: crea l'istanza, mostra il QR, attendi la connessione, invia — senza pannello.

POST /v1/instances
Crea un'istanza nella tua org. Ritorna id e token. Org API key (admin+).
GET /v1/instances/:id/qr
QR di accoppiamento (data URL) da mostrare all'utente.
GET /v1/instances/:id/status
Poll finché connection: open.
curl -X POST https://api.waboom.it/v1/instances \
  -H "Authorization: Bearer $ORG_KEY" \
  -d '{"name":"cliente-acme"}'

Istanze

POST /instances
Crea un'istanza. Org API key (nella sua org) o admin key. Ritorna id e token.
GET /instances
Elenca le istanze. Org API key → solo la sua org; admin key → tutte.
DELETE /instances/:id
Rimuove un'istanza. Org API key (sua org) o admin key.

Connessione

GET /instances/:id/status
{ connection, me, hasCreds }
GET /instances/:id/qr
QR per accoppiare il numero (data URL immagine).

Messaggi

GET /instances/:id/chats
Elenco chat con nomi risolti.
GET /instances/:id/chats/:jid/messages
Storia messaggi. Query limit, beforeTs.
GET /instances/:id/messages/:jid/:msgId/media
Media decifrato (binario).
POST /instances/:id/send/text
{ jid, text, quotedId? }
POST /instances/:id/send/media
{ jid, type, base64, caption? }

Webhook

PUT /instances/:id/webhook
{ url, events } — eventi: message.received, message.status, instance.state, call.received, oppure ["*"].

Esempio

curl -X POST https://api.waboom.it/instances/$ID/send/text \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"jid":"39333...@s.whatsapp.net","text":"Ciao da waboom"}'