# Get a Playlist's Items — Spotify

> Get full details of the items of a playlist owned by a Spotify user. See the docs here.

- Key: `spotify-get-playlist-items`
- Type: Action (Read-only)
- Version: 0.1.7
- App: Spotify (`spotify`) — https://pipedream.com/apps/spotify.md
- This page (HTML): https://pipedream.com/apps/spotify/actions/get-playlist-items
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/spotify/actions/get-playlist-items/get-playlist-items.mjs

## Description

Get full details of the items of a playlist owned by a Spotify user. [See the docs here](https://developer.spotify.com/documentation/web-api/reference/#/operations/get-playlists-tracks).

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `playlistId` | `string` | Yes | Select an existing playlist or pass a custom expression to reference a specific playlist_id (for example, 3cEYpjA9oz9GiPac4AsH4n). Options are loaded from the connected account. |
| `fields` | `string` | No | Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are returned. For example, to get just the total number of items and the request limit: total,limit. See the docs for more information. |
| `limit` | `integer` | No | The maximum number of items to return. The default is 100. |
| `offset` | `integer` | No | The index of the first item to return. Default: 0 (the first object). Use with limit to get the next set of items. |
| `additionalTypes` | `string[]` | No | A comma-separated list of item types that your client supports besides the default track type. Valid types are: track and episode. Note: This parameter was introduced to allow existing clients to maintain their current behaviour and might be deprecated in the future. In addition to providing this parameter, make sure that your client properly handles cases of new types in the future by checking against the type field of each object. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "spotify",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "spotify-get-playlist-items",
  arguments: {
    playlistId: "Playlist ID",
    fields: "Fields",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "spotify-get-playlist-items",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    spotify: { authProvisionId: "apn_xxxxxxx" },
    playlistId: "Playlist ID",
    fields: "Fields",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "spotify-get-playlist-items",
    "configured_props": {
      "spotify": { "authProvisionId": "apn_xxxxxxx" },
      "playlistId": "Playlist ID",
      "fields": "Fields"
    }
  }'
```

---

- App: https://pipedream.com/apps/spotify.md · All apps: https://pipedream.com/apps
