Spotify API endpoint
Returns Spotify playlist metadata and items. Provide either uri or id; defaults to a known public playlist when omitted.
/spotify/playlistMCP tool: spotify_playlist
Path/query/body parameters:
uri query string, optional. Spotify playlist URI or open.spotify.com playlist URL.id query string, optional. Spotify playlist ID. Used when uri is omitted.offset query integer, optional. Playlist item offset. Defaults to 0.limit query integer, optional. Playlist item limit, clamped to 1-50. Defaults to 25.enable_watch_feed_entrypoint query boolean, optional. Enables Spotify watch feed entrypoint.include_episode_content_ratings_v2 query boolean, optional. Includes Spotify episode content ratings v2 when requested.Notable response behavior:
uri and id are omitted, a known public playlist is used.data.items, with track and episode subsets in data.tracks and data.episodes.| Field | Filled in, of 25 checked | Values in the sample |
|---|---|---|
| uri | 25 | “spotify:track:7yi7r8GxBX82iwVet5VBG5” and 24 other values |
| type | 25 | Track in all 25 |
| title | 25 | “寂寞圓舞” and 24 other values |
| imageUrl | 25 | i.scdn.co |
| images | 25 | median 3 entries |
| externalUrl | 25 | open.spotify.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| uri | string | No | Spotify playlist URI or open.spotify.com playlist URL | spotify:playlist:37i9dQZEVXbLwpL8TjsxOG | |
| id | string | No | Spotify playlist ID. Used when uri is omitted | 37i9dQZEVXbLwpL8TjsxOG | |
| offset | integer | No | Playlist item offset | 0 | |
| limit | integer | No | Playlist item limit, clamped to 1-50 | 25 | |
| enable_watch_feed_entrypoint | boolean | No | Enable watch feed entrypoint | false | |
| include_episode_content_ratings_v2 | boolean | No | Include Spotify episode content ratings v2 | false | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/spotify/playlist?limit=10&enable_watch_feed_entrypoint=true&include_episode_content_ratings_v2=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"uri": "spotify:playlist:37i9dQZEVXbLwpL8TjsxOG",
"id": "37i9dQZEVXbLwpL8TjsxOG",
"type": "Playlist",
"name": "Example Playlist",
"offset": 0,
"limit": 25,
"items": [
{
"uri": "spotify:track:example",
"type": "Track",
"title": "Example Track",
"externalUrl": "https://open.spotify.com/track/example"
}
],
"meta": {
"operationName": "fetchPlaylist",
"itemCount": 1,
"trackCount": 1,
"fetchedAt": "2026-05-13T15:22:41Z"
}
}
}Request schema
No body schema
Response schema
#/definitions/spotify.playlistResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | spotify.PlaylistResponse | No | ||||
| data.collaborative | boolean | No | false | Whether the playlist is collaborative. | ||
| data.description | string | No | Your daily update of the most played tracks right now. | Description text of the playlist. | ||
| data.episodes | array | No | The podcast episode entries among the returned items. | |||
| data.episodes[].description | string | No | The official podcast of comedian Joe Rogan. | Description text of the result. | ||
| data.episodes[].externalUrl | string | No | https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk | Link to the result on open.spotify.com. | ||
| data.episodes[].imageUrl | string | No | https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b | URL of the main image for the result. | ||
| data.episodes[].images | array | No | Images available for the result, with their sizes. | |||
| data.episodes[].images[].height | integer | No | 640 | Image height in pixels. | ||
| data.episodes[].images[].url | string | No | https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0 | URL of the image. | ||
| data.episodes[].images[].width | integer | No | 640 | Image width in pixels. | ||
| data.episodes[].publisher | string | No | Joe Rogan | Publisher or creator name of the result. | ||
| data.episodes[].subtitle | string | No | Joe Rogan | Secondary line shown under the title, such as the artist or creator name. | ||
| data.episodes[].title | string | No | The Joe Rogan Experience | Result title as Spotify shows it. | ||
| data.episodes[].type | string | No | Podcast | Kind of result as Spotify labels it, for example `Podcast`. | ||
| data.episodes[].uri | string | No | spotify:show:4rOoJ6Egrf8K2IrywzwOMk | Spotify URI of the result. | ||
| data.externalUrl | string | No | https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG | Link to the playlist on open.spotify.com. | ||
| data.followers | integer | No | 17500000 | Number of followers the playlist has. | ||
| data.id | string | No | 37i9dQZEVXbLwpL8TjsxOG | Spotify ID of the playlist. | ||
| data.imageUrl | string | No | https://charts-images.scdn.co/assets/locale_en/regional/daily/region_global_default.jpg | URL of the playlist cover image. | ||
| data.images | array | No | Cover images available for the playlist, with their sizes. | |||
| data.images[].height | integer | No | 640 | Image height in pixels. | ||
| data.images[].url | string | No | https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0 | URL of the image. | ||
| data.images[].width | integer | No | 640 | Image width in pixels. | ||
| data.items | array | No | Tracks and episodes returned from the playlist, in playlist order. | |||
| data.items[].description | string | No | The official podcast of comedian Joe Rogan. | Description text of the result. | ||
| data.items[].externalUrl | string | No | https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk | Link to the result on open.spotify.com. | ||
| data.items[].imageUrl | string | No | https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b | URL of the main image for the result. | ||
| data.items[].images | array | No | Images available for the result, with their sizes. | |||
| data.items[].images[].height | integer | No | 640 | Image height in pixels. | ||
| data.items[].images[].url | string | No | https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0 | URL of the image. | ||
| data.items[].images[].width | integer | No | 640 | Image width in pixels. | ||
| data.items[].publisher | string | No | Joe Rogan | Publisher or creator name of the result. | ||
| data.items[].subtitle | string | No | Joe Rogan | Secondary line shown under the title, such as the artist or creator name. | ||
| data.items[].title | string | No | The Joe Rogan Experience | Result title as Spotify shows it. | ||
| data.items[].type | string | No | Podcast | Kind of result as Spotify labels it, for example `Podcast`. | ||
| data.items[].uri | string | No | spotify:show:4rOoJ6Egrf8K2IrywzwOMk | Spotify URI of the result. | ||
| data.limit | integer | No | 20 | Maximum number of items requested. | ||
| data.meta | object | No | Details about this response. | |||
| data.meta.appVersion | string | No | 1.2.90.403.gf901f20f | Version of the Spotify web player the data was read from. | ||
| data.meta.episodeCount | integer | No | 0 | Number of episodes among the returned items. | ||
| data.meta.fetchedAt | string | No | 2026-05-13T20:41:12Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.meta.itemCount | integer | No | 20 | Number of items returned. | ||
| data.meta.operationName | string | No | fetchPlaylist | Name of the Spotify web player operation that returned the data. | ||
| data.meta.trackCount | integer | No | 20 | Number of tracks among the returned items. | ||
| data.name | string | No | Top 50 - Global | Playlist title as Spotify shows it. | ||
| data.offset | integer | No | 0 | Position of the first item returned. | ||
| data.owner | object | No | User or account that owns the playlist. | |||
| data.owner.description | string | No | The official podcast of comedian Joe Rogan. | Description text of the result. | ||
| data.owner.externalUrl | string | No | https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk | Link to the result on open.spotify.com. | ||
| data.owner.imageUrl | string | No | https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b | URL of the main image for the result. | ||
| data.owner.images | array | No | Images available for the result, with their sizes. | |||
| data.owner.images[].height | integer | No | 640 | Image height in pixels. | ||
| data.owner.images[].url | string | No | https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0 | URL of the image. | ||
| data.owner.images[].width | integer | No | 640 | Image width in pixels. | ||
| data.owner.publisher | string | No | Joe Rogan | Publisher or creator name of the result. | ||
| data.owner.subtitle | string | No | Joe Rogan | Secondary line shown under the title, such as the artist or creator name. | ||
| data.owner.title | string | No | The Joe Rogan Experience | Result title as Spotify shows it. | ||
| data.owner.type | string | No | Podcast | Kind of result as Spotify labels it, for example `Podcast`. | ||
| data.owner.uri | string | No | spotify:show:4rOoJ6Egrf8K2IrywzwOMk | Spotify URI of the result. | ||
| data.shareUrl | string | No | https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG | Link to the playlist that Spotify offers for sharing. | ||
| data.total | integer | No | 50 | Total number of items in the playlist. | ||
| data.tracks | array | No | The track entries among the returned items. | |||
| data.tracks[].description | string | No | The official podcast of comedian Joe Rogan. | Description text of the result. | ||
| data.tracks[].externalUrl | string | No | https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk | Link to the result on open.spotify.com. | ||
| data.tracks[].imageUrl | string | No | https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b | URL of the main image for the result. | ||
| data.tracks[].images | array | No | Images available for the result, with their sizes. | |||
| data.tracks[].images[].height | integer | No | 640 | Image height in pixels. | ||
| data.tracks[].images[].url | string | No | https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0 | URL of the image. | ||
| data.tracks[].images[].width | integer | No | 640 | Image width in pixels. | ||
| data.tracks[].publisher | string | No | Joe Rogan | Publisher or creator name of the result. | ||
| data.tracks[].subtitle | string | No | Joe Rogan | Secondary line shown under the title, such as the artist or creator name. | ||
| data.tracks[].title | string | No | The Joe Rogan Experience | Result title as Spotify shows it. | ||
| data.tracks[].type | string | No | Podcast | Kind of result as Spotify labels it, for example `Podcast`. | ||
| data.tracks[].uri | string | No | spotify:show:4rOoJ6Egrf8K2IrywzwOMk | Spotify URI of the result. | ||
| data.type | string | No | Playlist | Kind of item as Spotify labels it, for example `Playlist`. | ||
| data.uri | string | No | spotify:playlist:37i9dQZEVXbLwpL8TjsxOG | Spotify URI of the playlist. | ||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid parameters | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 503 | Spotify upstream request failed | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/spotify/playlist?limit=10&enable_watch_feed_entrypoint=true&include_episode_content_ratings_v2=true" \
-H "x-api-key: $CRAWLORA_API_KEY"