Skip to main content

List Sent WhatsApp Messages

Retrieve a list of WhatsApp messages previously sent through the API for the WhatsApp Business Account the key belongs to.

Written by Tarek Khalil

Endpoint

GET https://app.octopods.io/api/v1/whatsapp/messages

Returns messages in reverse chronological order (most recent first).

Authentication

Include your WhatsApp Business API Key in the request header:

X-Octopods-Auth: YOUR_WHATSAPP_BUSINESS_API_KEY

Only messages sent through the API with this same key are returned. Messages sent from the Intercom or HubSpot inbox, or through Broadcasts or Proactive Messaging in the UI, are not included.

Query parameters

  • limit — the maximum number of messages to return. Defaults to 100, which is also the maximum. Requests with a larger value are capped at 100.

Example request

GET https://app.octopods.io/api/v1/whatsapp/messages?limit=25
X-Octopods-Auth: YOUR_WHATSAPP_BUSINESS_API_KEY

Success response

On success the API returns HTTP 200 OK with a JSON body:

{
  "request_id": "5f0b9c8a-2d1e-4e9a-9c4b-3a2d1e4e9a9c",
  "messages": [
    {
      "message_id": 3851828,
      "status": "delivered",
      "phone_number": "+15551234567",
      "sent_at": "2026-04-24T10:23:45Z"
    },
    {
      "message_id": 3851827,
      "status": "failed",
      "phone_number": "+15557654321",
      "sent_at": "2026-04-24T10:19:02Z",
      "failure_reason": "Recipient is not a WhatsApp user."
    }
  ]
}

Each item summarises one sent message. For the full status timeline of a single message, call the status endpoint with its message_id.

Error response

On failure the API returns HTTP 400 Bad Request:

{
  "request_id": "5f0b9c8a-2d1e-4e9a-9c4b-3a2d1e4e9a9c",
  "error_code": 6,
  "error": "Deprecated API Key. Please go to your Octopods App, and get your new API Key"
}

Error codes

Code

Name

When it happens

6

DEPRECATED_API_KEY

The API key has been rotated or revoked. Fetch the current key from Octopods.

Use cases

  • Nightly reconciliation. Pull yesterday’s sends and cross-check against your own records.

  • Dashboards. Surface send volume and failure rate inside your own admin tools.

  • Retry failed sends. Iterate through the list, look for status: "failed", and decide whether to retry.

Rate limits

Listing calls share the same per-API-key rate limit as WhatsApp template sends. On a breach, the response is HTTP 429 with a retry timestamp; pause until the timestamp passes before retrying. If you need to page through many messages, space your requests accordingly.


What’s next

Did this answer your question?