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

> Beatport needs no developer keys. Users sign in with their Beatport username and password on the MusicAPI sign-in page, and MusicAPI keeps only the token.

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

> **No keys needed:** Beatport has no self-serve developer programme. MusicAPI signs users in for you, so the Beatport integration needs no client ID, no secret and no redirect URI.

## How users sign in

The MusicAPI sign-in page shows a Beatport form with two fields: the Beatport username or email, and the password.

1. The user types their Beatport username and password.
2. MusicAPI sends them to Beatport once and gets an OAuth token for the account.
3. MusicAPI keeps the token, never the password.

A wrong username or password keeps the user on the form with an error. A user can try five times in one sign-in.

## Add it to MusicAPI

1. Open **Integrations** in the dashboard and pick Beatport.
2. Leave the fields empty and save.
3. Turn **Is Enabled** on.
4. Press **Test Beatport** and sign in once.

If Beatport gives you an OAuth client of your own, paste its Client ID and Client Secret. New sign-ins then use your client.

## Quirks

- Beatport has no liked songs. **Liked tracks** answer the tracks the user bought, and nothing can be added to them.
- Albums are Beatport releases. You can read a release and its tracks, but not save one to a library.
- **Artists** are the artists the user follows on My Beatport. You can follow and unfollow.
- Playlists keep no description. A move takes one item per call, so a big move is slower than on other services.
- Tracks carry an ISRC and a preview URL, and the search takes an ISRC.
- Track names add the version when it is not the original mix, for example `Greece 2000 (Max Styler Extended Rework)`.
- At most 100 items per page (`limitParam`). Tokens last 10 hours and MusicAPI refreshes them.

## Direct sign-in link

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