Get audience membership statistics
/v1/audiences/{audience_id}/membership-statisticsconst history = await bird.audiences.membershipHistory(
"adn_01krdgeqcxet5s7t44vh8rt9mg",
{
from: "2026-10-09",
to: "2026-10-12",
},
);
for (const point of history.data) {
console.log(point.bucket, point.total, point.observed_at);
}history = client.audiences.membership_history(
"adn_01krdgeqcxet5s7t44vh8rt9mg", from_="2026-10-09", to="2026-10-12",
)
for point in history.data:
print(point.bucket, point.total, point.observed_at)history, err := client.Audiences.MembershipHistory(context.Background(), "adn_01krdgeqcxet5s7t44vh8rt9mg", bird.AudienceMembershipHistoryParams{
From: time.Date(2026, 10, 9, 0, 0, 0, 0, time.UTC),
To: time.Date(2026, 10, 12, 0, 0, 0, 0, time.UTC),
})
if err != nil {
log.Fatal(err)
}
data, err := json.Marshal(history)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(data))$history = $bird->audiences->membershipHistory('adn_01krdgeqcxet5s7t44vh8rt9mg', [
'from' => '2026-10-09',
'to' => '2026-10-12',
]);
foreach ($history->getData() ?? [] as $point) {
echo $point->getBucket()?->format('Y-m-d'), ' ', json_encode($point->getTotal()), ' ', $point->getObservedAt()?->format(DATE_ATOM), "\n";
}bird audiences membership-history <audience-id>curl -X GET "https://us1.platform.bird.com/v1/audiences/{audience_id}/membership-statistics" \
-H "Authorization: Bearer $TOKEN"{
"period": {
"from": "2026-10-09",
"to": "2026-10-12",
"data_as_of": null
},
"data": [
{
"bucket": "2026-10-09",
"total": null,
"observed_at": null
},
{
"bucket": "2026-10-10",
"total": 0,
"observed_at": "2026-10-10T00:07:12.218Z"
},
{
"bucket": "2026-10-11",
"total": 1279,
"observed_at": "2026-10-11T00:05:48.903Z"
},
{
"bucket": "2026-10-12",
"total": 1284,
"observed_at": "2026-10-12T00:06:31.44Z"
}
]
}
Returns the first successful observation for each requested UTC date, in chronological order. Changes between observations are unobserved. A missing observation has null total and observed_at; a successful empty audience has zero members. History retains today and the preceding 364 UTC dates; older requested dates are gaps. No history is reconstructed before observation began.
Only daily UTC observations are supported. Period data_as_of is always null because samples do not establish continuous freshness; each point carries its actual observed_at. Future, reversed, invalid or longer-than-365-date windows return 422. For the current exact count, use Get audience membership.
Returns 421 when the workspace's organization is served from a different region from the API host. Retry against that workspace's regional host.
Parameters
audience_idstringID of the audience whose observations to read.
Query Parameters
fromstringInclusive first UTC date. Defaults to 30 days before to, yielding 31 inclusive dates.
tostringInclusive last UTC date. Defaults to today in UTC; future dates are rejected. At most 365 inclusive dates.
Response Payload
Related resources
Continue with the documentation, guides and examples for this topic.