Skip to main content
Every spotify.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Albums

get

albums.get Get info about an album Risk: read
await corsair.spotify.api.albums.get({});
Input
NameTypeRequiredDescription
idstringYes
marketstringNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
album_typestringYes
total_tracksnumberNo
available_marketsstring[]No
external_urlsobjectNo
hrefstringNo
imagesobject[]No
release_datestringNo
release_date_precisionstringNo
artistsobject[]No
{
  spotify?: string
}
{
  url: string,
  height?: number | null,
  width?: number | null
}[]
{
  id: string,
  name: string,
  external_urls?: {
    spotify?: string
  }
}[]

getNewReleases

albums.getNewReleases Get new album releases Risk: read
await corsair.spotify.api.albums.getNewReleases({});
Input
NameTypeRequiredDescription
limitnumberNo
offsetnumberNo
countrystringNo
Output
NameTypeRequiredDescription
albumsobjectYes
{
  href?: string,
  limit?: number,
  next?: string | null,
  offset?: number,
  previous?: string | null,
  total?: number,
  items?: {
    id: string,
    name: string,
    album_type: string,
    total_tracks?: number,
    available_markets?: string[],
    external_urls?: {
      spotify?: string
    },
    href?: string,
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    release_date?: string,
    release_date_precision?: string,
    artists?: {
      id: string,
      name: string,
      external_urls?: {
        spotify?: string
      }
    }[]
  }[]
}

getTracks

albums.getTracks Get tracks from an album Risk: read
await corsair.spotify.api.albums.getTracks({});
Input
NameTypeRequiredDescription
idstringYes
limitnumberNo
offsetnumberNo
marketstringNo
Output
NameTypeRequiredDescription
hrefstringNo
limitnumberNo
nextstringNo
offsetnumberNo
previousstringNo
totalnumberNo
itemsobject[]No
{
  id: string,
  name: string,
  artists?: {
    id: string,
    name: string
  }[],
  album?: {
    id: string,
    name: string,
    album_type: string,
    total_tracks?: number,
    available_markets?: string[],
    external_urls?: {
      spotify?: string
    },
    href?: string,
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    release_date?: string,
    release_date_precision?: string,
    artists?: {
      id: string,
      name: string,
      external_urls?: {
        spotify?: string
      }
    }[]
  },
  duration_ms?: number,
  explicit?: boolean,
  external_urls?: {
    spotify?: string
  },
  href?: string,
  is_local?: boolean,
  popularity?: number,
  preview_url?: string | null,
  track_number?: number
}[]

albums.search Search for albums Risk: read
await corsair.spotify.api.albums.search({});
Input
NameTypeRequiredDescription
qstringYes
typealbumNo
marketstringNo
limitnumberNo
offsetnumberNo
Output
NameTypeRequiredDescription
albumsobjectYes
{
  href?: string,
  limit?: number,
  next?: string | null,
  offset?: number,
  previous?: string | null,
  total?: number,
  items?: {
    id: string,
    name: string,
    album_type: string,
    total_tracks?: number,
    available_markets?: string[],
    external_urls?: {
      spotify?: string
    },
    href?: string,
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    release_date?: string,
    release_date_precision?: string,
    artists?: {
      id: string,
      name: string,
      external_urls?: {
        spotify?: string
      }
    }[]
  }[]
}

Artists

get

