Introducing the Instagram APIRead more →

Spotify Playlist Search API. Playlists matching your search.

Playlists and their curators by keyword. We handle the proxies, blocks and platform changes.

Spotify Playlist Search API at a glance

Searches Spotify's public playlists by keyword in any language and returns them a page at a time, in Spotify's order. Each has its title, description, cover, owner with their username and picture, the kind of list Spotify says it is, and whether its algorithm made it. The Spotify Playlist API adds the follower count, item count and dates.

GET /v1/spotify/search_playlists

Read the API reference
  • 1 credit per page, $0.75–$1.97 per 1,000 pages
  • 13 typed fields null when unknown
  • 100 playlists per page, Spotify's own ranking for the query
  • query is all it needs, e.g. workout

Send one request. Get up to 100 playlists back.

Copy the request in your language, or hand it to your agent. Sign up for an API key and your first 100 credits are free.

$ npm install socialtap
query = workout
GET /v1/spotify/search_playlistsTry in
const params = new URLSearchParams({
  query: "workout",
});
const res = await fetch(`https://socialtap.dev/v1/spotify/search_playlists?${params}`, {
  headers: { "x-api-key": process.env.SOCIALTAP_API_KEY ?? "" },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.error.code}: ${body.error.message}`);
const { data, page, meta } = body;
console.log(data, meta.credits_charged);
200 OK · GET https://socialtap.dev/v1/spotify/search_playlistsLong arrays and strings are shortened here. Real responses are complete.Docs

One schema on 6 platforms.

The response reference lists every field, its type and when it is null. See the full schema.

  • Null means unknown

    A field Spotify doesn't show is null, never zero or an empty string, so a real zero always means zero.

  • What it accepts

    What to search for, as in Spotify's search box: a playlist's title, a mood, a genre or an artist, in any language.

  • Write one parser

    Spotify, TikTok, Instagram and 3 more platforms answer in these fields, so the code that reads one reads them all.

platformstring
Platform ID (tiktok, youtube, facebook, …).
idstring
Platform-native playlist ID (string): TikTok's playlist (mix) or collection ID, YouTube's list ID (PL…), Facebook's video list ID.
urlstring
Canonical playlist URL.
typestring
playlist: a list its owner curates and orders (TikTok playlists, YouTube playlists, Facebook playlists and series); collection: posts an account saved from any creator into a named public folder (TikTok collections). New values may be added; treat unknown values as playlist.
platform_typestring
The platform's own label, lowercase (mix, collection, playlist, series, podcast, …).
titlestring
Name its owner gave it.
descriptionstring
Description as plain text; null when it has none or the platform shows none (TikTok).
ownerobject
The account that curates it (for a collection, the account that saved the posts, not their authors). Where a platform's curators are not accounts (Apple Music), what it states of them: a name, perhaps a page and a picture, with id and username null, and every field null when it names no one.

What teams build with the Spotify Playlist Search API.

  • Find curators to pitch a song to

  • Find playlists for a mood or genre

  • Turn a playlist title into its ID

Good to know before you build.

  • Results are playlists only: the tracks, artists, albums and podcasts a query matches aren't in the list.
  • Search lists no item count, follower count, dates or collaborative flag, so metrics.post_count and those platform_specific.spotify fields are null: the Spotify Playlist API returns them.
  • platform_type is playlist, or Spotify's own name for it when it has one, such as editorial, descripto, inspiredby-mix, topic-mix, artist-mix-reader and artistsets.
  • title is null on a playlist whose title is empty or only spaces. It is still a real playlist, listed with its ID, link and owner.
  • is_algorithmic is null where Spotify says neither, as on a listener's playlist.
  • Results are in Spotify's order, which depends on the page size, so a smaller limit isn't always the top of a larger one. A walk ends with page.end_reason platform_limit where Spotify stops serving, however many it matched.
  • A page can hold fewer playlists than its limit while next_cursor goes on: repeats from the page before are dropped, and so are playlists Spotify no longer serves or whose owner it no longer names.
  • A page left with nothing is Spotify failing, not the end of the list: a first page then comes from the fallback below and a later one fails with a retryable error. The exception is a page that goes on with only a few such playlists dropped (limit=1 can hit one), which returns empty with a next_cursor.
  • Spotify answers a weak query with its nearest guesses, so an empty page is rare and any result may be a loose match. Its music filters return an empty page here, since no playlist has them, and owner: and user: are read as words, so a search can't be narrowed to one owner.
  • When Spotify's search doesn't answer, the first pages come from a web search engine's index, each playlist read from Spotify, with a partial_data warning, and owner.avatar_url is null. That list holds only what the index has, often a small part of Spotify's, in the engine's order. A next_cursor stays on the list it came from: if Spotify's search stops answering mid-walk, the next page fails with a retryable error instead of switching lists.
  • An empty query, a Spotify URI or a link to a Spotify page returns invalid_input, naming the endpoint that takes it where there is one. For a link to Spotify's search page, send its words instead.

1 credit per page. Failed requests are free.

Buy credits once and spend them on any endpoint, on any platform.

SourcePrice per successful pagePer 1,000 pages
Any source1 credit$0.75–$1.97
  • Cache hits are free.
  • Credits from packs and top-ups never expire.
  • A monthly plan's credits are spent first, and what is left of them ends at each renewal.
  • Prices exclude tax: sales tax is added at checkout where it applies.
  • Outside the US, plans and packs are sold to businesses: checkout asks for your VAT, GST or other business tax ID.

Questions about the Spotify Playlist Search API.

More in the API reference.

How much does the Spotify Playlist Search API cost?
A page of up to 100 playlists costs 1 credit. Every successful page is charged, empty pages included. SocialTap credits cost $0.75–$1.97 per 1,000, depending on the plan or pack.
How do I get the next page?
Repeat the same request with cursor set to page.next_cursor from the previous response, keeping the other parameters. When page.has_more is false there are no more pages. Cursors expire after 24 hours.

Try it with your own search.

Type it in the playground, or copy the request into your code.

100free credits
  • No credit card
  • Failed requests are free
  • Works on all 218 endpoints
Start for free Read the docs