Organization owners and admins can create keys in the Soundlink app — no support ticket required.
Open API keys in Settings
Sign in at Soundlink, open your profile menu → Settings, then Developer
→ API keys. The app uses your current organization automatically — no org ID
in the URL.
1
Open the API keys page
From your profile menu, go to Settings → Developer → API keys. Soundlink scopes this page
to your active organization — you never paste an org ID into the URL.
You’ll see every key for the org — active, expired, and revoked — with scopes, expiration,
and last used.
API keys list in Settings → Developer
2
Create a key
Click Create key. Give the key a name (required), choose an expiration, and select
one or more scopes (at least one required).
Field
Details
Name
A label you’ll recognize later (e.g. Warehouse sync, Staging).
Expiration
Pick one: 7 days, 30 days, 90 days, 1 year, or Never. When the date passes, the API returns 401 with api_key_expired.
Scopes
Any combination of the v1 scopes below — at least one required. See Scopes.
Create key — name, expiration, and scopes
Start with 30 days and both read scopes if you’re exploring the API. Rotate or revoke the
key when you’re done testing.
3
Copy and store the key
After you click Create key, Soundlink shows the full key exactly once. Copy it
immediately and store it in your secrets manager or password vault.
You cannot retrieve the full key later — only revoke it and create a new one. The keys list
never shows the secret, only a masked placeholder.
One-time key reveal — copy before closing
Members (non-admin roles) see API keys in Settings but cannot open the page — ask an owner or
admin to create a key for your integration.
Pass the full string in the Authorization header as a Bearer token:
-H 'Authorization: Bearer sk_abc123_...'
The same header also accepts an OAuth access token. See OAuth Integration.A missing or unrecognized API key returns 401 with invalid_api_key. An invalid or expired OAuth token returns 401 with invalid_token.
Typical read-only integrations enable bothcampaigns:read and metrics:read.
Add soundlinks:read when you need self-serve soundlink catalog or Insights metrics.
Add soundlinks:write to create, archive, or send a test event.
Add campaigns:write only when the integration should spend wallet credit or manage delivery.
Existing keys keep their original scopes — create a new key to get soundlinks:read or
soundlinks:write. See Creating soundlinks.
GET /v1/ping accepts any valid v1 key regardless of which read scopes you
selected — useful for smoke tests after creation.
Prefer a fixed preset over Never for anything you can rotate. A key that never expires only
goes away when someone remembers to revoke it.
After expiresAt, requests fail with 401 and api_key_expired. Keys created with Never have
no expiresAt and only stop working when revoked. Create a replacement key before a fixed-lifetime
key lapses, update your integration, then revoke the old key.