# Apple Music Album API. Send an album link or ID.

Tracklist with ISRCs, label and UPC. We handle the proxies, blocks and platform changes.

[Get API key](https://socialtap.dev/signup/?next=%2Fplayground%2F%3Fendpoint%3Dapplemusic.album)

## Apple Music Album API at a glance

Returns an Apple Music album, single or EP from its link or ID in any country's store, with every track's ISRC, the label, UPC and genres. It also has the credited artists, full-size cover, release date, copyright, Apple's editorial notes, audio formats, each track's length and preview, more releases by the artist and the album's other versions. Legacy iTunes links work too.

GET `/v1/applemusic/album`

[Read the API reference](https://socialtap.dev/docs/reference/applemusic/album/index.md)

- **1 credit** per request, $0.75–$1.97 per 1,000 requests
- **20 typed fields** null when unknown
- **`url`** is all it needs, e.g. `https://music.apple.com/us/album/lover/1468058165`
- **100 credits** free when you sign up, no card, so you can build before you spend

## Send one request. Get 20 fields back.

Copy the request in your language, or hand it to your agent. Sign up for an API key and your first 100 credits are free.

`$ npm install socialtap`

`url = https://music.apple.com/us/album/lover/1468058165`

[Open in playground](https://socialtap.dev/playground/?endpoint=applemusic.album)

cURL:

```shell
curl -G 'https://socialtap.dev/v1/applemusic/album' \
  --data-urlencode 'url=https://music.apple.com/us/album/lover/1468058165' \
  -H "x-api-key: $SOCIALTAP_API_KEY"
```

TypeScript SDK:

```typescript
import { SocialTap } from "socialtap";

const client = new SocialTap(); // apiKey defaults to process.env.SOCIALTAP_API_KEY

const res = await client.applemusic.album.get({ url: "https://music.apple.com/us/album/lover/1468058165" });
console.log(res.data);
console.log(res.credits.charged, res.meta.request_id);
```

Node.js (fetch):

```javascript
const params = new URLSearchParams({
  url: "https://music.apple.com/us/album/lover/1468058165",
});
const res = await fetch(`https://socialtap.dev/v1/applemusic/album?${params}`, {
  headers: { "x-api-key": process.env.SOCIALTAP_API_KEY ?? "" },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`);
const { data, meta } = body;
console.log(data, meta.credits_charged);
```

Python (requests):

```python
import os

import requests

res = requests.get(
    "https://socialtap.dev/v1/applemusic/album",
    params={"url": "https://music.apple.com/us/album/lover/1468058165"},
    headers={"x-api-key": os.environ["SOCIALTAP_API_KEY"]},
)
body = res.json()
if not res.ok:
    raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
data, meta = body["data"], body["meta"]
print(data, meta["credits_charged"])
```

Go (net/http):

```go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"net/url"
	"os"
)

func main() {
	q := url.Values{}
	q.Set("url", "https://music.apple.com/us/album/lover/1468058165")
	req, err := http.NewRequest("GET", "https://socialtap.dev/v1/applemusic/album?"+q.Encode(), nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("x-api-key", os.Getenv("SOCIALTAP_API_KEY"))
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()
	var body struct {
		Data  json.RawMessage `json:"data"`
		Meta  map[string]any  `json:"meta"`
		Error *struct {
			Code    string `json:"code"`
			Message string `json:"message"`
		} `json:"error"`
	}
	if err := json.NewDecoder(res.Body).Decode(&body); err != nil {
		log.Fatal(err)
	}
	if body.Error != nil {
		log.Fatalf("%s: %s", body.Error.Code, body.Error.Message)
	}
	fmt.Println(string(body.Data), body.Meta["credits_charged"])
}
```

200 OK:

```json
{
  "data": {
    "approximate_fields": [
      "released_at"
    ],
    "artist_name": "Taylor Swift",
    "artists": [
      {
        "avatar_url": "https://is1-ssl.mzstatic.com/image/thumb/AMCArtistImages221/v4/6d/67/88/6d67888b-9e7f-53af-7853-0f91d6fd2332/ami_U003aidentity_U003a994af5c375f4c3aa96cd6ced4a700799-2026-09-25T04-00-05.358Z_cropped.png/1640x1640bb.jpg",
        "display_name": "Taylor Swift",
        "id": "159260351",
        "is_verified": null,
        "url": "https://music.apple.com/us/artist/taylor-swift/159260351",
        "username": null
      }
    ],
    "copyrights": [
      {
        "text": "℗ 2019 Taylor Swift",
        "type": "p"
      }
    ],
    "cover_url": "https://is1-ssl.mzstatic.com/image/thumb/Music125/v4/49/3d/ab/493dab54-f920-9043-6181-80993b8116c9/19UMGIM53909.rgb.jpg/3900x3900bb.jpg",
    "description": "There’s a reason Taylor Swift sounds so confident and cool on Lover, her seventh album and the most free-spirited yet. She’s in love—pure, steady, starry-eyed, shout-it-from-the-rooftops love. Arriving 13 years after her eponymous debut album—and following a string of songs that …",
    "duration_ms": 3711368,
    "genres": [
      "Pop"
    ],
    "id": "1468058165",
    "is_explicit": false,
    "label": "Taylor Swift",
    "metrics": {
      "track_count": 18
    },
    "platform": "applemusic",
    "platform_specific": {
      "applemusic": {
        "audio_traits": [
          "atmos",
          "lossless",
          "lossy-stereo"
        ],
        "content_rating": null,
        "editorial_summary": "A love letter to love itself.",
        "is_complete": true,
        "is_mastered_for_itunes": true,
        "is_prerelease": false,
        "more_by_artist": [
          {
            "artist_name": "Taylor Swift",
            "cover_url": "https://is1-ssl.mzstatic.com/image/thumb/Music221/v4/eb/e6/06/ebe606da-e00f-82d3-47f3-b79904eed541/17UM1IM24651.rgb.jpg/6000x6000bb.jpg",
            "duration_ms": null,
            "id": "1440933849",
            "is_explicit": false,
            "kind": "album",
            "released_at": "2017-11-10T00:00:00Z",
            "title": "reputation",
            "track_count": 15,
            "url": "https://music.apple.com/us/album/reputation/1440933849"
          },
          {
            "artist_name": "Taylor Swift",
            "cover_url": "https://is1-ssl.mzstatic.com/image/thumb/Music221/v4/a4/86/59/a486593a-53c9-1c2a-5122-8f25339f7359/24UMGIM44778.rgb.jpg/3000x3000bb.jpg",
            "duration_ms": null,
            "id": "1742057774",
            "is_explicit": true,
            "kind": "album",
            "released_at": "2024-04-19T00:00:00Z",
            "title": "THE TORTURED POETS DEPARTMENT: THE ANTHOLOGY",
            "track_count": 31,
            "url": "https://music.apple.com/us/album/the-tortured-poets-department-the-anthology/1742057774"
          },
          {
            "artist_name": "Taylor Swift",
            "cover_url": "https://is1-ssl.mzstatic.com/image/thumb/Music115/v4/b5/80/dc/b580dca0-349d-036b-e09b-bd849f6affd8/20UMGIM64216.rgb.jpg/3000x3000bb.jpg",
            "duration_ms": null,
            "id": "1528112358",
            "is_explicit": true,
            "kind": "album",
            "released_at": "2020-07-24T00:00:00Z",
            "title": "folklore (deluxe version)",
            "track_count": 17,
            "url": "https://music.apple.com/us/album/folklore-deluxe-version/1528112358"
          }
        ],
        "other_versions": [],
        "rank": null,
        "storefront": "us"
      }
    },
    "released_at": "2019-08-23T00:00:00Z",
    "title": "Lover",
    "tracks": [
      {
        "artist_name": "Taylor Swift",
        "artists": [
          {
            "avatar_url": "https://is1-ssl.mzstatic.com/image/thumb/AMCArtistImages221/v4/6d/67/88/6d67888b-9e7f-53af-7853-0f91d6fd2332/ami_U003aidentity_U003a994af5c375f4c3aa96cd6ced4a700799-2026-09-25T04-00-05.358Z_cropped.png/1640x1640bb.jpg",
            "display_name": "Taylor Swift",
            "id": "159260351",
            "is_verified": null,
            "url": "https://music.apple.com/us/artist/taylor-swift/159260351",
            "username": null
          }
        ],
        "disc_number": 1,
        "duration_ms": 170651,
        "id": "1468058169",
        "is_explicit": false,
        "isrc": "USUG11901471",
        "metrics": {
          "view_count": null
        },
        "play_url": "https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview221/v4/9c/e2/97/9ce2976a-b1c8-aa80-3e94-f4562cbad53e/mzaf_13898706762824220632.plus.aac.ep.m4a",
        "title": "I Forgot That You Existed",
        "track_number": 1,
        "url": "https://music.apple.com/us/album/i-forgot-that-you-existed/1468058165?i=1468058169"
      },
      {
        "artist_name": "Taylor Swift",
        "artists": [
          {
            "avatar_url": "https://is1-ssl.mzstatic.com/image/thumb/AMCArtistImages221/v4/6d/67/88/6d67888b-9e7f-53af-7853-0f91d6fd2332/ami_U003aidentity_U003a994af5c375f4c3aa96cd6ced4a700799-2026-09-25T04-00-05.358Z_cropped.png/1640x1640bb.jpg",
            "display_name": "Taylor Swift",
            "id": "159260351",
            "is_verified": null,
            "url": "https://music.apple.com/us/artist/taylor-swift/159260351",
            "username": null
          }
        ],
        "disc_number": 1,
        "duration_ms": 178426,
        "id": "1468058171",
        "is_explicit": false,
        "isrc": "USUG11901472",
        "metrics": {
          "view_count": null
        },
        "play_url": "https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview221/v4/44/af/81/44af8168-9609-1b85-5048-ada08dceacf3/mzaf_5595361395314573470.plus.aac.ep.m4a",
        "title": "Cruel Summer",
        "track_number": 2,
        "url": "https://music.apple.com/us/album/cruel-summer/1468058165?i=1468058171"
      },
      {
        "artist_name": "Taylor Swift",
        "artists": [
          {
            "avatar_url": "https://is1-ssl.mzstatic.com/image/thumb/AMCArtistImages221/v4/6d/67/88/6d67888b-9e7f-53af-7853-0f91d6fd2332/ami_U003aidentity_U003a994af5c375f4c3aa96cd6ced4a700799-2026-09-25T04-00-05.358Z_cropped.png/1640x1640bb.jpg",
            "display_name": "Taylor Swift",
            "id": "159260351",
            "is_verified": null,
            "url": "https://music.apple.com/us/artist/taylor-swift/159260351",
            "username": null
          }
        ],
        "disc_number": 1,
        "duration_ms": 221300,
        "id": "1468058173",
        "is_explicit": false,
        "isrc": "USUG11901473",
        "metrics": {
          "view_count": null
        },
        "play_url": "https://audio-ssl.itunes.apple.com/itunes-assets/AudioPreview211/v4/e0/db/47/e0db47b0-7f70-0631-0414-cd4777d2fb3e/mzaf_6008069204816798831.plus.aac.ep.m4a",
        "title": "Lover",
        "track_number": 3,
        "url": "https://music.apple.com/us/album/lover/1468058165?i=1468058173"
      }
    ],
    "type": "album",
    "unknown_fields": [],
    "upc": "00602508005275",
    "url": "https://music.apple.com/us/album/lover/1468058165"
  },
  "meta": {
    "request_id": "req_3f9c2a7d1e8b4c6a9f0e2d4b6a8c0e1f",
    "platform": "applemusic",
    "source": "api",
    "is_cached": false,
    "credits_charged": 1,
    "latency_ms": 334,
    "fetched_at": "2026-10-25T12:00:00Z",
    "input": {
      "kind": "album",
      "id": "1468058165",
      "url": "https://music.apple.com/us/album/lover/1468058165"
    },
    "credits_remaining": 9999,
    "client_request_id": null,
    "warnings": []
  }
}
```

Long arrays and strings are shortened here. Real responses are complete.

## One schema on 2 platforms.

The [response reference](https://socialtap.dev/docs/reference/applemusic/album/index.md#response) lists every field, its type and when it is `null`. [See the full schema](https://socialtap.dev/resources/album/index.md).

- ### Null means unknown

  A field Apple Music doesn't show is null, never zero or an empty string, so a real zero always means zero.
- ### What it accepts

  The album: its link (music.apple.com/us/album/lover/1468058165), with or without the slug and the store, on music.apple.com, geo.music.apple.com or itunes.apple.com; or its ID alone (1468058165).
- ### Write one parser

  Apple Music and Spotify answer in these fields, so the code that reads one reads them all.

- **`platform`string**: Platform ID (applemusic, spotify, soundcloud, …).
- **`id`string**: Platform-native album ID (string), the one in its page's URL.
- **`url`string**: Canonical album page URL.
- **`type`string**: What kind of release it is, as the platform says: album, single, ep or compilation; null when the platform does not say. New values may be added; treat unknown values as album.
- **`title`string**: The release's title as the platform shows it (with an edition or a suffix like "- Single" where it writes one).
- **`description`string**: About the release, as plain text (the service's editorial notes, or what its uploader wrote); null when it has none or the platform shows none.
- **`artist_name`string**: Who the platform credits for the release, as one display string (it can name more people than have an account linked: artists holds the linked ones); null when the source does not name them.
- **`artists`object\[\]**: The platform accounts of the artists credited on the release, main artist first, in the platform's order; \[\] when none is linked, as on a Various Artists compilation (listed in unknown_fields when the source cannot see them).

Live data from 33 platforms.

[TikTok](https://socialtap.dev/apis/tiktok/index.md) · [Instagram](https://socialtap.dev/apis/instagram/index.md) · [Facebook](https://socialtap.dev/apis/facebook/index.md) · [YouTube](https://socialtap.dev/apis/youtube/index.md) · [Reddit](https://socialtap.dev/apis/reddit/index.md) · [Threads](https://socialtap.dev/apis/threads/index.md) · [Spotify](https://socialtap.dev/apis/spotify/index.md) · [Amazon](https://socialtap.dev/apis/amazon/index.md) · [Apple Music](https://socialtap.dev/apis/applemusic/index.md) · [Pinterest](https://socialtap.dev/apis/pinterest/index.md) · [Rumble](https://socialtap.dev/apis/rumble/index.md) · [X](https://socialtap.dev/apis/x/index.md) · [Bluesky](https://socialtap.dev/apis/bluesky/index.md) · [Twitch](https://socialtap.dev/apis/twitch/index.md) · [LinkedIn](https://socialtap.dev/apis/linkedin/index.md) · [Telegram](https://socialtap.dev/apis/telegram/index.md) · [TikTok Shop](https://socialtap.dev/apis/tiktokshop/index.md) · [Kwai](https://socialtap.dev/apis/kwai/index.md) · [Snapchat](https://socialtap.dev/apis/snapchat/index.md) · [SoundCloud](https://socialtap.dev/apis/soundcloud/index.md) · [Truth Social](https://socialtap.dev/apis/truthsocial/index.md) · [Kick](https://socialtap.dev/apis/kick/index.md) · [Komi](https://socialtap.dev/apis/komi/index.md) · [Lnk.Bio](https://socialtap.dev/apis/linkbio/index.md) · [Linkme](https://socialtap.dev/apis/linkme/index.md) · [Linktree](https://socialtap.dev/apis/linktree/index.md) · [Pillar](https://socialtap.dev/apis/pillar/index.md) · [TikTok Ad Library](https://socialtap.dev/apis/tiktok-ad-library/index.md) · [Facebook Ad Library](https://socialtap.dev/apis/facebook-ad-library/index.md) · [Facebook Events](https://socialtap.dev/apis/facebook-events/index.md) · [Facebook Marketplace](https://socialtap.dev/apis/facebook-marketplace/index.md) · [Google Ads Transparency Center](https://socialtap.dev/apis/google-ads-transparency/index.md) · [LinkedIn Ad Library](https://socialtap.dev/apis/linkedin-ad-library/index.md)

## What teams build with the Apple Music Album API.

- ### Turn an album link into UPC and tracklist
- ### Match releases across services by UPC
- ### Compare a tracklist across country stores
- ### Find an album's clean and explicit versions

## Good to know before you build.

- Stores differ: an album can be missing from one or list other tracks or have another language's title, and some releases have a different ID per store. The answer comes from the store in country, else the link's store, else us, and platform_specific.applemusic.storefront says which.
- metrics.track_count is the whole release as Apple states it. tracks holds fewer only when it is listed in approximate_fields: a box set too long to read whole, or one whose later pages failed (with a partial_data warning).
- duration_ms is the sum of the tracks, so it is null when tracks is partial or Apple states no length for one of them, as on a release not out yet.
- The ID of an edition Apple has replaced still answers, with the id and url of the current album its page shows.
- A compilation credited to Various Artists has that name in artist_name, in the store's language, and artists \[\], and each of its tracks names its own artists.
- released_at is the release date with no time, at midnight UTC, listed in approximate_fields. play_url is Apple's short preview, never the whole track, and tracks\[\].metrics.view_count is null because Apple Music shows no play counts.
- When Apple's catalog API fails, the answer comes from its public lookup API: label, upc, description, editorial_summary, is_complete, is_prerelease, is_mastered_for_itunes and tracks\[\].isrc are null, audio_traits, more_by_artist and other_versions are \[\], tracks can skip music videos and stops at the lookup's limit, and tracks\[\].artists is unknown (all listed in unknown_fields or approximate_fields).
- From the lookup API, type is null unless the title says single or EP, genres holds the main genre only, and a request with lang fails rather than answer in another language.

## 1 credit per request. Failed requests are free.

Buy credits once and spend them on any endpoint, on any platform.

[Plans and packs](https://socialtap.dev/pricing/index.md) · [How this endpoint is priced](https://socialtap.dev/docs/reference/applemusic/album/index.md#pricing) · [How credits work](https://socialtap.dev/docs/credits/index.md)

| Source | Price per successful request | Per 1,000 requests |
| --- | --- | --- |
| Platform API `api` | 1 credit | $0.75–$1.97 |

- Cache hits are free.
- Credits from packs and top-ups never expire.
- A monthly plan's credits are spent first, and what is left of them ends at each renewal.
- Prices exclude tax: sales tax is added at checkout where it applies.
- Outside the US, plans and packs are sold to businesses: checkout asks for your VAT, GST or other business tax ID.

## Questions about the Apple Music Album API.

More in the [API reference](https://socialtap.dev/docs/reference/applemusic/album/index.md).

**Does it return each track's ISRC?**

Yes. tracks\[\] has every track's ISRC, length and position, so you can match the release across services by its UPC and ISRCs.

**How much does the Apple Music Album API cost?**

A request costs 1 credit. SocialTap credits cost $0.75–$1.97 per 1,000, depending on the plan or pack.

Other platforms

## Albums on 1 more platform.

- [Spotify Album API](https://socialtap.dev/apis/spotify/album/index.md) (1 credit · `GET /v1/spotify/album`)

More Apple Music

## Apple Music API. 10 endpoints, one key.

- [Apple Music Track API](https://socialtap.dev/apis/applemusic/track/index.md) (1 credit · `GET /v1/applemusic/track`)
- [Apple Music Top Tracks API](https://socialtap.dev/apis/applemusic/top_tracks/index.md) (1 credit / page · `GET /v1/applemusic/top_tracks`)
- [Apple Music Track Search API](https://socialtap.dev/apis/applemusic/search_tracks/index.md) (1 credit / page · `GET /v1/applemusic/search_tracks`)
- [Apple Music Artist API](https://socialtap.dev/apis/applemusic/artist/index.md) (1 credit · `GET /v1/applemusic/artist`)
- [Apple Music Artist Search API](https://socialtap.dev/apis/applemusic/search_artists/index.md) (1 credit / page · `GET /v1/applemusic/search_artists`)
- [Apple Music Top Playlists API](https://socialtap.dev/apis/applemusic/top_playlists/index.md) (1 credit / page · `GET /v1/applemusic/top_playlists`)
- [Apple Music Playlist Search API](https://socialtap.dev/apis/applemusic/search_playlists/index.md) (1 credit / page · `GET /v1/applemusic/search_playlists`)
- [Apple Music Top Albums API](https://socialtap.dev/apis/applemusic/top_albums/index.md) (1 credit / page · `GET /v1/applemusic/top_albums`)
- [Apple Music Album Search API](https://socialtap.dev/apis/applemusic/search_albums/index.md) (1 credit / page · `GET /v1/applemusic/search_albums`)

## Try it on a link you already have.

Paste it in the playground, or copy the request into your code.

100free credits

- No credit card
- Failed requests are free
- Works on all 218 endpoints

[Start for free](https://socialtap.dev/signup/) [Read the docs](https://socialtap.dev/docs/index.md)

---

[HTML version](https://socialtap.dev/apis/applemusic/album/) · [Docs index for AI agents](https://socialtap.dev/llms.txt) · [All docs in one file](https://socialtap.dev/llms-full.txt)
