Webhook subscription logs

Webhook logs regarding failures are available for our customers for seven days. You can check information such as how many attempts were executed, the request/response body, the final execution status and more. The following endpoints are available to interact with the logs.

Note: if you have more than 10 webhook logs, the results may be paginated. To know more about how to use the nextPageToken to get the following results, refer to this pagination documentation.

List all logs for a webhook subscription.

get

This endpoint allows you to list all logs for a webhook subscription. You can filter the logs by execution status.

Authorizations
Path parameters
organizationIdstring · uuidRequired

The ID for the organization.

Example: cb28a94e-8557-4394-80ea-5bbd2170d434
workspaceIdstring · uuidRequired

The ID for the workspace.

Example: b4e02c85-c6d2-4b15-8885-e09671799c61
webhookSubscriptionIdstring · uuidRequired

The ID for the webhook subscription.

Example: 852883af-5f68-4204-b611-7ee8db9600f4
Query parameters
limitinteger · min: 1 · max: 100Optional

Limits the number of results to return. The default value is 10, the minimum is one and the maximum is 100.

Default: 10
pageTokenstring · max: 8000Optional

Pagination token that keeps of track of the current position in the list. Use it to get remaining results that were paginated. To learn more, please refer to Common API Usage Pagination section.

executionStatusstring · enumOptional

The execution status of a webhook.

Possible values:
Responses
200
A list of webhook logs is returned successfully. If no logs exists, an empty list is returned.
application/json
Responseall of
get
GET /organizations/{organizationId}/workspaces/{workspaceId}/webhook-subscriptions/{webhookSubscriptionId}/logs HTTP/1.1
Host: api.bird.com
Authorization: Bearer JWT
Accept: */*
200

A list of webhook logs is returned successfully. If no logs exists, an empty list is returned.

{
  "results": [
    {
      "requestId": "123e4567-e89b-12d3-a456-426614174000",
      "attemptCount": 1,
      "httpStatusCode": 1,
      "executionStatus": "succeeded",
      "createdAt": "2025-07-12T00:37:54.098Z"
    }
  ],
  "nextPageToken": "WyIyMDI0LTExLTE1VDEzOjM0OjQ1Ljc3NTYzMDE0OVoiLCJhMGEwM2IxOS03NTQ5LTRlZmUtOTBjZS1jNzdlYzI0ZjZmN2YiXQ=="
}

Get webhook log details by request ID

get

This endpoint allows you to get the details of a webhook log using the request ID.

Authorizations
Path parameters
organizationIdstring · uuidRequired

The ID for the organization.

Example: cb28a94e-8557-4394-80ea-5bbd2170d434
workspaceIdstring · uuidRequired

The ID for the workspace.

Example: b4e02c85-c6d2-4b15-8885-e09671799c61
webhookSubscriptionIdstring · uuidRequired

The ID for the webhook subscription.

Example: 852883af-5f68-4204-b611-7ee8db9600f4
Query parameters
requestIdstring · uuidRequired

The ID for the request.

Example: 5bfb1e8d-e12f-4f39-b723-f22699754436
Responses
200
Webhook log details are returned successfully. If no details exists, an empty list is returned.
application/json
get
GET /organizations/{organizationId}/workspaces/{workspaceId}/webhook-subscriptions/{webhookSubscriptionId}/logs/details HTTP/1.1
Host: api.bird.com
Authorization: Bearer JWT
Accept: */*
200

Webhook log details are returned successfully. If no details exists, an empty list is returned.

{
  "results": [
    {
      "requestId": "123e4567-e89b-12d3-a456-426614174000",
      "attemptCount": 1,
      "httpStatusCode": 1,
      "executionStatus": "succeeded",
      "createdAt": "2025-07-12T00:37:54.098Z",
      "payloadDetails": {
        "response": "text",
        "request": "text"
      }
    }
  ]
}

Examples

Let's establish some of our data that will be used in the following examples:

  • Workspace ID: a1405560-c8d3-4b1a-877d-3f449ad95352

  • Organization ID: 823fbfaf-f14e-4693-b55a-8ec1c17d649e

  • Webhook subscription ID: 0edf722b-93b4-4451-8a5d-4fafba5cdf8b

  • AccessKey: abcd

Retrieving logs for debugging

In this example, we retrieve all logs for a subscription. It will show information such as the request ID and how many attempts were executed to try to deliver the event succesfully. With that information, you can get more details, such as the request body and response and more. We show how to do that in our next example.

curl -X GET "https://api.bird.com/organizations/823fbfaf-f14e-4693-b55a-8ec1c17d649e/workspaces/a1405560-c8d3-4b1a-877d-3f449ad95352/webhook-subscriptions/0edf722b-93b4-4451-8a5d-4fafba5cdf8b
-H "Content-Type: application/json" \
-H "Authorization: AccessKey abcd"

Retrieving details about logged requests

Using the details route, you can get more information about the failures to deliver events. When querying a request ID (which can be found on the header of a request), you can obtain information about all delivery attempts. In the response example below, if there were 36 attempts, you would see 36 log details about each attempt.

Example of a delivery attempt. You can obtain the request ID on the headers through the key 'messagebird-request-id'
curl -X GET "https://api.bird.com/organizations/823fbfaf-f14e-4693-b55a-8ec1c17d649e/workspaces/a1405560-c8d3-4b1a-877d-3f449ad95352/webhook-subscriptions/0edf722b-93b4-4451-8a5d/logs/details?requestId=56878366-5417-414d-b1d9-5f250354f8d1" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {{token}}"

Last updated

Was this helpful?