Spotify search API
  1. Docs
  2. Spotify
  3. Spotify search API

Spotify search API

Tracks, artists, albums, playlists, podcasts, episodes and audiobooks.

GET /v1/spotify/search

GET /v1/spotify/search

Tracks, artists, albums, playlists, podcasts, episodes and audiobooks. Without type every kind is returned, 10 of each; with type, 20 of that kind. Use type=show to find podcast ids. Episodes come back as songs with extra.type "episode", audiobooks as collections. Results follow the country of the server's IP; region is accepted but does not change them.

  • Cost: 1 credit
  • Cache: Results are kept up to 30 days; send max_age_days to reuse them for free.
  • Timeout: A request still running after about 25 seconds answers 202 with a job to poll (Batch and jobs).

Parameters#

NameTypeRequiredDescription
querystringyesSearch terms. Also accepted as keyword, q.
typestringnoKind of result. One of track, album, artist, playlist, show, episode, audiobook. Also accepted values: podcast for show, podcasts for show, tracks for track, albums for album, artists for artist, playlists for playlist, episodes for episode, audiobooks for audiobook.

Every request also accepts:

  • cursor: the cursor from the previous page (Pagination).
  • region: two-letter country code for results that vary by country. Changing it restarts the cursor chain.
  • trim: true for a smaller response without null fields and extra.
  • raw: true to also get the platform's original object as raw.
  • max_age_days: accept a cached result up to this many days old, for 0 credits (Caching).

Example request#

Set your key in the environment first (see Authentication).

1curl -G "https://api.socialscrape.dev/v1/spotify/search" \2  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \3  --data-urlencode "query=taylor swift"

Example response#

This is a sample from a recorded response, lists and long text are shortened. Status 200.

200 OKSample response
1{2  "ok": true,3  "credits_charged": 1,4  "credits_remaining": 4999,5  "cached": false,6  "cached_at": null,7  "request_id": "req_30b540ee571e072da05cb2f3",8  "data": {9    "object": "list",10    "items": [11      {12        "object": "song",13        "platform": "spotify",14        "id": "5xTtaWoae3wi06K5WfVUUH",15        "url": "https://open.spotify.com/track/5xTtaWoae3wi06K5WfVUUH",16        "title": "Shake It Off",17        "artists": [18          "Taylor Swift"19        ],20        "album": "1989",21        "duration_seconds": 219.2,22        "cover_url": "https://i.scdn.co/image/ab67616d0000b2739abdf14e6058bd3903686148",23        "preview_url": null,24        "released_at": null,25        "isrc": null,26        "explicit": false,27        "is_original": null,28        "stats": {29          "plays": null,30          "uses": null,31          "likes": null32        },33        "extra": {34          "album_id": "2QJmrSgbdM35R67eoGQo4j",35          "artist_ids": [36            "06HL4z0CvFAxyc27GXpf02"37          ],38          "playable": true,39          "uri": "spotify:track:5xTtaWoae3wi06K5WfVUUH",40          "video_count": 141        }42      },43      {44        "object": "song",45        "platform": "spotify",46        "id": "3GCL1PydwsLodcpv0Ll1ch",47        "url": "https://open.spotify.com/track/3GCL1PydwsLodcpv0Ll1ch",48        "title": "You Belong With Me",49        "artists": [50          "Taylor Swift"51        ],52        "album": "Fearless",53        "duration_seconds": 231.133,54        "cover_url": "https://i.scdn.co/image/ab67616d0000b2737b25c072237f29ee50025fdc",55        "preview_url": null,56        "released_at": null,57        "isrc": null,58        "explicit": false,59        "is_original": null,60        "stats": {61          "plays": null,62          "uses": null,63          "likes": null64        },65        "extra": {66          "album_id": "2dqn5yOQWdyGwOpOIi9O4x",67          "artist_ids": [68            "06HL4z0CvFAxyc27GXpf02"69          ],70          "playable": true,71          "uri": "spotify:track:3GCL1PydwsLodcpv0Ll1ch",72          "video_count": 173        }74      }75    ],76    "cursor": "eyJvIjoxMH0",77    "has_more": true,78    "parent": null79  },80  "cursor": "eyJvIjoxMH0",81  "has_more": true82}

Response#

A list of Song or Album or Profile or Collection objects in data.items, with data.cursor and data.has_more.

See Data models for every field. The envelope around data is described in Responses.

Errors#

Failures are free: credits_charged is 0. Branch on error.code, never on the message.

CodeHTTPRetryMeaning
invalid_params400noA parameter is missing, unknown or has the wrong type.
not_found404noThe platform says this profile, post or item does not exist.

Every request can also fail with the account and platform errors listed on the Errors page.