Skip to main content
GET
Campaign metrics breakdown export (JSONL)

Authorizations

x-api-key
string
header
required

Pass your Soundlink sk_* API key in the x-api-key header. Keys can carry explicit scopes (for example campaigns:read, metrics:read, videos:write) enforced by the backend.

Deprecated, retiring 2026-08-17 — migrate to Authorization: Bearer sk_... (see apiKeyBearerAuth) before then.

Path Parameters

campaignId
string
required

Campaign identifier (UUID)

Query Parameters

startDate
string<date>

Inclusive start date (YYYY-MM-DD). Defaults to campaign start date.

endDate
string<date>

Inclusive end date (YYYY-MM-DD). Defaults to today.

Response

JSONL stream. Each line is a campaign_country_daily v1.0 row. Lines are sorted by (report_date asc, country_code).

One row of the campaign_country_daily v1.0 schema. Primary key: (provider, account_id, report_date, campaign_id, country_code). 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 events from Meta and Spotify.

provider
enum<string>
required

Always soundlink. Identifies the data provider for multi-source warehouses.

Available options:
soundlink
account_id
string
required

Soundlink organization ID (UUID).

schema_version
string
required

Schema version. Pin your ingest pipeline to this value.

Example:

"1.0"

report_date
string<date>
required

UTC calendar date the metrics belong to (YYYY-MM-DD).

report_date_timezone
enum<string>
required

Always UTC.

Available options:
UTC
exported_at
string<date-time>
required

ISO 8601 UTC timestamp when this row was generated. Use for deduplication if the same report_date is re-delivered.

campaign_id
string
required

Soundlink campaign UUID. Stable for the lifetime of the campaign.

campaign_name
string
required

Human-readable campaign name.

campaign_target_type
enum<string> | null
required

Whether this campaign promotes a track or playlist. null if undetermined.

Available options:
track,
playlist
country_code
string
required

ISO 3166-1 alpha-2. Derived from the listener's IP at time of engagement. Uppercase.

streams
integer
required

Spotify streams attributed to this campaign in this country on this day (7-day click-through window). Observed events, not modelled estimates.

listeners
integer
required

Unique Spotify listeners attributed to this campaign in this country on this day (7-day click-through window). Summing country rows gives the correct campaign-level total.

followers
integer
required

Spotify artist follower gains attributed to this campaign in this country on this day (7-day click-through window).

streams_per_listener
number
required

streams / listeners for this row. Zero if listeners is zero.

spend_media
number
required

Amount billed to Meta for ad delivery in this country on this day. Excludes Soundlink service fees. In currency.

spend_total
number
required

Total billed by Soundlink (spend_media + fees). Computed as spend_media / (1 - fee_pct).

fees
number
required

Soundlink service fee (spend_total - spend_media).

currency
string
required

Currency for spend fields. Currently always USD.

currency_account
string
required

Account billing currency. Currently always USD. Will differ from currency once EUR delivery is available.

cpl
number
required

Cost per listener (spend_media / listeners). Zero if listeners is zero.

cpf
number
required

Cost per follower (spend_media / followers). Zero if followers is zero.

cost_per_result
number
required

Cost per primary campaign result. Currently equivalent to cpf (cost per follower). See result_type.

campaign_target_isrc
string | null

ISRC of the promoted track. Populated when campaign_target_type = track; otherwise null.

campaign_target_spotify_track_id
string | null

Spotify track ID of the promoted track. Populated when campaign_target_type = track; otherwise null.

campaign_target_playlist_id
string | null

Spotify playlist ID. Populated when campaign_target_type = playlist; otherwise null.

impressions
integer | null

Total Meta ad impressions served in this country on this day.

ad_clicks
integer | null

Total clicks on the Meta ad (all click types). Use ctr_adclick for ad-level CTR.

Clicks on "Continue with Spotify" on the Soundlink landing page. Use cpc_linkclick / ctr_linkclick for outbound CPC/CTR.

cpc_linkclick
number | null

Cost per outbound click (spend_media / link_clicks). Null if link_clicks is null or zero.

ctr_linkclick
number | null

Outbound CTR (link_clicks / impressions). Null if impressions is null or zero.

ctr_adclick
number | null

Meta ad CTR (ad_clicks / impressions). Null if impressions is null or zero.

result_type
enum<string> | null

The conversion event used for cost_per_result. Currently always follow.

Available options:
lp_click,
stream,
follow