Pitch for Playlist
pitch_for_playlistCALL THIS when the user wants a song pitched to a playlist: "pitch Diabolique to that playlist". Submits the user's pitch to CWI — confirm with the user before calling. Goes to human review, NEVER auto-added. Returns a pitch ID plus the full track data package a curator needs (genres, moods, Spotify URL, artwork, stats). Rate limit: 3 per requester per 24h. Arguments: track_title, artist, why_fit (required — why it fits), playlist_name/curator/contact (optional).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"track_title": "<track_title>",
"artist": "<artist>",
"why_fit": "<why_fit>"
},
"name": "pitch_for_playlist"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| artist | Yes | Artist name. | |
| contact | No | Optional: email for follow-up. | |
| curator | No | Optional: curator name or handle. | |
| why_fit | Yes | Why this track fits the playlist (required). | |
| track_title | Yes | Title of the track you are pitching. | |
| playlist_name | No | Optional: target playlist name. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| note | No | ||
| artist | No | ||
| review | No | ||
| status | Yes | ||
| curator | No | ||
| receipt | No | Confirmation receipt; id is the real intake row id. | |
| why_fit | No | ||
| _session | No | Chain session: pass _session.session_token back in the next call to continue the chain. | |
| pitch_id | Yes | ||
| try_next | No | Suggested follow-up calls, each a pre-compiled {tool, arguments, purpose} payload. | |
| track_data | No | ||
| track_title | No | ||
| submitted_at | No | ||
| playlist_name | No |