Spotify API: Get album
Gets a Spotify album by name (optionally with the artist), album link or album ID, with its details and ordered track list including play counts.
Unofficial. Not affiliated with or endorsed by Spotify.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Album, required
album Album name, Spotify album link or album ID, for example Abbey Road.
https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN
- Artist optional
artist Artist to identify the right album, for example The Beatles.
(default)
Input as JSON
{ "album": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN" }Output
{ "tracks": [ { "title": "Come Together - Remastered 2009", "length": "4:19", "explicit": false, "length_ms": 259946, "play_count": 1006109837, "disc_number": 1, "spotify_link": "https://open.spotify.com/track/2EqlS6tkEnglzr7tkKAAYD" , "track_number": 1, "featured_artists": [], "spotify_track_id": "2EqlS6tkEnglzr7tkKAAYD" }, { "title": "Something - Remastered 2009", "length": "3:02", "explicit": false, "length_ms": 182293, "play_count": 546612992, "disc_number": 1, "spotify_link": "https://open.spotify.com/track/0pNeVovbiZHkulpGeOx1Gj" , "track_number": 2, "featured_artists": [], "spotify_track_id": "0pNeVovbiZHkulpGeOx1Gj" }, { "title": "Maxwell's Silver Hammer - Remastered 2009", "length": "3:27", "explicit": false, "length_ms": 207920, "play_count": 69306398, "disc_number": 1, "spotify_link": "https://open.spotify.com/track/2S8xyNRJX1XQdo3qnTuovI" , "track_number": 3, "featured_artists": [], "spotify_track_id": "2S8xyNRJX1XQdo3qnTuovI" } ], "artists": [ "The Beatles" ], "copyright": "© 2015 Apple Corps Ltd | ℗ 2015 Calderstone Productions Limited (a division of Universal Music Group)", "album_name": "Abbey Road (Remastered 2009)", "album_type": "album", "record_label": "EMI Catalogue", "release_date": "1969-09-26", "spotify_link": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN" , "total_length": "47 min 29 s", "cover_image_link": "https://i.scdn.co/image/ab67616d0000b273dc30583ba717007b00cceb25" , "number_of_tracks": 17, "spotify_album_id": "0ETFjACtuP2ADo6LFhL6HN"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"open.spotify.com/get_album","input":{"album":"https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "open.spotify.com/get_album" , "input": { "album": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "open.spotify.com/get_album" , "input": { "album": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run open.spotify.com/get_album# with {"album":"https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "album" ], "properties": { "album": { "type": "string", "description": "Album name, Spotify album link or album ID, for example Abbey Road." }, "artist": { "type": "string", "default": "", "description": "Artist to identify the right album, for example The Beatles." } }}Output schema
{ "type": "object", "required": [ "album_name", "artists", "release_date", "album_type", "number_of_tracks", "total_length", "record_label", "copyright", "cover_image_link", "spotify_link", "tracks", "spotify_album_id" ], "properties": { "tracks": { "type": "array", "items": { "type": "object", "required": [ "track_number", "disc_number", "title", "featured_artists", "length", "play_count", "explicit", "spotify_link", "spotify_track_id", "length_ms" ], "properties": { "title": { "type": "string", "description": "Track title." }, "length": { "type": "string", "description": "Track length in m:ss." }, "explicit": { "type": "boolean", "description": "Whether Spotify marks the track explicit." }, "length_ms": { "type": "integer", "description": "Track length in milliseconds.", "x-fous-developer": true }, "play_count": { "type": [ "integer", "null" ], "description": "Public Spotify play count, or null if unavailable." }, "disc_number": { "type": "integer", "description": "Disc number." }, "spotify_link": { "type": "string", "description": "Spotify track page link." }, "track_number": { "type": "integer", "description": "Track number within its disc." }, "featured_artists": { "type": "array", "items": { "type": "string" }, "description": "Track artists who are not credited as album artists." }, "spotify_track_id": { "type": "string", "description": "Spotify track ID.", "x-fous-developer": true } }, "additionalProperties": false }, "description": "All album tracks in disc and track order." }, "artists": { "type": "array", "items": { "type": "string" }, "description": "Album artists." }, "copyright": { "type": [ "string", "null" ], "description": "Copyright credits, or null if not listed." }, "album_name": { "type": [ "string", "null" ], "description": "Album title." }, "album_type": { "type": [ "string", "null" ], "description": "Album, single or compilation." }, "record_label": { "type": [ "string", "null" ], "description": "Record label, or null if not provided." }, "release_date": { "type": [ "string", "null" ], "description": "Release date in YYYY-MM-DD, or null if not listed." }, "spotify_link": { "type": [ "string", "null" ], "description": "Spotify album page link." }, "total_length": { "type": [ "string", "null" ], "description": "Total running time as text." }, "cover_image_link": { "type": [ "string", "null" ], "description": "Spotify cover image link." }, "number_of_tracks": { "type": [ "integer", "null" ], "description": "Total tracks across all discs." }, "spotify_album_id": { "type": [ "string", "null" ], "description": "Spotify album ID.", "x-fous-developer": true } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
open.spotify.com/get_album- Returns
- album name, artists, release date, type, label, copyright, cover, total length, tracks with featured artists, lengths, play counts, explicit flags
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method open.spotify.com/get_album with the inputs above.
Ask your agent
- Show me the full tracklist for Rumours by Fleetwood Mac with stream counts for each song
- Which song on Kendrick Lamar's GNX has the most plays on Spotify?
- Pull up the details for this album: https://open.spotify.com/album/4LH4d3cOWNNsVw41Gqt2kv — label, release date, and total runtime
- What record label put out SOS by SZA, and which tracks on it are marked explicit?
- Get the Spotify album 1NAmidJlEaVgA3MpcPFYGq with all its songs, featured artists and track lengths
See more
All Spotify methodsFinds a Spotify song by title (optionally narrowed by artist), track link, URI or track ID and returns its public play count and details. Without an artist, the most-played exact title match wins. Previews and ISRC may be unavailable for some tracks.
open.spotify.com/get_songGets a Spotify artist's public profile from their name, artist link or ID: listeners, followers, world rank, top cities, popular tracks, latest release and release counts.
open.spotify.com/get_artistSearches Spotify for songs, artists, albums, playlists or podcasts by keywords and returns them in Spotify's result order. Songs and albums include a release date when Spotify gives a full date.
spotify.com/search_musicLists Spotify's top or trending podcasts for a country in chart order, with rank, movement, publisher, artwork and Spotify link. Category charts exist only for some countries.
open.spotify.com/list_top_podcastsLooks up a Deezer album by name, album link, or ID, optionally matching an artist, and returns its details and ordered tracklist.
deezer.com/get_albumFinds an Apple Music album by title and optional artist, or by album link, and returns its matched release, purchase details and tracks in order.
music.apple.com/get_albumGets a Bandcamp album by title and optional artist, or by album link, with prices, physical formats, tracks and album details. Supporter count covers only profiles shown on the page; copies left is given only when displayed.
bandcamp.com/get_albumFinds Pitchfork's newest review that matches an album title and artist, and returns the review's rating and details.
pitchfork.com/get_album_review