# Set up Spotify
URL: https://musicapi.com/docs/connect-users/configure-spotify.md

> What you need from the Spotify developer dashboard, the callback URL and scopes to register, and the Spotify quirks.

Product: MusicAPI Core and MusicAPI Managed Transfers. Section: Connect your users.

> **Managed integration:** A `transferring` sign-up gets copies of the integrations that MusicAPI runs. When your **Integrations** page already lists Spotify, users can sign in with no setup on your side. Set up your own Spotify app when your users must see your app's name at Spotify, or when your account has no Spotify integration.

## What you need from Spotify

An app in the [Spotify for Developers dashboard](https://developer.spotify.com/dashboard). From its **Settings** you copy:

| Spotify field | MusicAPI field |
| ------------- | -------------- |
| Client ID     | Client ID      |
| Client secret | Client Secret  |

## Callback URL

Add this exact **Redirect URI** to the Spotify app:

```url
https://api.musicapi.com/callback/spotify
```

## Scopes

MusicAPI asks for these scopes by default. You can change the list on the integration.

```text
playlist-read-collaborative playlist-modify-public playlist-read-private playlist-modify-private
user-read-private user-read-email user-library-modify user-library-read user-top-read
user-read-recently-played user-read-currently-playing user-follow-modify user-follow-read
ugc-image-upload
```

A user who signed in before a scope was added does not have it. Such a user must sign in again.

## Add it to MusicAPI

1. Open **Integrations** in the dashboard and pick Spotify.
2. Paste the Client ID and the Client Secret, and save.
3. Turn **Is Enabled** on, so the picker shows Spotify.
4. Press **Test Spotify** and sign in once with your own account.

## Quirks

- Spotify starts a new app in Development Mode, where only users you allow-list can sign in. Apply at Spotify for extended access before you launch.
- Every library operation of the API works on Spotify. Tracks carry an ISRC, and the user search takes one.
- Spotify returns no preview URL.
- At most 50 items per page (`limitParam`), at most 10,000 tracks per playlist.

## Direct sign-in link

```url
https://app.musicapi.com/{slug}/spotify/auth?returnUrl={returnUrl}
```
