Create a wallet-funded campaign
Creates a campaign funded from the organization’s wallet balance.
Requires the campaigns:write scope, and the organization must be
enabled for wallet billing.
This route has a financial side effect (the campaign’s budget is
deducted from the wallet balance), so the Idempotency-Key header
is required on every request. See the header description below
for retry semantics.
Authorizations
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
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.
1 - 255Body
- Option 1
- Option 2
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).
Spotify track or playlist URL to promote. Must be a valid track or playlist link to a resource that currently exists on Spotify.
USD, per day. Must be at least 10 (same floor as the Soundlink UI).
x >= 10Campaign duration in days. Must be an integer from 7 to 30 (UI custom range), or 60, or 90 (UI dropdown extras).
7 <= x <= 30Strictly validated against the platform's genre list.
Alternative/Indie, Ambient/Sleep, Chill/Background, Classical, Country, Electronic/Dance, Hip-Hop/R&B, Latin/Reggaeton, Pop, Rock, Christmas Non-custom growth strategy. Do not send tierTargeting with these
values; the platform applies default tiering.
maximum_growth, market_discovery, revenue_maximization Optional. Server generates a default (track title + short random suffix) when omitted.
How the campaign's ad creative is produced. Omit entirely to use the
platform's default (do_it_for_me).
- Option 1
- Option 2
Options that only apply when spotifyUrl is a track link. Ignored when spotifyUrl is a playlist link.
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.