artists.get Get info about an artist Risk: read
await corsair.spotify.api.artists.get({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
namestringYes
external_urlsobjectNo
followersobjectNo
genresstring[]No
hrefstringNo
imagesobject[]No
popularitynumberNo
{
  spotify?: string
}
{
  total?: number
}
{
  url: string,
  height?: number | null,
  width?: number | null
}[]

getAlbums

artists.getAlbums Get albums by an artist Risk: read
await corsair.spotify.api.artists.getAlbums({});
Input
NameTypeRequiredDescription
idstringYes
include_groupsstringNo
marketstringNo
limitnumberNo
offsetnumberNo
Output
NameTypeRequiredDescription
hrefstringNo
limitnumberNo
nextstringNo
offsetnumberNo
previousstringNo
totalnumberNo
itemsobject[]No
{
  id: string,
  name: string,
  album_type: string,
  total_tracks?: number,
  available_markets?: string[],
  external_urls?: {
    spotify?: string
  },
  href?: string,
  images?: {
    url: string,
    height?: number | null,
    width?: number | null
  }[],
  release_date?: string,
  release_date_precision?: string,
  artists?: {
    id: string,
    name: string,
    external_urls?: {
      spotify?: string
    }
  }[]
}[]

getRelatedArtists

artists.getRelatedArtists Get artists related to an artist Risk: read
await corsair.spotify.api.artists.getRelatedArtists({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
artistsobject[]No
{
  id: string,
  name: string,
  external_urls?: {
    spotify?: string
  },
  followers?: {
    total?: number
  },
  genres?: string[],
  href?: string,
  images?: {
    url: string,
    height?: number | null,
    width?: number | null
  }[],
  popularity?: number
}[]

getTopTracks

artists.getTopTracks Get top tracks for an artist Risk: read
await corsair.spotify.api.artists.getTopTracks({});
Input
NameTypeRequiredDescription
idstringYes
marketstringNo
Output
NameTypeRequiredDescription
tracksobject[]No
{
  id: string,
  name: string,
  artists?: {
    id: string,
    name: string
  }[],
  album?: {
    id: string,
    name: string,
    album_type: string,
    total_tracks?: number,
    available_markets?: string[],
    external_urls?: {
      spotify?: string
    },
    href?: string,
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    release_date?: string,
    release_date_precision?: string,
    artists?: {
      id: string,
      name: string,
      external_urls?: {
        spotify?: string
      }
    }[]
  },
  duration_ms?: number,
  explicit?: boolean,
  external_urls?: {
    spotify?: string
  },
  href?: string,
  is_local?: boolean,
  popularity?: number,
  preview_url?: string | null,
  track_number?: number
}[]

search

artists.search Search for artists Risk: read
await corsair.spotify.api.artists.search({});
Input
NameTypeRequiredDescription
qstringYes
typeartistNo
marketstringNo
limitnumberNo
offsetnumberNo
Output
NameTypeRequiredDescription
artistsobjectYes
{
  href?: string,
  limit?: number,
  next?: string | null,
  offset?: number,
  previous?: string | null,
  total?: number,
  items?: {
    id: string,
    name: string,
    external_urls?: {
      spotify?: string
    },
    followers?: {
      total?: number
    },
    genres?: string[],
    href?: string,
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    popularity?: number
  }[]
}

Library

getLikedTracks

library.getLikedTracks Get the current user’s liked tracks Risk: read
await corsair.spotify.api.library.getLikedTracks({});
Input
NameTypeRequiredDescription
limitnumberNo
offsetnumberNo
marketstringNo
Output
NameTypeRequiredDescription
hrefstringNo
limitnumberNo
nextstringNo
offsetnumberNo
previousstringNo
totalnumberNo
itemsobject[]No
{
  added_at?: string,
  track?: {
    id: string,
    name: string,
    artists?: {
      id: string,
      name: string
    }[],
    album?: {
      id: string,
      name: string,
      album_type: string,
      total_tracks?: number,
      available_markets?: string[],
      external_urls?: {
        spotify?: string
      },
      href?: string,
      images?: {
        url: string,
        height?: number | null,
        width?: number | null
      }[],
      release_date?: string,
      release_date_precision?: string,
      artists?: {
        id: string,
        name: string,
        external_urls?: {
          spotify?: string
        }
      }[]
    },
    duration_ms?: number,
    explicit?: boolean,
    external_urls?: {
      spotify?: string
    },
    href?: string,
    is_local?: boolean,
    popularity?: number,
    preview_url?: string | null,
    track_number?: number
  }
}[]

My Data

getFollowedArtists

myData.getFollowedArtists Get artists followed by the current user Risk: read
await corsair.spotify.api.myData.getFollowedArtists({});
Input
NameTypeRequiredDescription
typeartistNo
limitnumberNo
afterstringNo
Output
NameTypeRequiredDescription
artistsobjectYes
{
  href?: string,
  limit?: number,
  next?: string | null,
  cursors?: {
    after?: string | null
  },
  total?: number,
  items?: {
    id: string,
    name: string,
    external_urls?: {
      spotify?: string
    },
    followers?: {
      total?: number
    },
    genres?: string[],
    href?: string,
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    popularity?: number
  }[]
}

Player

addToQueue

player.addToQueue Add a track to the playback queue Risk: write
await corsair.spotify.api.player.addToQueue({});
Input
NameTypeRequiredDescription
uristringYes
device_idstringNo
Output: empty object

getCurrentlyPlaying

player.getCurrentlyPlaying Get the currently playing track Risk: read
await corsair.spotify.api.player.getCurrentlyPlaying({});
Input
NameTypeRequiredDescription
marketstringNo
additional_typesstringNo
Output
NameTypeRequiredDescription
timestampnumberNo
contextobjectNo
progress_msnumberNo
is_playingbooleanNo
itemobjectNo
currently_playing_typestringNo
actionsobjectNo
{
  external_urls?: {
    spotify?: string
  },
  href?: string,
  type?: string,
  uri?: string
}
{
  id: string,
  name: string,
  artists?: {
    id: string,
    name: string
  }[],
  album?: {
    id: string,
    name: string,
    album_type: string,
    total_tracks?: number,
    available_markets?: string[],
    external_urls?: {
      spotify?: string
    },
    href?: string,
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    release_date?: string,
    release_date_precision?: string,
    artists?: {
      id: string,
      name: string,
      external_urls?: {
        spotify?: string
      }
    }[]
  },
  duration_ms?: number,
  explicit?: boolean,
  external_urls?: {
    spotify?: string
  },
  href?: string,
  is_local?: boolean,
  popularity?: number,
  preview_url?: string | null,
  track_number?: number
}
{
  disallows?: {
    resuming?: boolean
  }
}

getRecentlyPlayed

player.getRecentlyPlayed Get recently played tracks Risk: read
await corsair.spotify.api.player.getRecentlyPlayed({});
Input
NameTypeRequiredDescription
limitnumberNo
afternumberNo
beforenumberNo
Output
NameTypeRequiredDescription
itemsobject[]No
nextstringNo
cursorsobjectNo
limitnumberNo
{
  track?: {
    id: string,
    name: string,
    artists?: {
      id: string,
      name: string
    }[],
    album?: {
      id: string,
      name: string,
      album_type: string,
      total_tracks?: number,
      available_markets?: string[],
      external_urls?: {
        spotify?: string
      },
      href?: string,
      images?: {
        url: string,
        height?: number | null,
        width?: number | null
      }[],
      release_date?: string,
      release_date_precision?: string,
      artists?: {
        id: string,
        name: string,
        external_urls?: {
          spotify?: string
        }
      }[]
    },
    duration_ms?: number,
    explicit?: boolean,
    external_urls?: {
      spotify?: string
    },
    href?: string,
    is_local?: boolean,
    popularity?: number,
    preview_url?: string | null,
    track_number?: number
  },
  played_at?: string,
  context?: {
    type?: string,
    href?: string,
    external_urls?: {
      spotify?: string
    },
    uri?: string
  } | null
}[]
{
  after?: string,
  before?: string
}

pause

player.pause Pause playback Risk: write
await corsair.spotify.api.player.pause({});
Input
NameTypeRequiredDescription
device_idstringNo
Output: empty object

resume

player.resume Resume playback Risk: write
await corsair.spotify.api.player.resume({});
Input
NameTypeRequiredDescription
device_idstringNo
Output: empty object

setVolume

player.setVolume Set the playback volume Risk: write
await corsair.spotify.api.player.setVolume({});
Input
NameTypeRequiredDescription
volume_percentnumberYes
device_idstringNo
Output: empty object

skipToNext

player.skipToNext Skip to the next track Risk: write
await corsair.spotify.api.player.skipToNext({});
Input
NameTypeRequiredDescription
device_idstringNo
Output: empty object

skipToPrevious

player.skipToPrevious Skip to the previous track Risk: write
await corsair.spotify.api.player.skipToPrevious({});
Input
NameTypeRequiredDescription
device_idstringNo
Output: empty object

startPlayback

player.startPlayback Start playback of specified content Risk: write
await corsair.spotify.api.player.startPlayback({});
Input
NameTypeRequiredDescription
device_idstringNo
context_uristringNo
urisstring[]No
offsetobjectNo
position_msnumberNo
{
  position?: number,
  uri?: string
}
Output: empty object

Playlists

addItem

playlists.addItem Add a track to a playlist Risk: write
await corsair.spotify.api.playlists.addItem({});
Input
NameTypeRequiredDescription
playlist_idstringYes
urisstring[]Yes
positionnumberNo
Output
NameTypeRequiredDescription
snapshot_idstringNo

create

playlists.create Create a new playlist Risk: write
await corsair.spotify.api.playlists.create({});
Input
NameTypeRequiredDescription
user_idstringYes
namestringYes
publicbooleanNo
collaborativebooleanNo
descriptionstringNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
descriptionstringNo
publicbooleanNo
collaborativebooleanNo
ownerobjectNo
followersobjectNo
imagesobject[]No
tracksobjectNo
external_urlsobjectNo
hrefstringNo
{
  id: string,
  display_name?: string,
  external_urls?: {
    spotify?: string
  }
}
{
  total?: number
}
{
  url: string,
  height?: number | null,
  width?: number | null
}[]
{
  href?: string,
  total?: number
}
{
  spotify?: string
}

get

playlists.get Get info about a playlist Risk: read
await corsair.spotify.api.playlists.get({});
Input
NameTypeRequiredDescription
playlist_idstringYes
marketstringNo
fieldsstringNo
additional_typesstringNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
descriptionstringNo
publicbooleanNo
collaborativebooleanNo
ownerobjectNo
followersobjectNo
imagesobject[]No
tracksobjectNo
external_urlsobjectNo
hrefstringNo
{
  id: string,
  display_name?: string,
  external_urls?: {
    spotify?: string
  }
}
{
  total?: number
}
{
  url: string,
  height?: number | null,
  width?: number | null
}[]
{
  href?: string,
  total?: number
}
{
  spotify?: string
}

getTracks

playlists.getTracks Get tracks in a playlist Risk: read
await corsair.spotify.api.playlists.getTracks({});
Input
NameTypeRequiredDescription
playlist_idstringYes
marketstringNo
fieldsstringNo
limitnumberNo
offsetnumberNo
additional_typesstringNo
Output
NameTypeRequiredDescription
hrefstringNo
limitnumberNo
nextstringNo
offsetnumberNo
previousstringNo
totalnumberNo
itemsobject[]No
{
  added_at?: string,
  added_by?: {
    id?: string
  },
  is_local?: boolean,
  track?: {
    id: string,
    name: string,
    artists?: {
      id: string,
      name: string
    }[],
    album?: {
      id: string,
      name: string,
      album_type: string,
      total_tracks?: number,
      available_markets?: string[],
      external_urls?: {
        spotify?: string
      },
      href?: string,
      images?: {
        url: string,
        height?: number | null,
        width?: number | null
      }[],
      release_date?: string,
      release_date_precision?: string,
      artists?: {
        id: string,
        name: string,
        external_urls?: {
          spotify?: string
        }
      }[]
    },
    duration_ms?: number,
    explicit?: boolean,
    external_urls?: {
      spotify?: string
    },
    href?: string,
    is_local?: boolean,
    popularity?: number,
    preview_url?: string | null,
    track_number?: number
  }
}[]

getUserPlaylists

playlists.getUserPlaylists Get the current user’s playlists Risk: read
await corsair.spotify.api.playlists.getUserPlaylists({});
Input
NameTypeRequiredDescription
user_idstringNo
limitnumberNo
offsetnumberNo
Output
NameTypeRequiredDescription
hrefstringNo
limitnumberNo
nextstringNo
offsetnumberNo
previousstringNo
totalnumberNo
itemsobject[]No
{
  id: string,
  name: string,
  description?: string | null,
  public?: boolean,
  collaborative?: boolean,
  owner?: {
    id: string,
    display_name?: string,
    external_urls?: {
      spotify?: string
    }
  },
  followers?: {
    total?: number
  },
  images?: {
    url: string,
    height?: number | null,
    width?: number | null
  }[],
  tracks?: {
    href?: string,
    total?: number
  },
  external_urls?: {
    spotify?: string
  },
  href?: string
} | null[]

removeItem

playlists.removeItem Remove a track from a playlist Risk: write
await corsair.spotify.api.playlists.removeItem({});
Input
NameTypeRequiredDescription
playlist_idstringYes
tracksobject[]Yes
snapshot_idstringNo
{
  uri: string
}[]
Output
NameTypeRequiredDescription
snapshot_idstringNo

search

playlists.search Search for playlists Risk: read
await corsair.spotify.api.playlists.search({});
Input
NameTypeRequiredDescription
qstringYes
typeplaylistNo
marketstringNo
limitnumberNo
offsetnumberNo
Output
NameTypeRequiredDescription
playlistsobjectYes
{
  href?: string,
  limit?: number,
  next?: string | null,
  offset?: number,
  previous?: string | null,
  total?: number,
  items?: {
    id: string,
    name: string,
    description?: string | null,
    public?: boolean,
    collaborative?: boolean,
    owner?: {
      id: string,
      display_name?: string,
      external_urls?: {
        spotify?: string
      }
    },
    followers?: {
      total?: number
    },
    images?: {
      url: string,
      height?: number | null,
      width?: number | null
    }[],
    tracks?: {
      href?: string,
      total?: number
    },
    external_urls?: {
      spotify?: string
    },
    href?: string
  } | null[]
}

Tracks

get

tracks.get Get info about a track Risk: read
await corsair.spotify.api.tracks.get({});
Input
NameTypeRequiredDescription
idstringYes
marketstringNo
Output
NameTypeRequiredDescription
idstringYes
namestringYes
artistsobject[]No
albumobjectNo
duration_msnumberNo
explicitbooleanNo
external_urlsobjectNo
hrefstringNo
is_localbooleanNo
popularitynumberNo
preview_urlstringNo
track_numbernumberNo
{
  id: string,
  name: string
}[]
{
  id: string,
  name: string,
  album_type: string,
  total_tracks?: number,
  available_markets?: string[],
  external_urls?: {
    spotify?: string
  },
  href?: string,
  images?: {
    url: string,
    height?: number | null,
    width?: number | null
  }[],
  release_date?: string,
  release_date_precision?: string,
  artists?: {
    id: string,
    name: string,
    external_urls?: {
      spotify?: string
    }
  }[]
}
{
  spotify?: string
}

getAudioFeatures

tracks.getAudioFeatures Get audio features for a track Risk: read
await corsair.spotify.api.tracks.getAudioFeatures({});
Input
NameTypeRequiredDescription
idstringYes
Output
NameTypeRequiredDescription
idstringYes
danceabilitynumberNo
energynumberNo
keynumberNo
loudnessnumberNo
modenumberNo
speechinessnumberNo
acousticnessnumberNo
instrumentalnessnumberNo
livenessnumberNo
valencenumberNo
temponumberNo
duration_msnumberNo
time_signaturenumberNo

search

tracks.search Search for tracks Risk: read
await corsair.spotify.api.tracks.search({});
Input
NameTypeRequiredDescription
qstringYes
typetrackNo
marketstringNo
limitnumberNo
offsetnumberNo
Output
NameTypeRequiredDescription
tracksobjectYes
{
  href?: string,
  limit?: number,
  next?: string | null,
  offset?: number,
  previous?: string | null,
  total?: number,
  items?: {
    id: string,
    name: string,
    artists?: {
      id: string,
      name: string
    }[],
    album?: {
      id: string,
      name: string,
      album_type: string,
      total_tracks?: number,
      available_markets?: string[],
      external_urls?: {
        spotify?: string
      },
      href?: string,
      images?: {
        url: string,
        height?: number | null,
        width?: number | null
      }[],
      release_date?: string,
      release_date_precision?: string,
      artists?: {
        id: string,
        name: string,
        external_urls?: {
          spotify?: string
        }
      }[]
    },
    duration_ms?: number,
    explicit?: boolean,
    external_urls?: {
      spotify?: string
    },
    href?: string,
    is_local?: boolean,
    popularity?: number,
    preview_url?: string | null,
    track_number?: number
  }[]
}