Search

Search tracks on Spotify or Deezer, as a normalized list or as the raw provider payload.

Search

Two search endpoints. /search queries the provider live and returns a small, normalized list keyed by ISRC, the shape you want for feeding straight into /download. /searchfull returns the raw upstream payload (full Spotify or Deezer metadata) for when you need every field, at a lower limit.

Query params
q
stringrequired
The search query. Trimmed to 250 characters.
limit
integeroptionaldefault: 10
Number of results, clamped to 1-50.
type
stringoptionaldefault: spotify
Provider to search. One of spotify or deezer.

Response

200 with a JSON object. Each result carries the fields you need to download or stream it.

{
  "query": "daft punk",
  "count": 2,
  "results": [
    {
      "isrc": "USQX91300108",
      "name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)",
      "artist": "Daft Punk, Pharrell Williams, Nile Rodgers",
      "album": "Random Access Memories",
      "durationMs": 369626,
      "url": "https://open.spotify.com/track/69kOkLUCkxIZYexIgSG8rq"
    }
  ]
}
Result fields
isrc
stringoptional
The track's ISRC. Pass this to /download, /stream/:isrc, or /artwork/:isrc.
name
stringoptional
Track title.
artist
stringoptional
Artist names, comma-joined when there is more than one.
album
stringoptional
Album title (empty string if unavailable).
durationMs
integeroptional
Track duration in milliseconds.
url
stringoptional
The provider URL (Spotify open.spotify.com link, or Deezer link when type=deezer).

Errors

  • 400 { "error": "Query is required" } when q is missing or empty after trimming.
  • Upstream 4xx from Spotify (for example a malformed query) is passed through with its original status and message.
  • 500 { "error": "Search failed" } on any other failure.

Examples

curl
curl "https://music.jakeypri.me/search?q=daft+punk&limit=5&key=YOUR_KEY"
 
# Deezer instead of Spotify
curl "https://music.jakeypri.me/search?q=daft+punk&type=deezer&key=YOUR_KEY"
GEThttps://music.jakeypri.me/searchfullAuth required
Search and return the raw upstream provider payload.

Returns the provider's response untouched: the raw Spotify Search API body ({ tracks: { items: [...] } }) or the raw Deezer search body ({ data: [...] }), depending on type. The shape is whatever the provider returns, not the normalized shape of /search. This is heavier, so the default and maximum limits are lower. Reach for it only when you need fields /search does not surface.

Query params
q
stringrequired
The search query. Trimmed to 250 characters.
limit
integeroptionaldefault: 3
Number of results, clamped to 1-10.
type
stringoptionaldefault: spotify
Provider to search. One of spotify or deezer.

Response

200 with the raw provider JSON. For type=spotify you get Spotify's tracks.items[...]; for type=deezer you get Deezer's { data: [...] }. Errors mirror /search: 400 when q is missing, upstream 4xx passed through, and 500 { "error": "Search failed" } otherwise.

curl
curl "https://music.jakeypri.me/searchfull?q=get+lucky&limit=2&key=YOUR_KEY"