Skip to main content
Export endpoints stream newline-delimited JSON (JSONL). Each line is one complete JSON object — load directly into BigQuery, Snowflake, or any JSONL-aware tool without cursor logic.
Loading into DuckDB or BigQuery without writing a pipeline? Use the warehouse connector.

Endpoints

Campaigns

Requires metrics:read. Requires soundlinks:read. Self-serve soundlinks only (not campaign-linked). Row schemas match the paginated breakdown / engagement JSON endpoints for the same resource. See Campaign metrics and Soundlink metrics for primary keys.

Request

Soundlink example:
Optional query params:
  • startDate, endDate — inclusive YYYY-MM-DD
  • engagementContext — catalog or playlist (engagement export only)

Date windows

Responses are capped at 90 days per request. If you omit both dates, the API uses a default window of the last 90 days ending today. For longer histories, page in 90-day slices:
If endDate is before startDate, or the range exceeds 90 days, you get 400 with invalid_date_range or invalid_query_parameter.

Response headers

Ingest pattern

Node.js users can stream campaign and soundlink exports with the TypeScript SDK. Treat each line as an upsert on the schema primary key (documented in Campaign metrics and Soundlink metrics). Re-running the same window after the 7-day mutability period is safe.

Paginated vs export

Next

Warehouse connector · Campaign metrics · Soundlink metrics · Playlist position · Errors