Skip to main content
POST

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.

Headers

Idempotency-Key
string
required

A unique string identifying this request, used to safely retry write operations (create, stop, budget increase/decrease) without repeating side effects. Required on every request that references this parameter. Reusing this key with an unchanged request body replays the original response; reusing it with a different body returns 409 idempotency_key_conflict. Keys are honored for 24 hours.

Required string length: 1 - 255

Body

application/json

Create a wallet-funded campaign. When strategyType is custom, tierTargeting is required. For maximum_growth, market_discovery, or revenue_maximization, do not send tierTargeting (platform default tiering applies).

spotifyUrl
string<uri>
required

Spotify track or playlist URL to promote. Must be a valid track or playlist link to a resource that currently exists on Spotify.

dailyBudget
number
required

USD, per day. Must be at least 10 (same floor as the Soundlink UI).

Required range: x >= 10
durationDays
required

Campaign duration in days. Must be an integer from 7 to 30 (UI custom range), or 60, or 90 (UI dropdown extras).

Required range: 7 <= x <= 30
genre
enum<string>
required

Strictly validated against the platform's genre list.

Available options:
Alternative/Indie,
Ambient/Sleep,
Chill/Background,
Classical,
Country,
Electronic/Dance,
Hip-Hop/R&B,
Latin/Reggaeton,
Pop,
Rock,
Christmas
strategyType
enum<string>
required

Non-custom growth strategy. Do not send tierTargeting with these values; the platform applies default tiering.

Available options:
maximum_growth,
market_discovery,
revenue_maximization
campaignName
string

Optional. Server generates a default (track title + short random suffix) when omitted.

creativeDirection
object

How the campaign's ad creative is produced. Omit entirely to use the platform's default (do_it_for_me).

trackOptions
object

Options that only apply when spotifyUrl is a track link. Ignored when spotifyUrl is a playlist link.

clonedFromCampaignId
string<uuid>

Optional UUID of a campaign in your organization this create is cloned from. Records lineage only — it does not copy settings from the source; all other create fields must still be provided. Unknown or other-organization IDs return 400 invalid_request.

Response

Campaign created

data
object
required
meta
object
required