Soundlink engagement export (JSONL)
Streams the full engagement dataset for a soundlink as
newline-delimited JSON (JSONL). Every line is a complete, valid
JSON object conforming to the soundlink_engagement_daily v1.0 schema
— identical to the rows returned by GET /metrics/engagement but
without pagination or an envelope wrapper.
Designed for data pipeline consumers: load directly into BigQuery, Snowflake, or any JSONL-aware ingest tool without cursor logic.
Usage:
Response body (one JSON object per line, no trailing comma):
Date range: if you omit both dates, defaults to the last 90 days
ending today. Override with startDate / endDate. Responses are
capped at 90 days — a wider range returns 400 invalid_query_parameter.
Page longer histories in 90-day slices.
Mutability: rows for a given report_date can be revised for up to
7 days after the date closes. Re-fetching and re-ingesting on the
primary key is safe (idempotent).
Requires the soundlinks:read scope. Accepts API key or OAuth Bearer.
Authorizations
Path Parameters
Query Parameters
Response
JSONL stream. Each line is a soundlink_engagement_daily v1.0 row.
Lines are sorted by (report_date asc, engagement_context, country_code, engaged_spotify_track_id).
One row of the soundlink_engagement_daily v1.0 schema.
Primary key: (provider, account_id, report_date, soundlink_id, engagement_context, country_code, engaged_spotify_track_id).
Rows are idempotent — re-ingesting on the primary key is safe.
Values for a given report_date may be revised for up to 7 days after
the date closes due to delayed Spotify playback events.
No status field: soundlinks do not store per-day lifecycle history.
No financial fields.