# Spotify API

> Spotify returns artist, song, album, playlist, search, and podcast chart data as a workflow and API.

Spotify’s Get artist returns profile, audience, and popular track details; provide an artist name, link, or ID. Get album and Get song return album or song details and public play counts; provide a title, link, or ID, optionally with an artist.

- Page: https://fous.com/workflows/spotify
- Handle: `@spotify`
- Category: [Entertainment](https://fous.com/workflows/category/entertainment)
- Source website: https://open.spotify.com
- Last verified: Sep 29, 2026
- Fous is not affiliated with Spotify.

## Methods

### Get album

Operation `get_album`, version 1. 1 credit per call.

Get a Spotify album by name, optionally choosing the artist, or by Spotify album link or ID. Includes credits and ordered tracks with public play counts.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `album` | string | yes | `"https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"` | Album name, Spotify album link or album ID, for example Abbey Road. |
| `artist` | string | no | `"The Beatles"` | Artist to identify the right album, for example The Beatles. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "album"
  ],
  "properties": {
    "album": {
      "type": "string",
      "description": "Album name, Spotify album link or album ID, for example Abbey Road.",
      "examples": [
        "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN",
        "Abbey Road",
        "Rumours"
      ]
    },
    "artist": {
      "type": "string",
      "default": "",
      "description": "Artist to identify the right album, for example The Beatles.",
      "examples": [
        "The Beatles",
        "Fleetwood Mac"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "album": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"
    },
    {
      "album": "Abbey Road",
      "artist": "The Beatles"
    },
    {
      "album": "Rumours",
      "artist": "Fleetwood Mac"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `tracks` | array |  | All album tracks in disc and track order. |
| `tracks[].title` | string | `"Come Together - Remastered 2009"` | Track title. |
| `tracks[].length` | string | `"4:19"` | Track length in m:ss. |
| `tracks[].explicit` | boolean | `false` | Whether Spotify marks the track explicit. |
| `tracks[].length_ms` | integer | `259946` | Track length in milliseconds. |
| `tracks[].play_count` | integer or null | `1000879986` | Public Spotify play count, or null if unavailable. |
| `tracks[].disc_number` | integer | `1` | Disc number. |
| `tracks[].spotify_link` | string | `"https://open.spotify.com/track/2EqlS6tkEnglzr7tkKAAYD"` | Spotify track page link. |
| `tracks[].track_number` | integer | `1` | Track number within its disc. |
| `tracks[].featured_artists` | array |  | Track artists who are not credited as album artists. |
| `tracks[].spotify_track_id` | string | `"2EqlS6tkEnglzr7tkKAAYD"` | Spotify track ID. |
| `artists` | array |  | Album artists. |
| `copyright` | string or null | `"© 2015 Apple Corps Ltd \| ℗ 2015 Calderstone Productions Limited (a division of Universal Music Group)"` | Copyright credits, or null if not listed. |
| `album_name` | string | `"Abbey Road (Remastered)"` | Album title. |
| `album_type` | string | `"album"` | Album, single or compilation. |
| `record_label` | string or null | `"EMI Catalogue"` | Record label, or null if not provided. |
| `release_date` | string or null | `"1969-09-26"` | Release date in YYYY-MM-DD, or null if not listed. |
| `spotify_link` | string | `"https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"` | Spotify album page link. |
| `total_length` | string | `"47 min 29 s"` | Total running time as text. |
| `cover_image_link` | string or null | `"https://i.scdn.co/image/ab67616d0000b273dc30583ba717007b00cceb25"` | Spotify cover image link. |
| `number_of_tracks` | integer | `17` | Total tracks across all discs. |
| `spotify_album_id` | string | `"0ETFjACtuP2ADo6LFhL6HN"` | Spotify album ID. |

**Example input**

```json
{
  "album": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"
}
```

**Example output**

```json
{
  "tracks": [
    {
      "title": "Come Together - Remastered 2009",
      "length": "4:19",
      "explicit": false,
      "length_ms": 259946,
      "play_count": 1000879986,
      "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": 542693967,
      "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": 68961874,
      "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)",
  "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"
}
```

### Get artist

Operation `get_artist`, version 1. 1 credit per call.

Get a Spotify artist’s public profile from their name, artist link, or ID. Genres are empty when they are not shown on the public player.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `artist` | string | yes | `"Taylor Swift"` | Artist name, Spotify artist link, or artist ID, for example Taylor Swift. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "artist"
  ],
  "properties": {
    "artist": {
      "type": "string",
      "description": "Artist name, Spotify artist link, or artist ID, for example Taylor Swift.",
      "examples": [
        "Taylor Swift",
        "https://open.spotify.com/artist/1Xyo4u8uXC1ZmMpatF05PJ"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "artist": "Taylor Swift"
    },
    {
      "artist": "https://open.spotify.com/artist/1Xyo4u8uXC1ZmMpatF05PJ"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `genres` | array |  |  |
| `verified` | boolean | `true` |  |
| `artist_id` | string | `"06HL4z0CvFAxyc27GXpf02"` |  |
| `followers` | integer or null | `164819635` |  |
| `top_cities` | array |  |  |
| `top_cities[].city` | string or null | `"London"` |  |
| `top_cities[].country` | string or null | `"United Kingdom"` |  |
| `top_cities[].listeners` | integer or null | `1631243` |  |
| `world_rank` | integer or null | `5` |  |
| `album_count` | integer or null | `34` |  |
| `artist_name` | string | `"Taylor Swift"` |  |
| `single_count` | integer or null | `80` |  |
| `spotify_link` | string | `"https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02"` |  |
| `latest_release` | any |  |  |
| `popular_tracks` | array |  |  |
| `popular_tracks[].album` | string or null | `"The Life of a Showgirl"` |  |
| `popular_tracks[].title` | string or null | `"The Fate of Ophelia"` |  |
| `popular_tracks[].length` | string or null | `"3:46"` |  |
| `popular_tracks[].track_id` | string or null | `"53iuhJlwXhSER5J2IYYv1W"` |  |
| `popular_tracks[].length_ms` | integer or null | `226073` |  |
| `popular_tracks[].play_count` | integer or null | `1694932432` |  |
| `popular_tracks[].spotify_link` | string or null | `"https://open.spotify.com/track/53iuhJlwXhSER5J2IYYv1W"` |  |
| `artist_image_link` | string or null | `"https://i.scdn.co/image/ab6761610000e5eb12184bdd29403de54cb9d9c7"` |  |
| `monthly_listeners` | integer or null | `103505973` |  |

**Example input**

```json
{
  "artist": "Taylor Swift"
}
```

**Example output**

```json
{
  "genres": [],
  "verified": true,
  "artist_id": "06HL4z0CvFAxyc27GXpf02",
  "followers": 164819635,
  "top_cities": [
    {
      "city": "London",
      "country": "United Kingdom",
      "listeners": 1631243
    },
    {
      "city": "Quezon City",
      "country": "Philippines",
      "listeners": 1482580
    },
    {
      "city": "São Paulo",
      "country": "Brazil",
      "listeners": 1165479
    }
  ],
  "world_rank": 5,
  "album_count": 34,
  "artist_name": "Taylor Swift",
  "single_count": 80,
  "spotify_link": "https://open.spotify.com/artist/06HL4z0CvFAxyc27GXpf02",
  "latest_release": {
    "type": "Album",
    "title": "The Life of a Showgirl: The Encore",
    "release_date": "2026-09-25",
    "spotify_link": "https://open.spotify.com/album/4hF2gTGuPYlykYuphDxi8J"
  },
  "popular_tracks": [
    {
      "album": "The Life of a Showgirl",
      "title": "The Fate of Ophelia",
      "length": "3:46",
      "track_id": "53iuhJlwXhSER5J2IYYv1W",
      "length_ms": 226073,
      "play_count": 1694932432,
      "spotify_link": "https://open.spotify.com/track/53iuhJlwXhSER5J2IYYv1W"
    },
    {
      "album": "1989",
      "title": "Blank Space",
      "length": "3:51",
      "track_id": "1p80LdxRV74UKvL8gnD7ky",
      "length_ms": 231826,
      "play_count": 2614612868,
      "spotify_link": "https://open.spotify.com/track/1p80LdxRV74UKvL8gnD7ky"
    },
    {
      "album": "The Life of a Showgirl",
      "title": "Opalite",
      "length": "3:55",
      "track_id": "3yWuTOYDztXjZxdE2cIRUa",
      "length_ms": 235355,
      "play_count": 889991339,
      "spotify_link": "https://open.spotify.com/track/3yWuTOYDztXjZxdE2cIRUa"
    }
  ],
  "artist_image_link": "https://i.scdn.co/image/ab6761610000e5eb12184bdd29403de54cb9d9c7",
  "monthly_listeners": 103505973
}
```

### Get playlist

Operation `get_playlist`, version 1. 1 credit per call.

Get the songs and public details of a Spotify playlist by name or link. Returns up to 500 songs in playlist order.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `playlist` | string | yes | `"https://open.spotify.com/playlist/37i9dQZF1DWWQRwui0ExPn"` | A public playlist name or Spotify playlist link, for example RapCaviar or https://open.spotify.com/playlist/37i9dQZF1DX0XUsuxWHRQd. |
| `max_songs` | integer | no | `120` | Maximum songs to include, for example 100 (up to 500). |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "playlist"
  ],
  "properties": {
    "playlist": {
      "type": "string",
      "description": "A public playlist name or Spotify playlist link, for example RapCaviar or https://open.spotify.com/playlist/37i9dQZF1DX0XUsuxWHRQd.",
      "examples": [
        "https://open.spotify.com/playlist/37i9dQZF1DWWQRwui0ExPn",
        "RapCaviar"
      ]
    },
    "max_songs": {
      "type": "integer",
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "description": "Maximum songs to include, for example 100 (up to 500).",
      "x-fous-developer": true,
      "examples": [
        120
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "playlist": "https://open.spotify.com/playlist/37i9dQZF1DWWQRwui0ExPn",
      "max_songs": 120
    },
    {
      "playlist": "RapCaviar"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `owner` | string or null |  |  |
| `songs` | array |  |  |
| `songs[].album` | string or null |  |  |
| `songs[].title` | string or null |  |  |
| `songs[].length` | string or null |  |  |
| `songs[].artists` | string or null |  |  |
| `songs[].position` | integer |  |  |
| `songs[].track_id` | string or null |  |  |
| `songs[].song_link` | string or null |  |  |
| `songs[].date_added` | string or null |  | Date added, YYYY-MM-DD when available. |
| `followers` | integer or null |  |  |
| `description` | string or null |  |  |
| `playlist_id` | string |  |  |
| `spotify_link` | string |  |  |
| `total_length` | string or null |  | Total duration of all songs in the playlist when available. |
| `playlist_name` | string |  |  |
| `number_of_songs` | integer |  |  |
| `cover_image_link` | string or null |  |  |

### Get song

Operation `get_song`, version 1. 1 credit per call.

Find a Spotify song by title, track link, or ID and return its public play count and details. Previews and ISRC may be unavailable for some tracks.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `song` | string | yes | `"https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"` | Song title, Spotify track link, or track ID, for example Blinding Lights or https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b. |
| `artist` | string | no | `"The Weeknd"` | Artist name to identify the song, for example The Weeknd. Omit to use the most-played matching track. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "song"
  ],
  "properties": {
    "song": {
      "type": "string",
      "description": "Song title, Spotify track link, or track ID, for example Blinding Lights or https://open.spotify.com/track/0VjIjW4GlUZAMYd2vXMi3b.",
      "examples": [
        "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp",
        "Blinding Lights"
      ]
    },
    "artist": {
      "type": "string",
      "default": "",
      "description": "Artist name to identify the song, for example The Weeknd. Omit to use the most-played matching track.",
      "examples": [
        "The Weeknd"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "song": "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"
    },
    {
      "song": "Blinding Lights",
      "artist": "The Weeknd"
    },
    {
      "song": "Blinding Lights"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `album` | string or null | `"Hot Fuss"` | Album name. |
| `title` | string | `"Mr. Brightside"` | Song title. |
| `length` | string | `"3:42"` | Track length (m:ss). |
| `artists` | array |  | Performing artists. |
| `explicit` | string | `"no"` | Whether the track is marked explicit: yes or no. |
| `isrc_code` | string or null | `"GBFFP0300052"` | International Standard Recording Code. |
| `length_ms` | integer or null | `222200` | Track length in milliseconds. |
| `play_count` | integer or null | `3499759361` | Spotify track play count. |
| `preview_link` | string or null | `"https://p.scdn.co/mp3-preview/848b1bd5544e82f62f9cfcec65362d0f5369781f"` | 30-second preview link, if provided. |
| `release_date` | string or null | `"2004-06-15"` | Album release date (YYYY-MM-DD). |
| `spotify_link` | string | `"https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"` | Spotify track page link. |
| `track_number` | integer or null | `2` | Track number on the album. |
| `cover_image_link` | string or null | `"https://i.scdn.co/image/ab67616d0000b2739c284a6855f4945dc5a3cd73"` | Cover image link. |
| `spotify_track_id` | string | `"3n3Ppam7vgaVa1iaRUc9Lp"` | Spotify track ID. |

**Example input**

```json
{
  "song": "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp"
}
```

**Example output**

```json
{
  "album": "Hot Fuss",
  "title": "Mr. Brightside",
  "length": "3:42",
  "artists": [
    "The Killers"
  ],
  "explicit": "no",
  "isrc_code": "GBFFP0300052",
  "length_ms": 222200,
  "play_count": 3499759361,
  "preview_link": "https://p.scdn.co/mp3-preview/848b1bd5544e82f62f9cfcec65362d0f5369781f",
  "release_date": "2004-06-15",
  "spotify_link": "https://open.spotify.com/track/3n3Ppam7vgaVa1iaRUc9Lp",
  "track_number": 2,
  "cover_image_link": "https://i.scdn.co/image/ab67616d0000b2739c284a6855f4945dc5a3cd73",
  "spotify_track_id": "3n3Ppam7vgaVa1iaRUc9Lp"
}
```

### List top podcasts

Operation `list_top_podcasts`, version 1. 1 credit per call.

List top or trending podcasts in a country, in chart order, with rank, movement, publisher, artwork and Spotify link. Category charts are available in selected countries only. Spotify supplies movement direction but not the number of places moved, so that count is unavailable for moves.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `chart` | string | no | `"top_podcasts"` | Top podcasts or trending podcasts; for example, trending. Defaults to top_podcasts. |
| `country` | string | no | `"United States"` | Country name or two-letter code, such as United States or US. Defaults to United States. |
| `category` | string | no | `"Comedy"` | Top podcast category, such as Comedy, True Crime, or Business. Use all for the overall chart. Only applies to top_podcasts. |
| `max_results` | integer | no | `5` | Maximum podcasts to return, from 1 to 50; for example, 10. Defaults to 50. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "chart": {
      "enum": [
        "top_podcasts",
        "trending"
      ],
      "type": "string",
      "default": "top_podcasts",
      "description": "Top podcasts or trending podcasts; for example, trending. Defaults to top_podcasts.",
      "examples": [
        "top_podcasts",
        "trending"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code, such as United States or US. Defaults to United States.",
      "examples": [
        "United States",
        "United Kingdom",
        "Australia"
      ]
    },
    "category": {
      "type": "string",
      "default": "all",
      "description": "Top podcast category, such as Comedy, True Crime, or Business. Use all for the overall chart. Only applies to top_podcasts.",
      "examples": [
        "Comedy",
        "True Crime"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum podcasts to return, from 1 to 50; for example, 10. Defaults to 50.",
      "x-fous-developer": true,
      "examples": [
        5,
        3,
        4
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "chart": "top_podcasts",
      "country": "United States",
      "category": "Comedy",
      "max_results": 5
    },
    {
      "chart": "trending",
      "country": "United Kingdom",
      "max_results": 3
    },
    {
      "country": "Australia",
      "category": "True Crime",
      "max_results": 4
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `podcasts` | array |  | Podcasts in chart order. |
| `podcasts[].rank` | integer | `1` |  |
| `podcasts[].movement` | string | `"same"` |  |
| `podcasts[].publisher` | string or null | `"Joe Rogan"` |  |
| `podcasts[].spotify_url` | string | `"https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk"` |  |
| `podcasts[].places_moved` | integer or null | `0` | Zero when unchanged; null if the chart does not publish a number. |
| `podcasts[].podcast_name` | string | `"The Joe Rogan Experience"` |  |
| `podcasts[].cover_image_url` | string or null | `"https://i.scdn.co/image/ab67656300005f1fa5906ae450ffdace2b4bac41"` |  |

**Example input**

```json
{
  "chart": "top_podcasts",
  "country": "United States",
  "category": "Comedy",
  "max_results": 5
}
```

**Example output**

```json
{
  "podcasts": [
    {
      "rank": 1,
      "movement": "same",
      "publisher": "Joe Rogan",
      "spotify_url": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk",
      "places_moved": 0,
      "podcast_name": "The Joe Rogan Experience",
      "cover_image_url": "https://i.scdn.co/image/ab67656300005f1fa5906ae450ffdace2b4bac41"
    },
    {
      "rank": 2,
      "movement": "same",
      "publisher": "Theo Von",
      "spotify_url": "https://open.spotify.com/show/6PwE1CIZsgfrhX6Bw96PUN",
      "places_moved": 0,
      "podcast_name": "This Past Weekend w/ Theo Von",
      "cover_image_url": "https://i.scdn.co/image/ab67656300005f1f3c4685e830e0ce8b0597e6aa"
    },
    {
      "rank": 3,
      "movement": "same",
      "publisher": "The Ringer",
      "spotify_url": "https://open.spotify.com/show/1z20EiwuKoDiftKxMVLde1",
      "places_moved": 0,
      "podcast_name": "Good Hang with Amy Poehler",
      "cover_image_url": "https://i.scdn.co/image/ab67656300005f1faee1957f2176b367c36be8e6"
    }
  ]
}
```

### Search music

Operation `search_music`, version 1. 1 credit per call.

Search Spotify for songs, artists, albums, playlists, or podcasts by keywords, in Spotify’s result order. Release dates are included when Spotify gives a full date; country preferences may be limited by Spotify’s anonymous visitor region.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `type` | string | no | `"playlists"` | Kind of result, such as songs. |
| `query` | string | yes | `"lofi study"` | Words to search for, such as Adele Hello. |
| `country` | string | no | `"United States"` | Country name or two-letter code, such as United States or GB. |
| `max_results` | integer | no | `12` | Maximum number of results, such as 10. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "songs",
        "artists",
        "albums",
        "playlists",
        "podcasts"
      ],
      "type": "string",
      "default": "songs",
      "description": "Kind of result, such as songs.",
      "examples": [
        "playlists",
        "songs",
        "albums"
      ]
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Words to search for, such as Adele Hello.",
      "examples": [
        "lofi study",
        "Adele Hello",
        "Adele"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country name or two-letter code, such as United States or GB.",
      "examples": [
        "United States"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum number of results, such as 10.",
      "x-fous-developer": true,
      "examples": [
        12,
        10,
        5
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "type": "playlists",
      "query": "lofi study",
      "max_results": 12
    },
    {
      "type": "songs",
      "query": "Adele Hello",
      "country": "United States",
      "max_results": 10
    },
    {
      "type": "albums",
      "query": "Adele",
      "max_results": 10
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `results` | array |  | Matches in Spotify search order. |
| `results[].name` | string | `"chill lofi study beats"` | Result title. |
| `results[].type` | string | `"playlist"` | Kind of Spotify item. |
| `results[].album` | string or null | `"25"` | Album title for a song. |
| `results[].owner` | string or null | `"Spotify"` | Playlist owner. |
| `results[].length` | string or null | `"4:55"` | Song duration in m:ss. |
| `results[].artists` | string or null | `"Adele"` | Artist names for songs and albums. |
| `results[].publisher` | string or null | `"Spotify Studios"` | Podcast publisher. |
| `results[].image_link` | string or null | `"https://i.scdn.co/image/ab67706f000000021498ddc160581579f9b55979"` | Cover or artist image link. |
| `results[].spotify_id` | string | `"37i9dQZF1DX8Uebhn9wzrS"` | Spotify item ID. |
| `results[].release_date` | string or null | `"2015-11-20"` | Full song or album release date, when available. |
| `results[].spotify_link` | string | `"https://open.spotify.com/playlist/37i9dQZF1DX8Uebhn9wzrS"` | Spotify page for this item. |

**Example input**

```json
{
  "type": "playlists",
  "query": "lofi study",
  "max_results": 12
}
```

**Example output**

```json
{
  "results": [
    {
      "name": "chill lofi study beats",
      "type": "playlist",
      "album": null,
      "owner": "Spotify",
      "length": null,
      "artists": null,
      "publisher": null,
      "image_link": "https://i.scdn.co/image/ab67706f000000021498ddc160581579f9b55979",
      "spotify_id": "37i9dQZF1DX8Uebhn9wzrS",
      "release_date": null,
      "spotify_link": "https://open.spotify.com/playlist/37i9dQZF1DX8Uebhn9wzrS"
    },
    {
      "name": "Lofi Study 2026",
      "type": "playlist",
      "album": null,
      "owner": "Lofi Girl",
      "length": null,
      "artists": null,
      "publisher": null,
      "image_link": "https://image-cdn-fa.spotifycdn.com/image/ab67706c0000da84e8fcb214bcd7d054018d9fe4",
      "spotify_id": "6zCID88oNjNv9zx6puDHKj",
      "release_date": null,
      "spotify_link": "https://open.spotify.com/playlist/6zCID88oNjNv9zx6puDHKj"
    },
    {
      "name": "lofi autumn beats 🍁🍂",
      "type": "playlist",
      "album": null,
      "owner": "Spotify",
      "length": null,
      "artists": null,
      "publisher": null,
      "image_link": "https://i.scdn.co/image/ab67706f00000002409a98a40d38e6c16f39d796",
      "spotify_id": "37i9dQZF1DX9O8HCSWScgZ",
      "release_date": null,
      "spotify_link": "https://open.spotify.com/playlist/37i9dQZF1DX9O8HCSWScgZ"
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@spotify",
  "visibility": "public",
  "operation": "get_album",
  "version": 1,
  "input": {
    "album": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@spotify\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_album\",\n  \"version\": 1,\n  \"input\": {\n    \"album\": \"https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@spotify",
  "visibility": "public",
  "operation": "get_album",
  "version": 1,
  "input": {
    "album": "https://open.spotify.com/album/0ETFjACtuP2ADo6LFhL6HN"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@spotify","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Compare artist follower counts and monthly listeners.
- Review public play counts for songs and albums.
- Track songs in playlist order.
- Find music and podcasts by keyword.
- Monitor top or trending podcast charts by country.

## FAQ

### Is Fous affiliated with Spotify?

No. Fous is not affiliated with Spotify. This workflow reads the public open.spotify.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a Spotify account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from open.spotify.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### How many monthly listeners does an artist have?

Get artist returns an artist’s monthly listeners when you provide their name, Spotify link, or ID.

### What is a song’s public play count?

Get song returns a song’s public play count when you provide its title, Spotify track link, or ID.

### Which podcasts are trending in a country?

List top podcasts returns trending podcasts in chart order for a selected country.

## Related

- [Apple Podcasts API](https://fous.com/workflows/apple-podcasts.md): Apple Podcasts returns chart listings, relevant show search results, show details with newest available episodes, and country-specific ratings and reviews; results are capped, and older or subscription episodes may be unavailable.
- [Deezer API](https://fous.com/workflows/deezer.md): Deezer provides albums with ordered tracklists, song recording details, and current worldwide charts or official country-playlist tracks; previews and some tempo data may be unavailable or expire.
- [Apple Music API](https://fous.com/workflows/apple-music.md): Apple Music returns albums, tracks, artist profiles, latest releases, top music, matching songs, and current charts; prices, previews, and older albums may be unavailable.
- [Last.fm API](https://fous.com/workflows/last-fm.md): Last.fm provides listening statistics, artist profiles, discovery, up to 50 tracks or albums, similar artists without percentages, and upcoming events that may be absent.
- [SoundCloud API](https://fous.com/workflows/soundcloud.md): SoundCloud lets people listen to and share music, find public tracks with play stats, and browse artists’ tracks, with popular lists limited to 30.
- [Genius API](https://fous.com/workflows/genius.md): Genius provides lyrics, annotations, credits, and music knowledge, plus song stories, relationships, page details, and artist song lists by popularity or release date; dates and views may be unavailable.
- [Kworb API](https://fous.com/workflows/kworb.md): Kworb provides published Spotify and YouTube music charts and tracked artist streaming totals; chart dates may lag, and daily streams or some views may be unavailable.
- [Bandcamp API](https://fous.com/workflows/bandcamp.md): Bandcamp provides music albums and merchandise from artists and labels, with album details and prices and genre releases ordered by best-selling or new arrivals; availability details appear only when shown.
- [All Entertainment workflows](https://fous.com/workflows/category/entertainment)
