Create a playlist
create_playlistCreate one playlist from a natural-language idea or explicit track list. Call exactly once per listener turn: do not inspect the result and make a corrective second call or stack another playlist card in the same response. previewOnly=true returns one authoritative playlist that can be heard before saving and needs no music-service connection. After explicit approval, previewOnly=false with the approved tracks and the same concise editorial name creates one private playlist in the listener's active music service. Pass service only when the listener explicitly names Spotify or Apple Music. requiredArtists carries every artist the listener named as required. allowSecondPlaylist is true only for an explicit request for a separate additional playlist. Sign-in recovery preserves the exact request and pendingActionId for a safe retry.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | A concise editorial playlist title. Omit it when the listener did not supply a title; OffStereo derives one from the prompt. | |
| count | No | Target song count for prompt-generated playlists (1-50, default 20). | |
| prompt | No | A conceptual playlist request, e.g. 'connect A Tribe Called Quest to Steely Dan'. | |
| tracks | No | ||
| service | No | Destination service. Pass only when the listener explicitly names one; otherwise OffStereo uses the active service on their account. | |
| previewOnly | No | Resolve one unified playlist preview without saving or requiring a music-service connection. True when the listener asks to hear, inspect, or approve the songs before saving. | |
| pendingActionId | No | Retry token returned by a prior auth_required result. | |
| requiredArtists | No | Every artist the user explicitly requires, especially endpoints in a request such as 'from Minnie Riperton to Solange'. OffStereo validates these before creating anything. | |
| allowSecondPlaylist | No | True only when the listener explicitly requests another separate playlist. Omit or pass false otherwise; this does not authorize a second create_playlist call in the same response. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| title | No | ||
| object | Yes | Always 'playlist'. | |
| status | Yes | preview, created, partial, auth_required, or failed. | |
| tracks | No | ||
| webUrl | No | ||
| actions | No | ||
| message | No | ||
| privacy | No | Requested vs. confirmed privacy state. | |
| service | No | ||
| spotify | No | ||
| warnings | No | ||
| retryTool | No | ||
| appleMusic | No | ||
| authReason | No | ||
| connectUrl | No | Sign-in URL when status is auth_required. | |
| unresolved | No | Songs that could not be confidently matched. | |
| connections | No | ||
| pendingActionId | No | Retry token for a safe re-call after sign-in. |