Skip to content

Instantly share code, notes, and snippets.

@yukims19
Last active January 4, 2019 00:10
Show Gist options
  • Save yukims19/a27e0f0c003fac0b6ed6f505ddc47149 to your computer and use it in GitHub Desktop.
Save yukims19/a27e0f0c003fac0b6ed6f505ddc47149 to your computer and use it in GitHub Desktop.
{
"servers": [
{
"url": "https://developer.spotify.com/documentation/web-api/"
}
],
"openapi": "3.0.0",
"info": {
"title": "Spotify",
"version": "beta",
"x-providerName": "spotify.com",
"x-logo": {
"url": "https://developer.spotify.com/assets/branding-guidelines/logo@2x.png"
}
},
"externalDocs": {
"url": "https://developer.spotify.com/documentation/web-api/reference-beta/"
},
"paths": {
"/albums": {
"get": {
"operationId": "GetMultipleAlbums",
"description": "Get Spotify catalog information for multiple albums identified by their Spotify IDs.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for the albums. Maximum: 20 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string from\\_token. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/album"
}
}
}
}
}
}
},
"/albums/{id}": {
"get": {
"operationId": "GetAnAlbum",
"description": "Get Spotify catalog information for a single album.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The Spotify ID of the album.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The market you’d like to request. Synonym for `country`.",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {}
}
},
"/albums/{id}/tracks": {
"get": {
"operationId": "GetAnAlbumsTracks",
"description": "Get Spotify catalog information about an album’s tracks.\nOptional parameters can be used to limit the number of tracks returned.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The Spotify ID of the album.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of tracks to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string from\\_token. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first track to return. Default: 0 (the first object). Use with limit to get the next set of tracks.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {}
}
},
"/artists": {
"get": {
"operationId": "GetMultipleArtists",
"description": "Get Spotify catalog information for several artists based on their Spotify IDs.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for the artists. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/artist"
}
}
}
}
}
}
},
"/artists/{id}": {
"get": {
"operationId": "GetAnArtist",
"description": "Get Spotify catalog information for a single artist identified by their unique Spotify ID.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The Spotify ID of the artist.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/artist"
}
}
}
}
}
}
},
"/artists/{id}/albums": {
"get": {
"operationId": "GetAnArtistsAlbums",
"description": "Get Spotify catalog information about an artist’s albums. Optional parameters can be specified in the query string to filter and sort the response.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the artist.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of keywords that will be used to filter the response. If not supplied, all album types will be returned. Valid values are: \n\\- `album` \n\\- `single` \n\\- `appears_on` \n\\- `compilation` \nFor example: `include_groups=album,single`.",
"in": "query",
"name": "include_groups",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The number of album objects to return. Default: 20. Minimum: 1. Maximum: 50. For example: `limit=2`",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "Synonym for `country`. An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. \nSupply this parameter to limit the response to one particular geographical market. For example, for albums available in Sweden: `market=SE`. \n_If not given, results will be returned for all markets and you are likely to get duplicate results per album, one for each market in which the album is available!_",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first album to return. Default: 0 (i.e., the first album). Use with `limit` to get the next set of albums.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/album"
}
}
}
}
}
}
},
"/artists/{id}/related-artists": {
"get": {
"operationId": "GetAnArtistsRelatedArtists",
"description": "Get Spotify catalog information about artists similar to a given artist. Similarity is based on analysis of the Spotify community’s listening history.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the artist",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/artist"
}
}
}
}
}
}
},
"/artists/{id}/top-tracks": {
"get": {
"operationId": "GetAnArtistsTopTracks",
"description": "Get Spotify catalog information about an artist’s top tracks by country.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the artist",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Synonym for `country`.",
"in": "query",
"name": "market",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/track"
}
}
}
}
}
}
},
"/audio-analysis/{id}": {
"get": {
"operationId": "GetAudioAnalysisForATrack",
"description": "Get a detailed audio analysis for a single track identified by its unique Spotify ID.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the track.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/audio-features": {
"get": {
"operationId": "GetAudioFeaturesForSeveralTracks",
"description": "Get audio features for multiple tracks based on their Spotify IDs.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for the tracks. Maximum: 100 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/audio-features/{id}": {
"get": {
"operationId": "GetAudioFeaturesForATrack",
"description": "Get audio feature information for a single track identified by its unique Spotify ID.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the track.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/audio-features"
}
}
}
}
}
}
},
"/browse/categories": {
"get": {
"operationId": "GetAllCategories",
"description": "Get a list of categories used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A country: an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Provide this parameter if you want to narrow the list of returned categories to those relevant to a particular country. If omitted, the returned items will be globally relevant.",
"in": "query",
"name": "country",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of categories to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The desired language, consisting of an [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code and an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), joined by an underscore. For example: `es_MX`, meaning “Spanish (Mexico)”. Provide this parameter if you want the category metadata returned in a particular language. Note that, if `locale` is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). The `locale` parameter, combined with the `country` parameter, may give odd results if not carefully matched. For example `country=SE&locale=de_DE` will return a list of categories relevant to Sweden but as German language strings.",
"in": "query",
"name": "locale",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first item to return. Default: 0 (the first object). Use with `limit` to get the next set of categories.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/category"
}
}
}
}
}
}
},
"/browse/categories/{category_id}": {
"get": {
"operationId": "GetACategory",
"description": "Get a single category used to tag items in Spotify (on, for example, the Spotify player’s “Browse” tab).",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify category ID](/documentation/web-api/#spotify-uris-and-ids) for the category.",
"in": "path",
"name": "category_id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A country: an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Provide this parameter to ensure that the category exists for a particular country.",
"in": "query",
"name": "country",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The desired language, consisting of an [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code and an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), joined by an underscore. For example: `es_MX`, meaning \"Spanish (Mexico)\". Provide this parameter if you want the category strings returned in a particular language. Note that, if `locale` is not supplied, or if the specified language is not available, the category strings returned will be in the Spotify default language (American English).",
"in": "query",
"name": "locale",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/category"
}
}
}
}
}
}
},
"/browse/categories/{category_id}/playlists": {
"get": {
"operationId": "GetACategorysPlaylists",
"description": "Get a list of Spotify playlists tagged with a particular category.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify category ID](/documentation/web-api/#spotify-uris-and-ids) for the category.",
"in": "path",
"name": "category_id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A country: an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Provide this parameter to ensure that the category exists for a particular country.",
"in": "query",
"name": "country",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The index of the first item to return. Default: 0 (the first object). Use with `limit` to get the next set of items.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist"
}
}
}
}
}
}
},
"/browse/featured-playlists": {
"get": {
"operationId": "GetAllFeaturedPlaylists",
"description": "Get a list of Spotify featured playlists (shown, for example, on a Spotify player’s ‘Browse’ tab).",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A country: an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Provide this parameter if you want the list of returned items to be relevant to a particular country. If omitted, the returned items will be relevant to all countries.",
"in": "query",
"name": "country",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The desired language, consisting of a lowercase [ISO 639-1 language code](http://en.wikipedia.org/wiki/ISO_639-1) and an uppercase [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), joined by an underscore. For example: `es_MX`, meaning “Spanish (Mexico)”. Provide this parameter if you want the results returned in a particular language (where available). Note that, if `locale` is not supplied, or if the specified language is not available, all strings will be returned in the Spotify default language (American English). The `locale` parameter, combined with the `country` parameter, may give odd results if not carefully matched. For example `country=SE&locale=de_DE` will return a list of categories relevant to Sweden but as German language strings.",
"in": "query",
"name": "locale",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first item to return. Default: 0 (the first object). Use with `limit` to get the next set of items.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "A timestamp in [ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601): `yyyy-MM-ddTHH:mm:ss`. Use this parameter to specify the user’s local time to get results tailored for that specific date and time in the day. If not provided, the response defaults to the current UTC time. Example: “2014-10-23T09:00:00” for a user whose local time is 9AM. If there were no featured playlists (or there is no data) at the specified time, the response will revert to the current UTC time.",
"in": "query",
"name": "timestamp",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist"
}
}
}
}
}
}
},
"/browse/new-releases": {
"get": {
"operationId": "GetAllNewReleases",
"description": "Get a list of new album releases featured in Spotify (shown, for example, on a Spotify player’s “Browse” tab).",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A country: an [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Provide this parameter if you want the list of returned items to be relevant to a particular country. If omitted, the returned items will be relevant to all countries.",
"in": "query",
"name": "country",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The index of the first item to return. Default: 0 (the first object). Use with `limit` to get the next set of items.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/album"
}
}
}
}
}
}
},
"/me": {
"get": {
"operationId": "GetCurrentUsersProfile",
"description": "Get detailed profile information about the current user (including the current user’s username).",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the current user. \nReading the user’s email address requires the `user-read-email` scope; reading country and product subscription level requires the `user-read-private` scope. Reading the user’s birthdate requires the `user-read-birthdate` scope. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/user"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
}
}
},
"/me/albums": {
"get": {
"operationId": "GetUsersSavedAlbums",
"description": "Get a list of the albums saved in the current Spotify user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The `user-library-read` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) must have been authorized by the user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first object to return. Default: 0 (i.e., the first object). Use with `limit` to get the next set of objects.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/album"
}
}
}
}
}
},
"put": {
"operationId": "SaveAlbumsForCurrentUser",
"description": "Save one or more albums to the current user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nModification of the current user’s “Your Music” collection requires authorization of the `user-library-modify` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Required if the IDs are passed in the request body, otherwise ignored._ The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
},
"delete": {
"operationId": "RemoveAlbumsForCurrentUser",
"description": "Remove one or more albums from the current user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nModification of the current user’s “Your Music” collection requires authorization of the `user-library-modify` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Required if the IDs are passed in the request body, otherwise ignored._ The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
}
},
"/me/albums/contains": {
"get": {
"operationId": "CheckUsersSavedAlbums",
"description": "Check if one or more albums is already saved in the current Spotify user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The `user-library-read` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) must have been authorized by the user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for the albums. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/me/following": {
"delete": {
"operationId": "UnfollowArtistsOrUsers",
"description": "Remove the current user as a follower of one or more artists or other Spotify users.",
"parameters": [
{
"description": "A valid user access token or your client credentials. Requires the `user-follow-modify` scope.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Required if IDs are passed in the request body, otherwise ignored_. The content type of the request body: `application/json`.",
"in": "header",
"name": "Content-Type",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the artist or the user [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids). For example: `ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q`. A maximum of 50 IDs can be sent in one request.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The ID type: either `artist` or `user`.",
"in": "query",
"name": "type",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
},
"get": {
"operationId": "GetUsersFollowedArtists",
"description": "Get the current user’s followed artists.",
"parameters": [
{
"description": "The last artist ID retrieved from the previous request.",
"in": "query",
"name": "after",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "A valid user access token or your client credentials. Requires the `user-follow-modify` scope.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The ID type: currently only `artist` is supported.",
"in": "query",
"name": "type",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/cursor-based-paging"
}
}
}
}
}
},
"put": {
"operationId": "FollowArtistsOrUsers",
"description": "Add the current user as a follower of one or more artists or other Spotify users.",
"parameters": [
{
"description": "A valid user access token or your client credentials. Requires the `user-follow-modify` scope.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Required if IDs are passed in the request body, otherwise ignored_. The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the artist or the user [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids). For example: `ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q`. A maximum of 50 IDs can be sent in one request.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The ID type: either `artist` or `user`.",
"in": "query",
"name": "type",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ids"
],
"type": "object"
}
}
},
"required": true
}
}
},
"/me/following/contains": {
"get": {
"operationId": "GetFollowingStateForArtists/Users",
"description": "Check to see if the current user is following one or more artists or other Spotify users.",
"parameters": [
{
"description": "A valid user access token or your client credentials. Requires the `user-follow-read` scope.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the artist or the user [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) to check. For example: `ids=74ASZWbe4lXaubB36ztrGX,08td7MxkoHQkXnWAYD8d6Q`. A maximum of 50 IDs can be sent in one request.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The ID type: either `artist` or `user`.",
"in": "query",
"name": "type",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/me/player": {
"get": {
"operationId": "GetInformationAboutTheUsersCurrentPlayback",
"description": "Get information about the user’s current playback state, including track, track progress, and active device.",
"parameters": [
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
},
"put": {
"operationId": "TransferAUsersPlayback",
"description": "Transfer playback to a new device and determine if it should start playing.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"play": {
"type": "boolean"
},
"device_ids": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"device_ids"
],
"type": "object"
}
}
},
"required": true
}
}
},
"/me/player/currently-playing": {
"get": {
"operationId": "GetTheUsersCurrentlyPlayingTrack",
"description": "Get the object currently being played on the user’s Spotify account.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of a user. The access token must have the `user-read-currently-playing` and/or `user-read-playback-state` scope authorized in order to read information.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/me/player/devices": {
"get": {
"operationId": "GetAUsersAvailableDevices",
"description": "Get information about a user’s available devices.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of a user. The access token must have the `user-read-playback-state` scope authorized in order to read information.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/me/player/next": {
"post": {
"operationId": "SkipUsersPlaybackToNextTrack",
"description": "Skips to next track in the user’s queue.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/me/player/pause": {
"put": {
"operationId": "PauseAUsersPlayback",
"description": "Pause playback on the user’s account.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/me/player/play": {
"put": {
"operationId": "Start/ResumeAUsersPlayback",
"description": "Start a new context or resume current playback on the user’s active device.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"position_ms": {
"type": "integer"
},
"offset": {
"type": "object"
},
"uris": {
"items": {
"type": "string"
},
"type": "array"
},
"context_uri": {
"type": "string"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
}
},
"/me/player/previous": {
"post": {
"operationId": "SkipUsersPlaybackToPreviousTrack",
"description": "Skips to previous track in the user’s queue.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/me/player/recently-played": {
"get": {
"operationId": "GetCurrentUsersRecentlyPlayedTracks",
"description": "Get tracks from the current user’s recently played tracks.",
"parameters": [
{
"description": "A Unix timestamp in milliseconds. Returns all items after (but not including) this cursor position. If `after` is specified, `before` must not be specified.",
"in": "query",
"name": "after",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of a user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A Unix timestamp in milliseconds. Returns all items before (but not including) this cursor position. If `before` is specified, `after` must not be specified.",
"in": "query",
"name": "before",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/play-history"
}
}
}
},
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/play-history"
}
}
}
}
}
}
},
"/me/player/repeat": {
"put": {
"operationId": "SetRepeatModeOnUsersPlayback",
"description": "Set the repeat mode for the user’s playback. Options are repeat-track, repeat-context, and off.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "**track**, **context** or **off**. \n**track** will repeat the current track. \n**context** will repeat the current context. \n**off** will turn repeat off.",
"in": "query",
"name": "state",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/me/player/seek": {
"put": {
"operationId": "SeekToPositionInCurrentlyPlayingTrack",
"description": "Seeks to the given position in the user’s currently playing track.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The position in milliseconds to seek to. Must be a positive number. Passing in a position that is greater than the length of the track will cause the player to start playing the next song.",
"in": "query",
"name": "position_ms",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/me/player/shuffle": {
"put": {
"operationId": "ToggleShuffleForUsersPlayback",
"description": "Toggle shuffle on or off for user’s playback.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "**true** : Shuffle user’s playback \n**false** : Do not shuffle user’s playback.",
"in": "query",
"name": "state",
"required": true,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/me/player/volume": {
"put": {
"operationId": "SetVolumeForUsersPlayback",
"description": "Set the volume for the user’s current playback device.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nThe access token must have been issued on behalf of a user. \nThe access token must have the `user-modify-playback-state` scope authorized in order to control playback.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The id of the device this command is targeting. If not supplied, the user’s currently active device is the target.",
"in": "query",
"name": "device_id",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The volume to set. Must be a value from 0 to 100 inclusive.",
"in": "query",
"name": "volume_percent",
"required": true,
"schema": {
"type": "integer"
}
}
],
"responses": {
"204": {
"description": "NO CONTENT",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Get-Information-About-The-User’s-Current-Playback-"
}
}
}
},
"403": {
"description": "FORBIDDEN"
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/me/playlists": {
"get": {
"operationId": "GetAListOfCurrentUsersPlaylists",
"description": "Get a list of the playlists owned or followed by the current Spotify user.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nPrivate playlists are only retrievable _for the current user_ and requires the `playlist-read-private` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) to have been authorized by the user. Note that this scope alone will not return collaborative playlists, even though they are always private. \nCollaborative playlists are only retrievable _for the current user_ and requires the `playlist-read-collaborative` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) to have been authorized by the user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of playlists to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The index of the first playlist to return. Default: 0 (the first object). Maximum offset: 100.000. Use with `limit` to get the next set of playlists.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist"
}
}
}
}
}
}
},
"/me/top/{type}": {
"get": {
"operationId": "GetAUsersTopArtistsAndTracks",
"description": "Get the current user’s top artists or tracks based on calculated affinity.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the current user. \nGetting details of a user’s top artists and tracks requires authorization of the `user-top-read` scope. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first entity to return. Default: 0 (i.e., the first track). Use with limit to get the next set of entities.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "Over what time frame the affinities are computed. Valid values: `long_term` (calculated from several years of data and including all new data as it becomes available), `medium_term` (approximately last 6 months), `short_term` (approximately last 4 weeks). Default: `medium_term`",
"in": "query",
"name": "time_range",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The type of entity to return. Valid values: `artists` or `tracks`",
"in": "path",
"name": "type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The number of entities to return. Default: 20. Minimum: 1. Maximum: 50. For example: `limit=2`",
"in": "query",
"name": "type",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/paging"
}
}
}
}
}
}
},
"/me/tracks": {
"get": {
"operationId": "GetUsersSavedTracks",
"description": "Get a list of the songs saved in the current Spotify user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The `user-library-read` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) must have been authorized by the user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of objects to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first object to return. Default: 0 (i.e., the first object). Use with `limit` to get the next set of objects.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/saved-track"
}
}
}
}
}
},
"delete": {
"operationId": "RemoveUsersSavedTracks",
"description": "Remove one or more tracks from the current user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nModification of the current user’s “Your Music” collection requires authorization of the `user-library-modify` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Required if the IDs are passed in the request body, otherwise ignored._ The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
}
},
"put": {
"operationId": "SaveTracksForUser",
"description": "Save one or more tracks to the current user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nModification of the current user’s “Your Music” collection requires authorization of the `user-library-modify` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Required if the IDs are passed in the request body, otherwise ignored._ The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
}
}
},
"/me/tracks/contains": {
"get": {
"operationId": "CheckUsersSavedTracks",
"description": "Check if one or more tracks is already saved in the current Spotify user’s ‘Your Music’ library.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The `user-library-read` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) must have been authorized by the user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for the tracks. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Try-in-our-Web-Console"
}
}
}
}
}
}
},
"/playlists/{playlist_id}": {
"put": {
"operationId": "ChangeAPlaylistsDetails",
"description": "Change a playlist’s name and public/private state. (The user must, of course, own the playlist.)",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. \nChanging a public playlist for a user requires authorization of the `playlist-modify-public` scope; changing a private playlist requires the `playlist-modify-private` scope. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "empty"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"description": {
"type": "string"
},
"collaborative": {
"type": "boolean"
},
"public": {
"type": "boolean"
},
"name": {
"type": "string"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
},
"get": {
"operationId": "GetAPlaylist",
"description": "Get a playlist owned by a Spotify user.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. Both Public and Private playlists belonging to any user are retrievable on provision of a valid access token.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are returned. For example, to get just the playlist’s description and URI: `fields=description,uri`. A dot separator can be used to specify non-reoccurring fields, while parentheses can be used to specify reoccurring fields within objects. For example, to get just the added date and user ID of the adder: `fields=tracks.items(added_at,added_by.id)`. Use multiple parentheses to drill down into nested objects, for example: `fields=tracks.items(track(name,href,album(name,href)))`. Fields can be excluded by prefixing them with an exclamation mark, for example: `fields=tracks.items(track(name,href,album(!name,href)))`",
"in": "query",
"name": "fields",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
}
}
},
"/playlists/{playlist_id}/followers": {
"delete": {
"operationId": "UnfollowPlaylist",
"description": "Remove the current user as a follower of a playlist.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. \nUnfollowing a publicly followed playlist for a user requires authorization of the `playlist-modify-public` scope; unfollowing a privately followed playlist requires the `playlist-modify-private` scope. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes). \n_Note that the scopes you provide relate only to whether the current user is following the playlist publicly or privately (i.e. showing others what they are following), not whether the playlist itself is public or private._",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) of the playlist that is to be no longer followed.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Try-in-our-Web-Console"
}
}
}
}
}
},
"put": {
"operationId": "FollowAPlaylist",
"description": "Add the current user as a follower of a playlist.",
"parameters": [
{
"description": "A valid user access token or your client credentials. Requires the `user-follow-modify` scope.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) of the playlist. Any playlist can be followed, regardless of its [public/private status](/documentation/general/guides/working-with-playlists/#public-private-and-collaborative-status), as long as you know its playlist ID.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"public": {
"type": "boolean"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
}
},
"/playlists/{playlist_id}/followers/contains": {
"get": {
"operationId": "CheckIfUsersFollowAPlaylist",
"description": "Check to see if one or more Spotify users are following a specified playlist.",
"parameters": [
{
"description": "A valid user access token or your client credentials. Requires the `playlist-read-private` scope if a private playlist is requested.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of [Spotify User IDs](/documentation/web-api/#spotify-uris-and-ids) ; the ids of the users that you want to check to see if they follow the playlist. Maximum: 5 ids.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) of the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/playlists/{playlist_id}/images": {
"put": {
"operationId": "UploadACustomPlaylistCoverImage",
"description": "Replace the image used to represent a specific playlist.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. \nThis access token must be tied to the user who owns the playlist, and must have the scope `ugc-image-upload granted`. In addition, the token must also contain `playlist-modify-public` and/or `playlist-modify-private`, depending the public status of the playlist you want to update . See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The content type of the request body: `image/jpeg`",
"in": "header",
"name": "Content-Type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"429": {}
}
},
"get": {
"operationId": "GetAPlaylistCoverImage",
"description": "Get the current image associated with a specific playlist.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. \nThis access token must be issued on behalf of the user. \nCurrent playlist image for both Public and Private playlists of any user are retrievable on provision of a valid access token.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/image"
}
}
}
}
}
}
},
"/playlists/{playlist_id}/tracks": {
"put": {
"operationId": "ReplaceAPlaylistsTracks",
"description": "Replace all the tracks in a playlist, overwriting its existing tracks. This powerful request can be useful for replacing tracks, re-ordering existing tracks, or clearing the playlist.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. \nSetting tracks in the current user’s public playlists requires authorization of the `playlist-modify-public scope`; setting tracks in the current user’s private playlist (including collaborative playlists) requires the `playlist-modify-private scope`. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "if URIs are passed in the request body, otherwise ignored.\\_ The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of [Spotify track URIs](/documentation/web-api/#spotify-uris-and-ids) to set. For example: `uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh,spotify:track:1301WleyT98MSxVHPZCA6M` \nA maximum of 100 tracks can be set in one request.",
"in": "query",
"name": "uris",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"uris": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
},
"get": {
"operationId": "GetAPlaylistsTracks",
"description": "Get full details of the tracks of a playlist owned by a Spotify user.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. Both Public and Private playlists belonging to any user are retrievable on provision of a valid access token.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Filters for the query: a comma-separated list of the fields to return. If omitted, all fields are returned. For example, to get just the total number of tracks and the request limit: \n`fields=total,limit` \nA dot separator can be used to specify non-reoccurring fields, while parentheses can be used to specify reoccurring fields within objects. For example, to get just the added date and user ID of the adder: \n`fields=items(added_at,added_by.id)` \nUse multiple parentheses to drill down into nested objects, for example: \n`fields=items(track(name,href,album(name,href)))` \nFields can be excluded by prefixing them with an exclamation mark, for example: \n`fields=items.track.album(!external_urls,images)`",
"in": "query",
"name": "fields",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of tracks to return. Default: 100. Minimum: 1. Maximum: 100.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first track to return. Default: 0 (the first object).",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist-track"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
}
},
"delete": {
"operationId": "RemoveTracksFromAPlaylist",
"description": "Remove one or more tracks from a user’s playlist.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. Removing tracks from a user’s public playlist requires authorization of the `playlist-modify-public` scope; removing tracks from a private playlist requires the `playlist-modify-private` scope. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"400": {
"description": "BAD REQUEST"
},
"403": {
"description": "FORBIDDEN"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"snapshot_id": {
"type": "string"
},
"tracks": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"tracks"
],
"type": "object"
}
}
},
"required": true
}
},
"post": {
"operationId": "AddTracksToAPlaylist",
"description": "Add one or more tracks to a user’s playlist.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. \nAdding tracks to the current user’s public playlists requires authorization of the `playlist-modify-public` scope; adding tracks to the current user’s private playlist (including collaborative playlists) requires the `playlist-modify-private` scope. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Required if URIs are passed in the request body, otherwise ignored._ The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"in": "path",
"name": "playlist_id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The position to insert the tracks, a zero-based index. For example, to insert the tracks in the first position: `position=0`; to insert the tracks in the third position: `position=2` . If omitted, the tracks will be appended to the playlist. Tracks are added in the order they are listed in the query string or request body.",
"in": "query",
"name": "position",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "A comma-separated list of [Spotify track URIs](/documentation/web-api/#spotify-uris-and-ids) to add. For example: \n`uris=spotify:track:4iV5W9uYEdYUVa79Axb7Rh, spotify:track:1301WleyT98MSxVHPZCA6M` \nA maximum of 100 tracks can be added in one request. _Note: it is likely that passing a large number of track URIs as a query parameter will exceed the maximum length of the request URI. When adding a large number of tracks it is recommended to pass them in the request body, see below._",
"in": "query",
"name": "uri",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"position": {
"type": "integer"
},
"uris": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [],
"type": "object"
}
}
},
"required": true
}
}
},
"/recommendations": {
"get": {
"operationId": "GetRecommendations",
"description": "Recommendations are generated based on the available information for a given seed entity and matched against similar artists and tracks. If there is sufficient information about the provided seeds, a list of tracks will be returned together with pool size details.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The target size of the list of recommended tracks. For seeds with unusually small pools or when highly restrictive filtering is applied, it may be impossible to generate the requested number of recommended tracks. Debugging information for such cases is available in the response. Default: 20. Minimum: 1. Maximum: 100.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide). Because `min_*`, `max_*` and `target_*` are applied to pools before relinking, the generated results may not precisely match the filters applied. Original, non-relinked tracks are available via the `linked_from` attribute of the [relinked track response](/documentation/general/guides/track-relinking-guide).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "_Multiple values_. For each tunable track attribute, a hard ceiling on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, `max_instrumentalness=0.35` would filter out most tracks that are likely to be instrumental.",
"in": "query",
"name": "max_*",
"required": false,
"schema": {
"type": "float"
}
},
{
"description": "_Multiple values_. For each tunable track attribute, a hard floor on the selected track attribute’s value can be provided. See tunable track attributes below for the list of available options. For example, `min_tempo=140` would restrict results to only those tracks with a tempo of greater than 140 beats per minute.",
"in": "query",
"name": "min_*",
"required": false,
"schema": {
"type": "float"
}
},
{
"description": "A comma separated list of [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for seed artists. Up to 5 seed values may be provided in any combination of `seed_artists`, `seed_tracks` and `seed_genres`.",
"in": "query",
"name": "seed_artists",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma separated list of any genres in the set of [available genre seeds](#available-genre-seeds). Up to 5 seed values may be provided in any combination of `seed_artists`, `seed_tracks` and `seed_genres`.",
"in": "query",
"name": "seed_genres",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma separated list of [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for a seed track. Up to 5 seed values may be provided in any combination of `seed_artists`, `seed_tracks` and `seed_genres`.",
"in": "query",
"name": "seed_tracks",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "_Multiple values_. For each of the tunable track attributes (below) a target value may be provided. Tracks with the attribute values nearest to the target values will be preferred. For example, you might request `target_energy=0.6` and `target_danceability=0.8`. All target values will be weighed equally in ranking results.",
"in": "query",
"name": "target_*",
"required": false,
"schema": {
"type": "float"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/recommendations/available-genre-seeds": {
"get": {
"operationId": "GetRecommendationGenres",
"description": "Retrieve a list of available genres seed parameter values for recommendations.",
"parameters": [
{
"description": "A valid user access token or your client credentials.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "N/A"
}
}
}
}
}
}
},
"/search": {
"get": {
"operationId": "SearchForAnItem",
"description": "Get Spotify Catalog information about artists, albums, tracks or playlists that match a keyword string.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "Possible values: _audio_ \nIf _include\\_external=audio_ is specified the response will include any relevant audio content that is hosted externally. \nBy default external content is filtered out from responses.",
"in": "query",
"name": "include_external",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "Maximum number of results to return. \nDefault: 20 \nMinimum: 1 \nMaximum: 50 \n**Note**: The limit is applied within each type, not on the total response. \nFor example, if the limit value is 3 and the type is `artist,album`, the response contains 3 artists and 3 albums.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. \nIf a country code is specified, only artists, albums, and tracks with content that is playable in that market is returned. \n**Note**: \n\\- Playlist results are not affected by the market parameter. \n\\- If market is set to `from_token`, and a valid access token is specified in the request header, only content playable in the country associated with the user account, is returned. \n\\- Users can view the country that is associated with their account in the [account settings](https://www.spotify.com/se/account/overview/). A user must grant access to the `user-read-private` scope prior to when the access token is issued.",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "The index of the first result to return. \nDefault: 0 (the first result). \nMaximum offset (including limit): 10,000. \nUse with limit to get the next page of search results.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "Search [query](#writing-a-query---guidelines) keywords and optional field filters and operators. \nFor example: \n`q=roadhouse%20blues`.",
"in": "query",
"name": "q",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of item types to search across. \nValid types are: `album` , `artist`, `playlist`, and `track`. \nSearch results include hits from all the specified item types. \nFor example: `q=name:abacab&type=album,track` returns both albums _**and**_ tracks with “abacab” included in their name.",
"in": "query",
"name": "type",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {}
}
},
"/tracks": {
"get": {
"operationId": "GetSeveralTracks",
"description": "Get Spotify catalog information for multiple tracks based on their Spotify IDs.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "A comma-separated list of the [Spotify IDs](/documentation/web-api/#spotify-uris-and-ids) for the tracks. Maximum: 50 IDs.",
"in": "query",
"name": "ids",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/track"
}
}
}
}
}
}
},
"/tracks/{id}": {
"get": {
"operationId": "GetATrack",
"description": "Get Spotify catalog information for a single track identified by its unique Spotify ID.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the track.",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) or the string `from_token`. Provide this parameter if you want to apply [Track Relinking](/documentation/general/guides/track-relinking-guide/).",
"in": "query",
"name": "market",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/track"
}
}
}
}
}
}
},
"/users/{user_id}": {
"get": {
"operationId": "GetAUsersProfile",
"description": "Get public profile information about a Spotify user.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The user’s [Spotify user ID](/documentation/web-api/#spotify-uris-and-ids).",
"in": "path",
"name": "user_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/user"
}
}
}
},
"404": {
"description": "NOT FOUND"
}
}
}
},
"/users/{user_id}/playlists": {
"post": {
"operationId": "CreateAPlaylist",
"description": "Create a playlist for a Spotify user. (The playlist will be empty until you add tracks.)",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. The access token must have been issued on behalf of the user. Creating a public playlist for a user requires authorization of the `playlist-modify-public` scope; creating a private playlist requires the `playlist-modify-private` scope. See [Using Scopes](/documentation/general/guides/authorization-guide/#list-of-scopes).",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The content type of the request body: `application/json`",
"in": "header",
"name": "Content-Type",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The user’s [Spotify user ID](/documentation/web-api/#spotify-uris-and-ids).",
"in": "path",
"name": "user_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist"
}
}
}
},
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist"
}
}
}
},
"403": {
"description": "FORBIDDEN"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"description": {
"type": "string"
},
"collaborative": {
"type": "boolean"
},
"public": {
"type": "boolean"
},
"name": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
}
},
"required": true
}
},
"get": {
"operationId": "GetAListOfAUsersPlaylists",
"description": "Get a list of the playlists owned or followed by a Spotify user.",
"parameters": [
{
"description": "A valid access token from the Spotify Accounts service: see the [Web API Authorization Guide](/documentation/general/guides/authorization-guide/) for details. \nPrivate playlists are only retrievable _for the current user_ and requires the `playlist-read-private` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) to have been authorized by the user. Note that this scope alone will not return collaborative playlists, even though they are always private. \nCollaborative playlists are only retrievable _for the current user_ and requires the `playlist-read-collaborative` [scope](/documentation/general/guides/authorization-guide/#list-of-scopes) to have been authorized by the user.",
"in": "header",
"name": "Authorization",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The maximum number of playlists to return. Default: 20. Minimum: 1. Maximum: 50.",
"in": "query",
"name": "limit",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The index of the first playlist to return. Default: 0 (the first object). Maximum offset: 100.000. Use with `limit` to get the next set of playlists.",
"in": "query",
"name": "offset",
"required": false,
"schema": {
"type": "integer"
}
},
{
"description": "The user’s [Spotify user ID](/documentation/web-api/#spotify-uris-and-ids).",
"in": "path",
"name": "user_id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/playlist"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"album": {
"properties": {
"album_type": {
"description": "The type of the album: `album`, `single`, or `compilation`.",
"type": "string"
},
"artists": {
"description": "The artists of the album. Each artist object includes a link in `href` to more detailed information about the artist.",
"items": {
"$ref": "#/components/schemas/artist"
},
"type": "array"
},
"available_markets": {
"description": "The markets in which the album is available: [ISO 3166-1 alpha-2 country codes](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Note that an album is considered available in a market when at least 1 of its tracks is available in that market.",
"items": {
"type": "string"
},
"type": "array"
},
"copyrights": {
"description": "The copyright statements of the album.",
"items": {
"$ref": "#/components/schemas/copyright"
},
"type": "array"
},
"external_ids": {
"description": "Known external IDs for the album.",
"$ref": "#/components/schemas/external-id"
},
"external_urls": {
"description": "Known external URLs for this album.",
"$ref": "#/components/schemas/external-url"
},
"genres": {
"description": "A list of the genres used to classify the album. For example: “Prog Rock” , “Post-Grunge”. (If not yet classified, the array is empty.)",
"items": {
"type": "string"
},
"type": "array"
},
"href": {
"description": "A link to the Web API endpoint providing full details of the album.",
"type": "string"
},
"id": {
"description": "The Spotify ID for the album.",
"type": "string"
},
"images": {
"description": "The cover art for the album in various sizes, widest first.",
"items": {
"$ref": "#/components/schemas/image"
},
"type": "array"
},
"label": {
"description": "The label for the album.",
"type": "string"
},
"name": {
"description": "The name of the album. In case of an album takedown, the value may be an empty string.",
"type": "string"
},
"popularity": {
"description": "The popularity of the album. The value will be between 0 and 100, with 100 being the most popular. The popularity is calculated from the popularity of the album’s individual tracks.",
"type": "integer"
},
"release_date": {
"description": "The date the album was first released, for example “1981-12-15”. Depending on the precision, it might be shown as “1981” or “1981-12”.",
"type": "string"
},
"release_date_precision": {
"description": "The precision with which release\\_date value is known: “year” , “month” , or “day”.",
"type": "string"
},
"tracks": {
"description": "The tracks of the album.",
"items": {
"$ref": "#/components/schemas/simplifiedtrack"
},
"type": "array"
},
"type": {
"description": "The object type: “album”",
"type": "string"
},
"uri": {
"description": "The Spotify URI for the album.",
"type": "string"
}
},
"type": "object"
},
"artist": {
"properties": {
"external_urls": {
"description": "Known external URLs for this artist.",
"$ref": "#/components/schemas/external-url"
},
"followers": {
"description": "Information about the followers of the artist.",
"$ref": "#/components/schemas/followers"
},
"genres": {
"description": "A list of the genres the artist is associated with. For example: `\"Prog Rock\"` , `\"Post-Grunge\"`. (If not yet classified, the array is empty.)",
"items": {
"type": "string"
},
"type": "array"
},
"href": {
"description": "A link to the Web API endpoint providing full details of the artist.",
"type": "string"
},
"id": {
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the artist.",
"type": "string"
},
"images": {
"description": "Images of the artist in various sizes, widest first.",
"items": {
"$ref": "#/components/schemas/image"
},
"type": "array"
},
"name": {
"description": "The name of the artist.",
"type": "string"
},
"popularity": {
"description": "The popularity of the artist. The value will be between 0 and 100, with 100 being the most popular. The artist’s popularity is calculated from the popularity of all the artist’s tracks.",
"type": "integer"
},
"type": {
"description": "The object type: `\"artist\"`",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for the artist.",
"type": "string"
}
},
"type": "object"
},
"audio-features": {
"properties": {
"acousticness": {
"description": "A confidence measure from 0.0 to 1.0 of whether the track is acoustic. 1.0 represents high confidence the track is acoustic.",
"type": "float"
},
"analysis_url": {
"description": "An HTTP URL to access the full audio analysis of this track. An access token is required to access this data.",
"type": "string"
},
"danceability": {
"description": "Danceability describes how suitable a track is for dancing based on a combination of musical elements including tempo, rhythm stability, beat strength, and overall regularity. A value of 0.0 is least danceable and 1.0 is most danceable.",
"type": "float"
},
"duration_ms": {
"description": "The duration of the track in milliseconds.",
"type": "integer"
},
"energy": {
"description": "Energy is a measure from 0.0 to 1.0 and represents a perceptual measure of intensity and activity. Typically, energetic tracks feel fast, loud, and noisy. For example, death metal has high energy, while a Bach prelude scores low on the scale. Perceptual features contributing to this attribute include dynamic range, perceived loudness, timbre, onset rate, and general entropy.",
"type": "float"
},
"id": {
"description": "The Spotify ID for the track.",
"type": "string"
},
"instrumentalness": {
"description": "Predicts whether a track contains no vocals. “Ooh” and “aah” sounds are treated as instrumental in this context. Rap or spoken word tracks are clearly “vocal”. The closer the instrumentalness value is to 1.0, the greater likelihood the track contains no vocal content. Values above 0.5 are intended to represent instrumental tracks, but confidence is higher as the value approaches 1.0.",
"type": "float"
},
"key": {
"description": "The key the track is in. Integers map to pitches using standard [Pitch Class notation](https://en.wikipedia.org/wiki/Pitch_class) . E.g. 0 = C, 1 = C♯/D♭, 2 = D, and so on.",
"type": "integer"
},
"liveness": {
"description": "Detects the presence of an audience in the recording. Higher liveness values represent an increased probability that the track was performed live. A value above 0.8 provides strong likelihood that the track is live.",
"type": "float"
},
"loudness": {
"description": "The overall loudness of a track in decibels (dB). Loudness values are averaged across the entire track and are useful for comparing relative loudness of tracks. Loudness is the quality of a sound that is the primary psychological correlate of physical strength (amplitude). Values typical range between -60 and 0 db.",
"type": "float"
},
"mode": {
"description": "Mode indicates the modality (major or minor) of a track, the type of scale from which its melodic content is derived. Major is represented by 1 and minor is 0.",
"type": "integer"
},
"speechiness": {
"description": "Speechiness detects the presence of spoken words in a track. The more exclusively speech-like the recording (e.g. talk show, audio book, poetry), the closer to 1.0 the attribute value. Values above 0.66 describe tracks that are probably made entirely of spoken words. Values between 0.33 and 0.66 describe tracks that may contain both music and speech, either in sections or layered, including such cases as rap music. Values below 0.33 most likely represent music and other non-speech-like tracks.",
"type": "float"
},
"tempo": {
"description": "The overall estimated tempo of a track in beats per minute (BPM). In musical terminology, tempo is the speed or pace of a given piece and derives directly from the average beat duration.",
"type": "float"
},
"time_signature": {
"description": "An estimated overall time signature of a track. The time signature (meter) is a notational convention to specify how many beats are in each bar (or measure).",
"type": "integer"
},
"track_href": {
"description": "A link to the Web API endpoint providing full details of the track.",
"type": "string"
},
"type": {
"description": "The object type: “audio\\_features”",
"type": "string"
},
"uri": {
"description": "The Spotify URI for the track.",
"type": "string"
},
"valence": {
"description": "A measure from 0.0 to 1.0 describing the musical positiveness conveyed by a track. Tracks with high valence sound more positive (e.g. happy, cheerful, euphoric), while tracks with low valence sound more negative (e.g. sad, depressed, angry).",
"type": "float"
}
},
"type": "object"
},
"category": {
"properties": {
"href": {
"description": "A link to the Web API endpoint returning full details of the category.",
"type": "string"
},
"icons": {
"description": "The category icon, in various sizes.",
"items": {
"$ref": "#/components/schemas/image"
},
"type": "array"
},
"id": {
"description": "The [Spotify category ID](/documentation/web-api/#spotify-uris-and-ids) of the category.",
"type": "string"
},
"name": {
"description": "The name of the category.",
"type": "string"
}
},
"type": "object"
},
"context": {
"properties": {
"external_urls": {
"description": "External URLs for this context.",
"$ref": "#/components/schemas/external-url"
},
"href": {
"description": "A link to the Web API endpoint providing full details of the track.",
"type": "string"
},
"type": {
"description": "The object type, e.g. “artist”, “playlist”, “album”.",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for the context.",
"type": "string"
}
},
"type": "object"
},
"currently-playing": {
"properties": {
"context": {
"description": "A Context Object. Can be `null`.",
"$ref": "#/components/schemas/context"
},
"currently_playing_type": {
"description": "The object type of the currently playing item. Can be one of `track`, `episode`, `ad` or `unknown`.",
"type": "string"
},
"is_playing": {
"description": "If something is currently playing, return `true`.",
"type": "boolean"
},
"item": {
"description": "The currently playing track. Can be `null`.",
"$ref": "#/components/schemas/track"
},
"progress_ms": {
"description": "Progress into the currently playing track. Can be `null`.",
"type": "integer"
},
"timestamp": {
"description": "Unix Millisecond Timestamp when data was fetched",
"type": "integer"
}
},
"type": "object"
},
"cursor": {
"properties": {
"after": {
"description": "The cursor to use as key to find the next page of items.",
"type": "string"
}
},
"type": "object"
},
"cursor-paging": {
"properties": {
"cursors": {
"description": "The cursors used to find the next set of items.",
"$ref": "#/components/schemas/cursor"
},
"href": {
"description": "A link to the Web API endpoint returning the full result of the request.",
"type": "string"
},
"items": {
"description": "The requested data.",
"items": {
"$ref": "#/components/schemas/"
},
"type": "array"
},
"limit": {
"description": "The maximum number of items in the response (as set in the query or by default).",
"type": "integer"
},
"next": {
"description": "URL to the next page of items. ( `null` if none)",
"type": "string"
},
"total": {
"description": "The total number of items available to return.",
"type": "integer"
}
},
"type": "object"
},
"device": {
"properties": {
"id": {
"description": "The device ID. This may be `null`.",
"type": "string"
},
"is_active": {
"description": "If this device is the currently active device.",
"type": "boolean"
},
"is_private_session": {
"description": "If this device is currently in a private session.",
"type": "boolean"
},
"is_restricted": {
"description": "Whether controlling this device is restricted. At present if this is “true” then no Web API commands will be accepted by this device.",
"type": "boolean"
},
"name": {
"description": "The name of the device.",
"type": "string"
},
"type": {
"description": "Device type, such as “computer”, “smartphone” or “speaker”.",
"type": "string"
},
"volume_percent": {
"description": "The current volume in percent. This may be null.",
"type": "integer"
}
},
"type": "object"
},
"devices": {
"properties": {
"devices": {
"description": "A list of 0..n Device objects",
"items": {
"$ref": "#/components/schemas/device"
},
"type": "array"
}
},
"type": "object"
},
"external-id": {
"properties": {
"ean": {
"description": "[International Article Number](http://en.wikipedia.org/wiki/International_Article_Number_%28EAN%29)",
"type": "string"
},
"isrc": {
"description": "[International Standard Recording Code](http://en.wikipedia.org/wiki/International_Standard_Recording_Code)",
"type": "string"
},
"upc": {
"description": "[Universal Product Code](http://en.wikipedia.org/wiki/Universal_Product_Code)",
"type": "string"
}
},
"type": "object"
},
"paging": {
"properties": {
"href": {
"description": "A link to the Web API endpoint returning the full result of the request",
"type": "string"
},
"items": {
"description": "The requested data.",
"items": {
"$ref": "#/components/schemas/"
},
"type": "array"
},
"limit": {
"description": "The maximum number of items in the response (as set in the query or by default).",
"type": "integer"
},
"next": {
"description": "URL to the next page of items. ( `null` if none)",
"type": "string"
},
"offset": {
"description": "The offset of the items returned (as set in the query or by default)",
"type": "integer"
},
"previous": {
"description": "URL to the previous page of items. ( `null` if none)",
"type": "string"
},
"total": {
"description": "The total number of items available to return.",
"type": "integer"
}
},
"type": "object"
},
"play-history": {
"properties": {
"context": {
"description": "The context the track was played from.",
"$ref": "#/components/schemas/context"
},
"played_at": {
"description": "The date and time the track was played.",
"type": "timestamp"
},
"track": {
"description": "The track the user listened to.",
"$ref": "#/components/schemas/simplified-track"
}
},
"type": "object"
},
"playlist": {
"properties": {
"collaborative": {
"description": "`true` if the owner allows other users to modify the playlist.",
"type": "boolean"
},
"external_urls": {
"description": "Known external URLs for this playlist.",
"$ref": "#/components/schemas/external-url"
},
"href": {
"description": "A link to the Web API endpoint providing full details of the playlist.",
"type": "string"
},
"id": {
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"type": "string"
},
"images": {
"description": "Images for the playlist. The array may be empty or contain up to three images. The images are returned by size in descending order. See [Working with Playlists](/documentation/general/guides/working-with-playlists/). _Note: If returned, the source URL for the image (`url`) is temporary and will expire in less than a day._",
"items": {
"$ref": "#/components/schemas/image"
},
"type": "array"
},
"name": {
"description": "The name of the playlist.",
"type": "string"
},
"owner": {
"description": "The user who owns the playlist",
"$ref": "#/components/schemas/public-user"
},
"public": {
"description": "The playlist’s public/private status: `true` the playlist is public, `false` the playlist is private, `null` the playlist status is not relevant. For more about public/private status, see [Working with Playlists](/documentation/general/guides/working-with-playlists/)",
"type": "boolean"
},
"snapshot_id": {
"description": "The version identifier for the current playlist. Can be supplied in other requests to target a specific playlist version",
"type": "string"
},
"tracks": {
"description": "A collection containing a link (`href`) to the Web API endpoint where full details of the playlist’s tracks can be retrieved, along with the `total` number of tracks in the playlist.",
"items": {
"type": "tracks"
},
"type": "array"
},
"type": {
"description": "The object type: “playlist”",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for the playlist.",
"type": "string"
}
},
"type": "object"
},
"playlist-track": {
"properties": {
"added_at": {
"description": "The date and time the track was added. _Note that some very old playlists may return `null` in this field._",
"type": "timestamp"
},
"added_by": {
"description": "The Spotify user who added the track. _Note that some very old playlists may return `null` in this field._",
"$ref": "#/components/schemas/public-user"
},
"is_local": {
"description": "Whether this track is a [local file](https://developer.spotify.com/web-api/local-files-spotify-playlists/) or not.",
"type": "boolean"
},
"track": {
"description": "Information about the track.",
"$ref": "#/components/schemas/track"
}
},
"type": "object"
},
"private-user": {
"properties": {
"birthdate": {
"description": "The user’s date-of-birth. _This field is only available when the current user has granted access to the [user-read-birthdate](/documentation/general/guides/authorization-guide/#list-of-scopes) scope._",
"type": "string"
},
"country": {
"description": "The country of the user, as set in the user’s account profile. An [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). _This field is only available when the current user has granted access to the [user-read-private](/documentation/general/guides/authorization-guide/#list-of-scopes) scope._",
"type": "string"
},
"display_name": {
"description": "The name displayed on the user’s profile. `null` if not available.",
"type": "string"
},
"email": {
"description": "The user’s email address, as entered by the user when creating their account. _**Important!** This email address is unverified; there is no proof that it actually belongs to the user._ _This field is only available when the current user has granted access to the [user-read-email](/documentation/general/guides/authorization-guide/#list-of-scopes) scope._",
"type": "string"
},
"external_urls": {
"description": "Known external URLs for this user.",
"$ref": "#/components/schemas/external-url"
},
"followers": {
"description": "Information about the followers of the user.",
"$ref": "#/components/schemas/followers"
},
"href": {
"description": "A link to the Web API endpoint for this user.",
"type": "string"
},
"id": {
"description": "The [Spotify user ID](/documentation/web-api/#spotify-uris-and-ids) for the user.",
"type": "string"
},
"images": {
"description": "The user’s profile image.",
"items": {
"$ref": "#/components/schemas/image"
},
"type": "array"
},
"product": {
"description": "The user’s Spotify subscription level: “premium”, “free”, etc. (The subscription level “open” can be considered the same as “free”.) _This field is only available when the current user has granted access to the [user-read-private](/documentation/general/guides/authorization-guide/#list-of-scopes) scope._",
"type": "string"
},
"type": {
"description": "The object type: “user”",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for the user.",
"type": "string"
}
},
"type": "object"
},
"public-user": {
"properties": {
"display_name": {
"description": "The name displayed on the user’s profile. `null` if not available.",
"type": "string"
},
"external_urls": {
"description": "Known public external URLs for this user.",
"$ref": "#/components/schemas/external-url"
},
"followers": {
"description": "Information about the followers of this user.",
"$ref": "#/components/schemas/followers"
},
"href": {
"description": "A link to the Web API endpoint for this user.",
"type": "string"
},
"id": {
"description": "The [Spotify user ID](/documentation/web-api/#spotify-uris-and-ids) for this user.",
"type": "string"
},
"images": {
"description": "The user’s profile image.",
"items": {
"$ref": "#/components/schemas/image"
},
"type": "array"
},
"type": {
"description": "The object type: “user”",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for this user.",
"type": "string"
}
},
"type": "object"
},
"recommendation-seed": {
"properties": {
"afterFilteringSize": {
"description": "The number of tracks available after min\\_\\* and max\\_\\* filters have been applied.",
"type": "integer"
},
"afterRelinkingSize": {
"description": "The number of tracks available after relinking for regional availability.",
"type": "integer"
},
"href": {
"description": "A link to the full track or artist data for this seed. For tracks this will be a link to a [Track Object](/documentation/web-api/reference/object-model/#track-object-full). For artists a link to [an Artist Object](/documentation/web-api/reference/object-model/#artist-object-full). For genre seeds, this value will be `null`.",
"type": "string"
},
"id": {
"description": "The id used to select this seed. This will be the same as the string used in the `seed_artists`, `seed_tracks` or `seed_genres` parameter.",
"type": "string"
},
"initialPoolSize": {
"description": "The number of recommended tracks available for this seed.",
"type": "integer"
},
"type": {
"description": "The entity type of this seed. One of `artist`, `track` or `genre`.",
"type": "string"
}
},
"type": "object"
},
"recommendations-response": {
"properties": {
"seeds": {
"description": "An array of [recommendation seed objects](/documentation/web-api/reference/object-model/#recommendations-seed-object).",
"items": {
"$ref": "#/components/schemas/recommendationseed"
},
"type": "array"
},
"tracks": {
"description": "An array of [track object (simplified)](/documentation/web-api/reference/object-model/#track-object-simplified) ordered according to the parameters supplied.",
"items": {
"$ref": "#/components/schemas/simplifiedtrack"
},
"type": "array"
}
},
"type": "object"
},
"saved-album": {
"properties": {
"added_at": {
"description": "The date and time the album was saved Timestamps are returned in ISO 8601 format as Coordinated Universal Time (UTC) with a zero offset: YYYY-MM-DDTHH:MM:SSZ. If the time is imprecise (for example, the date/time of an album release), an additional field indicates the precision; see for example, release\\_date in an album object.",
"type": "timestamp"
},
"album": {
"description": "Information about the album.",
"$ref": "#/components/schemas/album"
}
},
"type": "object"
},
"saved-track": {
"properties": {
"added_at": {
"description": "The date and time the track was saved. Timestamps are returned in ISO 8601 format as Coordinated Universal Time (UTC) with a zero offset: YYYY-MM-DDTHH:MM:SSZ. If the time is imprecise (for example, the date/time of an album release), an additional field indicates the precision; see for example, release\\_date in an album object.",
"type": "timestamp"
},
"track": {
"description": "Information about the track.",
"$ref": "#/components/schemas/track"
}
},
"type": "object"
},
"simplified-album": {
"properties": {
"album_group": {
"description": "The field is present when getting an artist’s albums. Possible values are “album”, “single”, “compilation”, “appears\\_on”. Compare to album\\_type this field represents relationship between the artist and the album.",
"type": "string"
},
"album_type": {
"description": "The type of the album: one of “album”, “single”, or “compilation”.",
"type": "string"
},
"artists": {
"description": "The artists of the album. Each artist object includes a link in `href` to more detailed information about the artist.",
"items": {
"$ref": "#/components/schemas/simplifiedartist"
},
"type": "array"
},
"available_markets": {
"description": "The markets in which the album is available: [ISO 3166-1 alpha-2 country codes](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Note that an album is considered available in a market when at least 1 of its tracks is available in that market.",
"items": {
"type": "string"
},
"type": "array"
},
"external_urls": {
"description": "Known external URLs for this album.",
"$ref": "#/components/schemas/external-url"
},
"href": {
"description": "A link to the Web API endpoint providing full details of the album.",
"type": "string"
},
"id": {
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the album.",
"type": "string"
},
"images": {
"description": "The cover art for the album in various sizes, widest first.",
"items": {
"$ref": "#/components/schemas/image"
},
"type": "array"
},
"name": {
"description": "The name of the album. In case of an album takedown, the value may be an empty string.",
"type": "string"
},
"type": {
"description": "The object type: “album”",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for the album.",
"type": "string"
}
},
"type": "object"
},
"simplified-track": {
"properties": {
"artists": {
"description": "The artists who performed the track. Each artist object includes a link in `href` to more detailed information about the artist.",
"items": {
"$ref": "#/components/schemas/simplifiedartist"
},
"type": "array"
},
"available_markets": {
"description": "A list of the countries in which the track can be played, identified by their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.",
"items": {
"type": "string"
},
"type": "array"
},
"disc_number": {
"description": "The disc number (usually `1` unless the album consists of more than one disc).",
"type": "integer"
},
"duration_ms": {
"description": "The track length in milliseconds.",
"type": "integer"
},
"explicit": {
"description": "Whether or not the track has explicit lyrics ( `true` = yes it does; `false` = no it does not OR unknown).",
"type": "boolean"
},
"external_urls": {
"description": "External URLs for this track.",
"$ref": "#/components/schemas/external-url"
},
"href": {
"description": "A link to the Web API endpoint providing full details of the track.",
"type": "string"
},
"id": {
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the track.",
"type": "string"
},
"is_playable": {
"description": "Part of the response when [Track Relinking](/documentation/general/guides/track-relinking-guide/) is applied. If `true` , the track is playable in the given market. Otherwise `false`.",
"type": "boolean"
},
"linked_from": {
"description": "Part of the response when [Track Relinking](/documentation/general/guides/track-relinking-guide/) is applied and is only part of the response if the track linking, in fact, exists. The requested track has been replaced with a different track. The track in the `linked_from` object contains information about the originally requested track.",
"$ref": "#/components/schemas/linked-track"
},
"name": {
"description": "The name of the track.",
"type": "string"
},
"preview_url": {
"description": "A URL to a 30 second preview (MP3 format) of the track.",
"type": "string"
},
"track_number": {
"description": "The number of the track. If an album has several discs, the track number is the number on the specified disc.",
"type": "integer"
},
"type": {
"description": "The object type: “track”.",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for the track.",
"type": "string"
}
},
"type": "object"
},
"track": {
"properties": {
"album": {
"description": "The album on which the track appears. The album object includes a link in `href` to full information about the album.",
"$ref": "#/components/schemas/simplified-album"
},
"artists": {
"description": "The artists who performed the track. Each artist object includes a link in `href` to more detailed information about the artist.",
"items": {
"$ref": "#/components/schemas/artist"
},
"type": "array"
},
"available_markets": {
"description": "A list of the countries in which the track can be played, identified by their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code.",
"items": {
"type": "string"
},
"type": "array"
},
"disc_number": {
"description": "The disc number (usually `1` unless the album consists of more than one disc).",
"type": "integer"
},
"duration_ms": {
"description": "The track length in milliseconds.",
"type": "integer"
},
"explicit": {
"description": "Whether or not the track has explicit lyrics ( `true` = yes it does; `false` = no it does not OR unknown).",
"type": "boolean"
},
"external_ids": {
"description": "Known external IDs for the track.",
"$ref": "#/components/schemas/external-id"
},
"external_urls": {
"description": "Known external URLs for this track.",
"$ref": "#/components/schemas/external-url"
},
"href": {
"description": "A link to the Web API endpoint providing full details of the track.",
"type": "string"
},
"id": {
"description": "The [Spotify ID](/documentation/web-api/#spotify-uris-and-ids) for the track.",
"type": "string"
},
"is_playable": {
"description": "Part of the response when [Track Relinking](/documentation/general/guides/track-relinking-guide/) is applied. If `true` , the track is playable in the given market. Otherwise `false`.",
"type": "boolean"
},
"linked_from": {
"description": "Part of the response when [Track Relinking](/documentation/general/guides/track-relinking-guide/) is applied, and the requested track has been replaced with different track. The track in the `linked_from` object contains information about the originally requested track.",
"$ref": "#/components/schemas/track"
},
"name": {
"description": "The name of the track.",
"type": "string"
},
"popularity": {
"description": "The popularity of the track. The value will be between 0 and 100, with 100 being the most popular. \nThe popularity of a track is a value between 0 and 100, with 100 being the most popular. The popularity is calculated by algorithm and is based, in the most part, on the total number of plays the track has had and how recent those plays are. \nGenerally speaking, songs that are being played a lot now will have a higher popularity than songs that were played a lot in the past. Duplicate tracks (e.g. the same track from a single and an album) are rated independently. Artist and album popularity is derived mathematically from track popularity. Note that the popularity value may lag actual popularity by a few days: the value is not updated in real time.",
"type": "integer"
},
"preview_url": {
"description": "A link to a 30 second preview (MP3 format) of the track. Can be `null`",
"type": "string"
},
"restrictions": {
"description": "Part of the response when [Track Relinking](/documentation/general/guides/track-relinking-guide/) is applied, the original track is not available in the given market, and Spotify did not have any tracks to relink it with. The track response will still contain metadata for the original track, and a restrictions object containing the reason why the track is not available: `\"restrictions\" : {\"reason\" : \"market\"}`",
"items": {
"$ref": "#/components/schemas/trackrestriction"
},
"type": "array"
},
"track_number": {
"description": "The number of the track. If an album has several discs, the track number is the number on the specified disc.",
"type": "integer"
},
"type": {
"description": "The object type: “track”.",
"type": "string"
},
"uri": {
"description": "The [Spotify URI](/documentation/web-api/#spotify-uris-and-ids) for the track.",
"type": "string"
}
},
"type": "object"
},
"tuneable-track": {
"properties": {
"acousticness": {
"description": "A confidence measure from 0.0 to 1.0 of whether the track is acoustic. 1.0 represents high confidence the track is acoustic.",
"type": "float"
},
"danceability": {
"description": "Danceability describes how suitable a track is for dancing based on a combination of musical elements including tempo, rhythm stability, beat strength, and overall regularity. A value of 0.0 is least danceable and 1.0 is most danceable.",
"type": "float"
},
"duration_ms": {
"description": "The duration of the track in milliseconds.",
"type": "integer"
},
"energy": {
"description": "Energy is a measure from 0.0 to 1.0 and represents a perceptual measure of intensity and activity. Typically, energetic tracks feel fast, loud, and noisy. For example, death metal has high energy, while a Bach prelude scores low on the scale. Perceptual features contributing to this attribute include dynamic range, perceived loudness, timbre, onset rate, and general entropy.",
"type": "float"
},
"instrumentalness": {
"description": "Predicts whether a track contains no vocals. “Ooh” and “aah” sounds are treated as instrumental in this context. Rap or spoken word tracks are clearly “vocal”. The closer the instrumentalness value is to 1.0, the greater likelihood the track contains no vocal content. Values above 0.5 are intended to represent instrumental tracks, but confidence is higher as the value approaches 1.0.",
"type": "float"
},
"key": {
"description": "The key the track is in. Integers map to pitches using standard [Pitch Class notation](https://en.wikipedia.org/wiki/Pitch_class). E.g. 0 = C, 1 = C♯/D♭, 2 = D, and so on.",
"type": "integer"
},
"liveness": {
"description": "Detects the presence of an audience in the recording. Higher liveness values represent an increased probability that the track was performed live. A value above 0.8 provides strong likelihood that the track is live.",
"type": "float"
},
"loudness": {
"description": "The overall loudness of a track in decibels (dB). Loudness values are averaged across the entire track and are useful for comparing relative loudness of tracks. Loudness is the quality of a sound that is the primary psychological correlate of physical strength (amplitude). Values typical range between -60 and 0 db.",
"type": "float"
},
"mode": {
"description": "Mode indicates the modality (major or minor) of a track, the type of scale from which its melodic content is derived. Major is represented by 1 and minor is 0.",
"type": "integer"
},
"popularity": {
"description": "The popularity of the track. The value will be between 0 and 100, with 100 being the most popular. The popularity is calculated by algorithm and is based, in the most part, on the total number of plays the track has had and how recent those plays are. _Note: When applying track relinking via the `market` parameter, it is expected to find relinked tracks with popularities that do not match `min_*`, `max_*`and `target_*` popularities. These relinked tracks are accurate replacements for unplayable tracks with the expected popularity scores. Original, non-relinked tracks are available via the `linked_from` attribute of the [relinked track response](/documentation/general/guides/track-relinking-guide)._",
"type": "float"
},
"speechiness": {
"description": "Speechiness detects the presence of spoken words in a track. The more exclusively speech-like the recording (e.g. talk show, audio book, poetry), the closer to 1.0 the attribute value. Values above 0.66 describe tracks that are probably made entirely of spoken words. Values between 0.33 and 0.66 describe tracks that may contain both music and speech, either in sections or layered, including such cases as rap music. Values below 0.33 most likely represent music and other non-speech-like tracks.",
"type": "float"
},
"tempo": {
"description": "The overall estimated tempo of a track in beats per minute (BPM). In musical terminology, tempo is the speed or pace of a given piece and derives directly from the average beat duration.",
"type": "float"
},
"time_signature": {
"description": "An estimated overall time signature of a track. The time signature (meter) is a notational convention to specify how many beats are in each bar (or measure).",
"type": "integer"
},
"valence": {
"description": "A measure from 0.0 to 1.0 describing the musical positiveness conveyed by a track. Tracks with high valence sound more positive (e.g. happy, cheerful, euphoric), while tracks with low valence sound more negative (e.g. sad, depressed, angry).",
"type": "float"
}
},
"type": "object"
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment