Read audience growth
How many contacts joined each audience over a window that ends now, counted by day, hour or minute: the growth chart on the audiences page. An audience records when somebody joined and never when they left, so every figure counts the people still in the list today by the date they joined, and a line never falls.
Runs the real call against your workspace, with your own key.
GET /audiences/growth
How many contacts joined each audience over a window that ends now, counted by day, hour or minute: the growth chart on the audiences page. An audience records when somebody joined and never when they left, so every figure counts the people still in the list today by the date they joined, and a line never falls.
Example
Needs audiences:read. Leave audienceIds out for every audience, or name up to 50 separated by commas. The window is days (1 to 1095) or minutes (1 to 1576800, which wins when both are sent), 30 days by default. grain is day, hour or minute, day by default, and offsetMinutes (-840 to 840) is the viewer's offset from UTC, so day buckets start at their local midnight.
curl "$OE/audiences/growth?days=30" -H "$AUTH"{ "object": "audience_growth", "since": "2026-08-25T00:00:00.000Z", "until": "2026-09-23T12:00:00.000Z", "grain": "day", "offsetMinutes": 0, "totals": { "contacts": 412, "memberships": 415, "added": 37, "lists": 2, "busiest": "2026-09-18" }, "series": [ { "id": "aud_9f2c4b7e1a0d63d84c5f2e7b", "name": "All contacts", "builtin": true, "total": 412, "before": 378, "added": 34, "buckets": [ { "bucket": "2026-09-14", "added": 9 }, { "bucket": "2026-09-18", "added": 25 } ] }, { "id": "aud_4c1b8e2a7d9f05c36b4e8a71", "name": "Product updates", "builtin": false, "total": 3, "before": 0, "added": 3, "buckets": [{ "bucket": "2026-09-18", "added": 3 }] } ]}total is the members now, before the ones among them who joined before since, and added the ones who joined inside the window, so before plus added is total. A contact who joined and later left is in none of them.
totals.contacts counts each person once however many lists they are in, while totals.memberships adds the lists up, so a person counts once for every list read that holds them, and the default audience holds everyone. totals.busiest is the bucket with the most joins across the lists, or null when nobody joined.
Bucket keys are YYYY-MM-DD by day, YYYY-MM-DDTHH by hour and YYYY-MM-DDTHH:MM by minute, in the local time offsetMinutes names. Only buckets with a join are listed, so fill the gaps with zero when you draw them. series is sorted by total, largest first, then by name, and builtin is true on the default audience.
An id in audienceIds that is not an audience in this workspace is a 404 audience_not_found, and more than 50 ids is a 422 invalid_parameter. The window starts at the beginning of its first bucket, so since can fall a little earlier than exactly days ago.