Soundlink cohort retention
Cohort retention for a soundlink: one row per cohort date that has first
plays (dates with no first plays have no row), where the cohort date is
the UTC date listeners first played via the soundlink. A listener’s
cohort date is their earliest first play across all countries.
Conforms to the soundlink_cohort_retention_daily v1.0 schema. All rows
are returned in data.items (one per cohort date), so there is no
pagination.
Retention definitions:
returned_on_day_N: listeners from the cohort who played again on exactly day N after their first play.retention_by_day_N: share of the cohort (cohort_size) who played again on any day from 1 to N (end-day, cumulative). Each listener is counted once, so the by-day rate never decreases within a row.- A day-N value is
nulluntil day N has passed for that cohort date.
Known limitation: end-day rates are cumulative per listener, so whether
day-3 returners also returned on day 2 is not recoverable from the end-day
columns. Use the exact-day returned_on_day_N columns for day-by-day behaviour.
soundlink_target_isrc is currently always null.
Date range: startDate / endDate filter the cohort date (both inclusive).
If you omit both, a recent window ending today is used. A range that is too wide
returns 400 invalid_query_parameter.
Requires the soundlinks:read scope. Accepts API key or OAuth Bearer.
Authorizations
Pass your Soundlink sk_* API key as a Bearer token:
Authorization: Bearer sk_<prefix>_<token> (not an OAuth token; see
oauthBearer for that). Accepted on all Public API operations. Send
only one Authorization header per request.
Path Parameters
Soundlink identifier (URL-safe string, same ID used in the public sndl.ink URL)
Query Parameters
Inclusive start date (YYYY-MM-DD). When omitted, the default depends
on the endpoint: campaign overview and paginated breakdown use the
campaign start date; engagement and JSONL export endpoints use the
last 90 days ending today (see each operation).
Inclusive end date (YYYY-MM-DD). Defaults to today.