playlist_position. On playlist campaigns, use it to see which slot each engaged track held on the campaign playlist for that day.
Get the data
Same endpoint as other engagement rows — no new route:GET /v1/campaigns/{campaignId}/metrics/engagement/export?engagementContext=playlist
Requires the metrics:read scope. See JSONL exports for streaming and date windows.
playlist_position when engagement_context is playlist. Catalog rows always have null.
What the value means
Position comes from that day’s playlist crawl for
report_date.
When null is expected
- Catalog rows (
engagement_context = catalog) — position only applies toplaylistrows - Current UTC day — often
nulluntil the morning crawl finishes; it fills on the next data refresh - Track not on the playlist that day — playlist engagement can include tracks Spotify played from the playlist context (autoplay, recommendations), or tracks that could not be matched to that day’s crawl
- No crawl for that day — a missed crawl that was not recovered (only recent days are retried), or a playlist that has no crawl coverage at all
report_date.
Treat null as unavailable — not an error. If a day looks wrong after crawl coverage should be complete, contact hello@getsoundlink.com.