Developer docs

IotaBot WhatsApp API

Send and receive WhatsApp messages from your code — on every number you connected.

Get an API key

WhatsApp message delivery status: sent, delivered, read

sent → delivered → read, or failed with the reason.

WEBHOOKmessage.status

Sent to your webhook on every change.

{
  "id": "evt_6a4ba40bc3f1a2b3c4d5e750",
  "object": "event",
  "type": "message.status",
  "api_version": "2026-10-01",
  "created_at": "2026-10-01T09:15:02.881Z",
  "livemode": true,
  "channel": "whatsapp",
  "website_id": "6a4b3fbbe291bce5bf701c5c",
  "data": {
    "message_id": "6a4ba0f1c3f1a2b3c4d5e733",
    "conversation_id": "6a4b9e21c3f1a2b3c4d5e6f7",
    "status": "delivered",
    "error": null
  }
}
GET/v1/messages/{id}messages:readThe API key needs the messages:read permission. Without it the call is refused with 403 insufficient_scope.Sign in to try

Or read it any time

Parameters
idrequiredIn the path
Request
curl -X GET "https://api.iotabot.com/v1/messages/MESSAGE_ID" \
  -H "Authorization: Bearer $IOTABOT_API_KEY"
Response · 200
{
  "data": {
    "id": "6a4ba0f1c3f1a2b3c4d5e733",
    "object": "message",
    "conversation_id": "6a4b9e21c3f1a2b3c4d5e6f7",
    "channel": "whatsapp",
    "direction": "outbound",
    "sender": {
      "type": "api",
      "name": "API · CRM sync"
    },
    "type": "text",
    "text": "Your order #1042 shipped yesterday — it arrives Friday.",
    "html": null,
    "html_raw": null,
    "attachments": [],
    "status": "delivered",
    "delivery": {
      "status": "delivered",
      "at": "2026-10-01T09:16:12.410Z"
    },
    "created_at": "2026-10-01T09:15:02.881Z"
  }
}
Errors
message_not_found