View subscriptions timeline for a portal
curl --request GET \
--url https://api.hubapi.com/email/public/v1/subscriptions/timelineimport requests
url = "https://api.hubapi.com/email/public/v1/subscriptions/timeline"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hubapi.com/email/public/v1/subscriptions/timeline', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/email/public/v1/subscriptions/timeline",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/email/public/v1/subscriptions/timeline"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubapi.com/email/public/v1/subscriptions/timeline")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/email/public/v1/subscriptions/timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"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
}
}
]
}
]
}{
"status": "<string>",
"message": "<string>",
"correlationId": "<string>"
}v1
View subscriptions timeline for a portal
For a given portal, return a time-ordered list of subscription changes. Timeline items will be returned in reverse-chronological order.
GET
/
email
/
public
/
v1
/
subscriptions
/
timeline
View subscriptions timeline for a portal
curl --request GET \
--url https://api.hubapi.com/email/public/v1/subscriptions/timelineimport requests
url = "https://api.hubapi.com/email/public/v1/subscriptions/timeline"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.hubapi.com/email/public/v1/subscriptions/timeline', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/email/public/v1/subscriptions/timeline",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/email/public/v1/subscriptions/timeline"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubapi.com/email/public/v1/subscriptions/timeline")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/email/public/v1/subscriptions/timeline")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"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
}
}
]
}
]
}{
"status": "<string>",
"message": "<string>",
"correlationId": "<string>"
}Scope requirements
Scope requirements
クエリパラメータ
Only return timeline changes of the specified type (case-sensitive).
Only return timeline items which occurred at or after the given timestamp (in milliseconds since epoch).
Only return timeline items which occurred at or before the given timestamp (in milliseconds since epoch).
Include the user's full subscription snapshot with each timeline item.
An offset token returned by a previous call to this endpoint.
The maximum number of timeline items to return. If omitted, the default value of 10 is used. The maximum allowed value is 1000.
必須範囲:
1 <= x <= 1000最終更新日 2026年4月10日
Get email subscription status for an email address
前へ
Update email subscription status for an email address
次へ
⌘I