Spotify signs users in with their Spotify account. It is the natural connector for music tooling, playlist apps, and anything that reads a listener's library.

## Copy the redirect URI

In the [Authdog console](https://console.authdog.com), select the project and environment, open **Authentication > Providers**, find **Spotify**, and click **Enable**. Copy the redirect URI shown in the form:

```url
https://identity.authdog.com/api/v1/callback/<connectionId>
```

## Create the Spotify app

1. Open the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard) and select **Create app**.
2. Fill in the app name and description.
3. Under **Redirect URIs**, add the redirect URI from Authdog. Several are allowed, so all your environments can share one app.
4. Under **Which API/SDKs are you planning to use**, select **Web API**.
5. Save, then open **Settings** and copy the **Client ID**. Select **View client secret** to reveal the secret.

> **Note**
>
> New apps start in **development mode**, which admits at most 25 users, each
> added by email in **User Management**. Request an extension quota before you
> open sign-in to the public.

## Configure Authdog

| Field | Value |
| --- | --- |
| **Client ID** | From the app's **Settings** |
| **Client Secret** | Revealed under **View client secret** |

Save, then toggle the connection **active**.

## What Spotify returns

Authdog requests `user-read-private user-read-email` and reads the profile from `https://api.spotify.com/v1/me` — the Spotify user ID, display name, email, country, avatar, and subscription product level.

The email is the address on the Spotify account. Spotify does not indicate whether it is verified, so do not treat it as a verified address if that distinction matters to your product.

## Test it

1. Add your test account under **User Management** if the app is still in development mode.
2. Open your environment's hosted sign-in page, or link to `https://identity.authdog.com/api/v1/signin/<connectionId>`.
3. Select the Spotify button and authorize.
4. Confirm the user appears under **Users** with the account email attached.

## Troubleshooting

| Symptom | Cause |
| --- | --- |
| `INVALID_CLIENT: Invalid redirect URI` | The URI is missing from the app's redirect list |
| `User not registered in the Developer Dashboard` | The app is in development mode and the account is not listed |
| `invalid_client` | Client ID and secret come from different apps |

## Related

| Read | To learn how to |
| --- | --- |
| [Connectors](/docs/connectors) | Set up any other social provider |
| [Twitch](/docs/connectors/twitch) | Add another media and creator identity |
