Use cases
Sync and pitching
From a brief to a shareable shortlist in three calls.
A supervisor sends a brief. You want the five best matches from a roster and a link to send back, without opening the app.
Flow
- Search. Call
POST /tracks/searchwith the brief asquery. Move hard requirements intoconstraints: duration window, instrumental, BPM range, key. - Read the interpretation. If
interpretation.genresormoodsis off, name the genre in the query and search again. Put tracks you have already pitched intoexcludeTrackIds. - Make the playlist. Call
POST /playlistswith the top ids andsuggestedNamefrom the search. The response includespublicLink. - Send the link. Anyone can listen without an account.
- Track it.
GET /tracks/submissionsshows every brief a track went to if you also log the pitch as a brief submission in the app.
Example
curl -X POST https://api.postal.music/api/v1/tracks/search \
-H "X-API-Key: $POSTAL_API_KEY" -H "Content-Type: application/json" \
-d '{
"query": "uplifting indie-folk with handclaps for a travel ad, builds to a big chorus",
"limit": 10,
"constraints": { "durationRange": [60, 150], "hasVocals": true, "language": "en" }
}'Then:
curl -X POST https://api.postal.music/api/v1/playlists \
-H "X-API-Key: $POSTAL_API_KEY" -H "Content-Type: application/json" \
-d '{ "name": "Travel ad shortlist", "trackIds": ["cm1x…","cm1y…","cm1z…"], "dedupe": true }'Cost
Each search is one credit. Listing and playlist calls are free. A typical pitch is two or three searches.
With an assistant instead
The same flow is one sentence in a connected MCP client: "Find five uplifting indie-folk tracks with vocals, 60–150 seconds, for a travel ad, and make me a playlist link." See Example prompts.