Skip to main content

Create an API key

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.
Soundlink Settings Developer API keys table with name, scopes, expiration, status, and Create key button

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).
Create API key dialog with name field, expiration dropdown, and scope checkboxes

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.
Save your API key dialog with masked key, reveal and copy buttons, and warning that the key is shown only once

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.

API key format

Pass the full string in the Authorization header as a Bearer token:
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.

Scopes (v1)

Scopes limit which endpoints a key can call. Select them when you create the key; they cannot be changed without minting a new key. Typical read-only integrations enable both campaigns: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.

Expiration

Choose a lifetime at 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.

Organization isolation

Your organization is determined only from the API key. The API ignores x-organization-id and similar spoofed headers.

Key lifecycle

  • Active — key is within its expiration window and not revoked.
  • Revoked — you deleted the key in Settings; API returns api_key_revoked.
  • Expired — past expiresAt; API returns api_key_expired.
Revoked keys stay visible in the list with status and date so you can audit past integrations.

Ping vs data endpoints

Next

Verify your new key in Quickstart with GET /v1/ping, then list campaigns.