Skip to main content
GET
/
email
/
public
/
v1
/
subscriptions
/
timeline
View subscriptions timeline for a portal
curl --request GET \
  --url https://api.hubapi.com/email/public/v1/subscriptions/timeline
{
  "hasMore": true,
  "offset": "CK_PuKu3KBXr8LqG",
  "timeline": [
    {
      "timestamp": 1401975207000,
      "portalId": 62515,
      "recipient": "6d4b537e-c5ac-11e3-a673-00262df65d03@some.email.com",
      "changes": [
        {
          "change": "BOUNCED",
          "source": "SOURCE_NON_DELIVERY_REPORT",
          "portalId": 62515,
          "changeType": "PORTAL_BOUNCE",
          "causedByEvent": {
            "id": "6d72d39c-87da-3ced-bfdf-5f0213363827",
            "created": 1401975207000
          }
        }
      ]
    },
    {
      "timestamp": 1400255007763,
      "portalId": 62515,
      "recipient": "tim@opas.com",
      "changes": [
        {
          "change": "SUBSCRIBED",
          "source": "SOURCE_RECIPIENT",
          "portalId": 62515,
          "subscriptionId": 2849,
          "changeType": "SUBSCRIPTION_STATUS",
          "causedByEvent": {
            "id": "0d813e2c-ce7f-4510-9250-839cd08c967a",
            "created": 1400255007763
          }
        },
        {
          "change": "SUBSCRIBED",
          "source": "SOURCE_RECIPIENT",
          "portalId": 62515,
          "subscriptionId": 230318,
          "changeType": "SUBSCRIPTION_STATUS",
          "causedByEvent": {
            "id": "0d813e2c-ce7f-4510-9250-839cd08c967a",
            "created": 1400255007763
          }
        },
        {
          "change": "SUBSCRIBED",
          "source": "SOURCE_RECIPIENT",
          "portalId": 62515,
          "changeType": "PORTAL_STATUS",
          "causedByEvent": {
            "id": "0d813e2c-ce7f-4510-9250-839cd08c967a",
            "created": 1400255007763
          }
        }
      ]
    },
    {
      "timestamp": 1399053958000,
      "portalId": 62515,
      "recipient": "testemail+535fe913a51ff@emailtest.com",
      "changes": [
        {
          "change": "BOUNCED",
          "source": "SOURCE_NON_DELIVERY_REPORT",
          "portalId": 62515,
          "changeType": "PORTAL_BOUNCE",
          "causedByEvent": {
            "id": "cf568063-f12f-3a94-9c02-faccdc5f9bad",
            "created": 1399053958000
          }
        }
      ]
    }
  ]
}

Query Parameters

changeType
string

Only return timeline changes of the specified type (case-sensitive).

startTimestamp
integer<int64>

Only return timeline items which occurred at or after the given timestamp (in milliseconds since epoch).

endTimestamp
integer<int64>

Only return timeline items which occurred at or before the given timestamp (in milliseconds since epoch).

includeSnapshots
boolean

Include the user's full subscription snapshot with each timeline item.

offset
string

An offset token returned by a previous call to this endpoint.

limit
integer
default:10

The maximum number of timeline items to return. If omitted, the default value of 10 is used. The maximum allowed value is 1000.

Required range: 1 <= x <= 1000

Response

Subscriptions timeline retrieved successfully

hasMore
boolean

Whether there are more timeline items available

offset
string

Offset token for pagination

timeline
object[]
Last modified on December 12, 2025