whatsapp-agent-notifications

List the notifications sent to your agents

Returns the notifications you have sent your agents, newest first, each with what came of it. Filter by from for the agent on one business number, by status to find the ones the agent skipped or WhatsApp refused, or by to to follow one contact. A notification still in flight to WhatsApp is not listed yet.

Page through the full set with the response cursors.

get/v1/whatsapp/agents/notifications

Request

  • Base URL: https://us1.platform.bird.com
  • URL: https://us1.platform.bird.com/v1/whatsapp/agents/notifications
  • Auth: one of:
    • HTTP bearer
    • API key in cookie bird_session

Query parameters

status'accepted' | 'success' | 'skipped' | 'failed'

Where a notification you sent the agent stands. One state is transient and three are final.

  • accepted means Bird holds the notification: it is on its way to WhatsApp, or WhatsApp is still working on it. Nothing is charged for a notification, unlike a message that reads accepted.
  • success means the agent acted on it.
  • skipped means the agent read it and chose to say nothing; skipped_reason says why.
  • failed means WhatsApp refused it or reported a failure, or no outcome arrived within a day; error says why.
Example:success

Return only notifications in this state.

fromstring
Example:+13124495648

Return only notifications sent to the agent on this business number, in E.164 format. A phone number is normalized before matching, so spacing does not matter.

tostring
Example:+14155551234

Return only notifications about this contact, a phone number in E.164 format or a business-scoped user ID. A phone number is normalized before matching, so spacing does not matter.

limitinteger

Maximum number of items to return per page.

starting_afterstring

Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.

ending_beforestring

Cursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.

Headers

X-Workspace-Idstring

Workspace context for the request. Required for dashboard authentication and master keys. Workspace keys and access tokens already identify their workspace; send that workspace or omit the header. A different one is rejected.

X-Organization-Idstring

Organization context for the request. Required for dashboard authentication. An API key or access token carries its own organization, so send either that organization or no header at all; a different one is rejected.

Response

A page of the notifications sent to your agents.

next_cursorstring nullable required

Cursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.

prev_cursorstring nullable required

Cursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.

refresh_cursorstring nullable required

Refresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.

Example response

{
  "data": [
    {
      "id": "waan_01krdgeqcxet5s7t44vh8rt9mg",
      "from": "+13124495648",
      "to": "+14155551234",
      "name": "order_shipped",
      "description": "Order 88213 left the warehouse and arrives on Thursday.",
      "payload": "{\"order_id\":\"88213\",\"carrier\":\"ACME Courier\"}",
      "status": "success",
      "skipped_reason": "The contact's conversation is currently held by the business.",
      "error": {
        "description": "Event payload exceeds the maximum size.",
        "meta_error_code": "100"
      },
      "created_at": "2026-10-02T08:00:00Z"
    }
  ],
  "next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
  "refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}

Changes

No recorded changes to this operation across all 2 revisions of this API.