Published on March 20, 2026

Music streaming is everywhere. Spotify, Apple Music, YouTube, Tidal, Deezer — each platform has its own API, its own authentication flow, and its own data format. If you're building an app that needs to work across multiple services, you're looking at weeks of integration work per platform.
MusicAPI changes that. It's a single, unified music data API that connects your application to 12+ streaming services through one consistent interface. In this guide, we'll walk you through everything you need to get up and running — from authentication to your first API call.
MusicAPI is an enterprise-grade REST API that abstracts the complexity of working with multiple music streaming platforms. Instead of building and maintaining separate integrations for Spotify, Apple Music, Amazon Music, and others, you connect once to MusicAPI and get access to all of them.
Here's what that means in practice:
Whether you're building a playlist manager, a music analytics dashboard, or a social listening app, MusicAPI gives you the foundation to move fast without sacrificing reliability.
Before writing any code, you'll need a MusicAPI account and an API key.
Sign up at app.musicapi.com. The free trial gives you access to all endpoints so you can explore the full API before committing to a plan.
Get your API key from the dashboard after signing up. You'll use this key to authenticate every request.
Choose your services. In the dashboard, enable the streaming platforms you want to support. MusicAPI currently connects to Spotify, Apple Music, YouTube, Amazon Music, Tidal, Deezer, SoundCloud, Qobuz, Boomplay, Napster, Audiomack, and Audius.
That's it for setup. No complex provisioning, no lengthy approval process.
MusicAPI uses a straightforward Bearer token system for API authentication. Every request to the API needs your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
But there's a second layer: connecting your end users to their streaming accounts. This is where MusicAPI really saves you time. Instead of implementing OAuth flows for each platform, you use a single endpoint.
To link a user's streaming account, make a POST request to the /auth/connect endpoint:
const response = await fetch('https://api.musicapi.com/v1/auth/connect', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
service: 'spotify',
redirectUrl: 'https://yourapp.com/callback'
})
});
const data = await response.json();
// Redirect the user to data.authUrl to complete the connection
MusicAPI handles the OAuth handshake, token storage, and automatic refresh behind the scenes. Once a user connects, you can access their data across sessions without asking them to re-authenticate.
With authentication in place, let's do something useful. Here's how to retrieve a user's playlists:
const response = await fetch('https://api.musicapi.com/v1/playlists?userId=user_123', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
const playlists = await response.json();
console.log(playlists);
The response comes back in a clean, standardized format regardless of which streaming service the user connected:
{
"data": [
{
"id": "pl_abc123",
"name": "Morning Favorites",
"service": "spotify",
"trackCount": 42,
"imageUrl": "https://..."
},
{
"id": "pl_def456",
"name": "Workout Mix",
"service": "apple_music",
"trackCount": 28,
"imageUrl": "https://..."
}
]
}
Notice how playlists from different services share the same structure. That's the core value of a unified music data API — your code doesn't need to know or care which platform the data came from.
Let's put it all together with a practical example. Here's a minimal Node.js script that connects to MusicAPI and displays a user's playlists across all their connected services:
const MUSICAPI_KEY = process.env.MUSICAPI_KEY;
const BASE_URL = 'https://api.musicapi.com/v1';
async function fetchPlaylists(userId) {
const response = await fetch(`${BASE_URL}/playlists?userId=${userId}`, {
headers: {
'Authorization': `Bearer ${MUSICAPI_KEY}`
}
});
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
return response.json();
}
async function displayUserPlaylists(userId) {
const { data: playlists } = await fetchPlaylists(userId);
// Group playlists by service
const grouped = playlists.reduce((acc, playlist) => {
if (!acc[playlist.service]) acc[playlist.service] = [];
acc[playlist.service].push(playlist);
return acc;
}, {});
for (const [service, lists] of Object.entries(grouped)) {
console.log(`\n${service.toUpperCase()}`);
console.log('─'.repeat(30));
lists.forEach(pl => {
console.log(` ${pl.name} (${pl.trackCount} tracks)`);
});
}
}
displayUserPlaylists('user_123');
In about 30 lines of code, you have a working cross-platform playlist viewer. Try doing that with individual platform APIs — you'd need hundreds of lines just to handle authentication.
Here's a quick reference of the most commonly used developer music API endpoints:
| Endpoint | Method | Description |
|---|---|---|
/auth/connect | POST | Connect a user to a streaming service |
/playlists | GET | Retrieve user playlists |
/playlists/{id}/tracks | GET | Get tracks in a specific playlist |
/library | GET | Access a user's full music library |
/search | GET | Search for tracks, albums, or artists |
All endpoints follow REST conventions and return JSON. Pagination is handled through standard limit and offset parameters.
MusicAPI uses standard HTTP status codes. Here are the ones you'll encounter most often:
A solid error handling pattern looks like this:
async function apiCall(endpoint) {
const response = await fetch(`${BASE_URL}${endpoint}`, {
headers: { 'Authorization': `Bearer ${MUSICAPI_KEY}` }
});
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After') || 1;
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
return apiCall(endpoint);
}
if (!response.ok) {
const error = await response.json();
throw new Error(`MusicAPI error ${response.status}: ${error.message}`);
}
return response.json();
}
Now that you have the basics down, here are some ideas to explore:
MusicAPI takes the pain out of multi-platform music integration. With a single API key and a few lines of code, you can access user data across 12+ streaming services — no need to maintain separate integrations or wrestle with inconsistent data formats.
The developer music API is designed to get you from zero to production fast. Sign up for a free trial at musicapi.com, grab your API key, and start building.
Have questions or need help with your integration? Check out the full documentation or reach out to the MusicAPI team.