openapi: 3.0.3 info: description: 'You can use Spotify''s Web API to discover music and podcasts, manage your Spotify library, control audio playback, and much more. Browse our available Web API endpoints using the sidebar at left, or via the navigation bar on top of this page on smaller screens. In order to make successful Web API requests your app will need a valid access token. One can be obtained through OAuth 2.0. The base URI for all Web API requests is `https://api.spotify.com/v1`. Need help? See our Web API guides for more information, or visit the Spotify for Developers community forum to ask questions and connect with other developers. ' version: 1.0.0 title: Spotify Web Albums Episodes API termsOfService: https://developer.spotify.com/terms/ contact: name: Spotify for Developers Community url: https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotify_Developer servers: - url: https://api.spotify.com/v1 tags: - name: Episodes paths: /shows/{id}/episodes: get: tags: - Episodes operationId: get-a-shows-episodes x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Show Episodes ' description: 'Get Spotify catalog information about an show’s episodes. Optional parameters can be used to limit the number of episodes returned. ' parameters: - $ref: '#/components/parameters/PathShowId' - $ref: '#/components/parameters/QueryMarket' - $ref: '#/components/parameters/QueryLimit' - $ref: '#/components/parameters/QueryOffset' responses: '200': $ref: '#/components/responses/PagingSimplifiedEpisodeObject' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-read-playback-position /episodes/{id}: get: tags: - Episodes operationId: get-an-episode x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Episode ' description: 'Get Spotify catalog information for a single episode identified by its unique Spotify ID. ' parameters: - name: id required: true in: path schema: title: Get an Episode description: The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the episode. example: 512ojhOuo1ktJprKbVcKyQ type: string - $ref: '#/components/parameters/QueryMarket' responses: '200': $ref: '#/components/responses/OneEpisode' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-read-playback-position /episodes: get: deprecated: true tags: - Episodes operationId: get-multiple-episodes x-spotify-policy-list: $ref: '#/components/x-spotify-policy/metadataPolicyList' summary: 'Get Several Episodes ' description: 'Get Spotify catalog information for several episodes based on their Spotify IDs. ' parameters: - name: ids required: true in: query schema: title: Ids description: 'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids) for the episodes. Maximum: 50 IDs. ' example: 77o6BIVlYM3msb4MMIL1jH,0Q86acNRm6V9GYx55SXKwf type: string - $ref: '#/components/parameters/QueryMarket' responses: '200': $ref: '#/components/responses/ManyEpisodes' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-read-playback-position /me/episodes: get: tags: - Episodes operationId: get-users-saved-episodes summary: 'Get User''s Saved Episodes ' description: 'Get a list of the episodes saved in the current Spotify user''s library. ' parameters: - $ref: '#/components/parameters/QueryMarket' - $ref: '#/components/parameters/QueryLimit' - $ref: '#/components/parameters/QueryOffset' responses: '200': $ref: '#/components/responses/PagingSavedEpisodeObject' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-library-read - user-read-playback-position put: deprecated: true tags: - Episodes operationId: save-episodes-user summary: 'Save Episodes for Current User ' description: 'Save one or more episodes to the current user''s library. **Note:** This endpoint is deprecated. Use [Save Items to Library](/documentation/web-api/reference/save-library-items) instead. ' parameters: - name: ids required: true in: query schema: title: Spotify Episodes IDs description: 'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). Maximum: 50 IDs. ' example: 77o6BIVlYM3msb4MMIL1jH,0Q86acNRm6V9GYx55SXKwf type: string requestBody: content: application/json: schema: type: object additionalProperties: true required: - uris properties: ids: type: array description: 'A JSON array of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids).
A maximum of 50 items can be specified in one request. _**Note**: if the `ids` parameter is present in the query string, any IDs listed here in the body will be ignored._ ' items: type: string responses: '200': description: Episode saved '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-library-modify delete: deprecated: true tags: - Episodes operationId: remove-episodes-user summary: 'Remove User''s Saved Episodes ' description: 'Remove one or more episodes from the current user''s library. **Note:** This endpoint is deprecated. Use [Remove Items from Library](/documentation/web-api/reference/remove-library-items) instead. ' parameters: - $ref: '#/components/parameters/QueryTrackIds' requestBody: content: application/json: schema: type: object additionalProperties: true properties: ids: type: array description: 'A JSON array of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids).
A maximum of 50 items can be specified in one request. _**Note**: if the `ids` parameter is present in the query string, any IDs listed here in the body will be ignored._ ' items: type: string responses: '200': description: Episode removed '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-library-modify /me/episodes/contains: get: tags: - Episodes operationId: check-users-saved-episodes summary: 'Check User''s Saved Episodes ' deprecated: true description: 'Check if one or more episodes is already saved in the current Spotify user''s ''Your Episodes'' library. **Note:** This endpoint is deprecated. Use [Check User''s Saved Items](/documentation/web-api/reference/check-library-contains) instead. ' parameters: - name: ids required: true in: query schema: title: Spotify Episode IDs description: 'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids) for the episodes. Maximum: 50 IDs. ' example: 77o6BIVlYM3msb4MMIL1jH,0Q86acNRm6V9GYx55SXKwf type: string responses: '200': $ref: '#/components/responses/ArrayOfBooleans' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' security: - oauth_2_0: - user-library-read components: schemas: PagingSavedEpisodeObject: type: object x-spotify-docs-type: PagingEpisodeObject allOf: - $ref: '#/components/schemas/PagingObject' - type: object properties: items: type: array items: $ref: '#/components/schemas/SavedEpisodeObject' EpisodeBase: type: object required: - audio_preview_url - description - html_description - duration_ms - explicit - external_urls - href - id - images - is_externally_hosted - is_playable - languages - name - release_date - release_date_precision - type - uri properties: audio_preview_url: deprecated: true type: string nullable: true example: https://p.scdn.co/mp3-preview/2f37da1d4221f40b9d1a98cd191f4d6f1646ad17 description: 'A URL to a 30 second preview (MP3 format) of the episode. `null` if not available. ' x-spotify-policy-list: - $ref: '#/components/x-spotify-policy/policies/StandalonePreview' description: type: string example: 'A Spotify podcast sharing fresh insights on important topics of the moment—in a way only Spotify can. You’ll hear from experts in the music, podcast and tech industries as we discover and uncover stories about our work and the world around us. ' description: 'A description of the episode. HTML tags are stripped away from this field, use `html_description` field in case HTML tags are needed. ' html_description: type: string example: '

A Spotify podcast sharing fresh insights on important topics of the moment—in a way only Spotify can. You’ll hear from experts in the music, podcast and tech industries as we discover and uncover stories about our work and the world around us.

' description: 'A description of the episode. This field may contain HTML tags. ' duration_ms: type: integer example: 1686230 description: 'The episode length in milliseconds. ' explicit: type: boolean description: 'Whether or not the episode has explicit content (true = yes it does; false = no it does not OR unknown). ' external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'External URLs for this episode. ' href: type: string example: https://api.spotify.com/v1/episodes/5Xt5DXGzch68nYYamXrNxZ description: 'A link to the Web API endpoint providing full details of the episode. ' id: type: string example: 5Xt5DXGzch68nYYamXrNxZ description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the episode. ' images: type: array items: $ref: '#/components/schemas/ImageObject' description: 'The cover art for the episode in various sizes, widest first. ' is_externally_hosted: type: boolean description: 'True if the episode is hosted outside of Spotify''s CDN. ' is_playable: type: boolean description: 'True if the episode is playable in the given market. Otherwise false. ' language: type: string deprecated: true example: en description: 'The language used in the episode, identified by a [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code. This field is deprecated and might be removed in the future. Please use the `languages` field instead. ' languages: type: array items: type: string example: - fr - en description: 'A list of the languages used in the episode, identified by their [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639) code. ' name: type: string example: 'Starting Your Own Podcast: Tips, Tricks, and Advice From Anchor Creators ' description: 'The name of the episode. ' release_date: type: string example: '1981-12-15' description: 'The date the episode was first released, for example `"1981-12-15"`. Depending on the precision, it might be shown as `"1981"` or `"1981-12"`. ' release_date_precision: type: string example: day enum: - year - month - day description: 'The precision with which `release_date` value is known. ' resume_point: allOf: - $ref: '#/components/schemas/ResumePointObject' description: 'The user''s most recent position in the episode. Set if the supplied access token is a user token and has the scope ''user-read-playback-position''. ' type: type: string enum: - episode description: 'The object type. ' uri: type: string example: spotify:episode:0zLhl3WsOCQHbe1BPTiHgr description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the episode. ' restrictions: allOf: - $ref: '#/components/schemas/EpisodeRestrictionObject' description: 'Included in the response when a content restriction is applied. ' SimplifiedEpisodeObject: x-spotify-docs-type: SimplifiedEpisodeObject type: object allOf: - $ref: '#/components/schemas/EpisodeBase' - type: object ExternalUrlObject: type: object x-spotify-docs-type: ExternalUrlObject properties: spotify: type: string description: 'The [Spotify URL](/documentation/web-api/concepts/spotify-uris-ids) for the object. ' PagingSimplifiedEpisodeObject: type: object x-spotify-docs-type: PagingEpisodeObject allOf: - $ref: '#/components/schemas/PagingObject' - type: object properties: items: type: array items: $ref: '#/components/schemas/SimplifiedEpisodeObject' ErrorObject: type: object x-spotify-docs-type: ErrorObject required: - status - message properties: status: type: integer minimum: 400 maximum: 599 description: 'The HTTP status code (also returned in the response header; see [Response Status Codes](/documentation/web-api/concepts/api-calls#response-status-codes) for more information). ' message: type: string description: 'A short description of the cause of the error. ' SavedEpisodeObject: type: object x-spotify-docs-type: SavedEpisodeObject properties: added_at: type: string format: date-time x-spotify-docs-type: Timestamp description: 'The date and time the episode was saved. Timestamps are returned in ISO 8601 format as Coordinated Universal Time (UTC) with a zero offset: YYYY-MM-DDTHH:MM:SSZ. ' episode: allOf: - $ref: '#/components/schemas/EpisodeObject' description: Information about the episode. ImageObject: type: object x-spotify-docs-type: ImageObject required: - url - height - width properties: url: type: string example: 'https://i.scdn.co/image/ab67616d00001e02ff9ca10b55ce82ae553c8228 ' description: 'The source URL of the image. ' height: type: integer example: 300 nullable: true description: 'The image height in pixels. ' width: type: integer example: 300 nullable: true description: 'The image width in pixels. ' EpisodeObject: x-spotify-docs-type: EpisodeObject type: object allOf: - $ref: '#/components/schemas/EpisodeBase' - type: object required: - show properties: show: allOf: - $ref: '#/components/schemas/SimplifiedShowObject' description: 'The show on which the episode belongs. ' SimplifiedShowObject: x-spotify-docs-type: SimplifiedShowObject allOf: - $ref: '#/components/schemas/ShowBase' - type: object CopyrightObject: type: object x-spotify-docs-type: CopyrightObject properties: text: type: string description: 'The copyright text for this content. ' type: type: string description: 'The type of copyright: `C` = the copyright, `P` = the sound recording (performance) copyright. ' PagingObject: type: object x-spotify-docs-type: PagingObject required: - href - items - limit - next - offset - previous - total properties: href: type: string example: 'https://api.spotify.com/v1/me/shows?offset=0&limit=20 ' description: 'A link to the Web API endpoint returning the full result of the request ' limit: type: integer example: 20 description: 'The maximum number of items in the response (as set in the query or by default). ' next: type: string example: https://api.spotify.com/v1/me/shows?offset=1&limit=1 nullable: true description: 'URL to the next page of items. ( `null` if none) ' offset: type: integer example: 0 description: 'The offset of the items returned (as set in the query or by default) ' previous: type: string example: https://api.spotify.com/v1/me/shows?offset=1&limit=1 nullable: true description: 'URL to the previous page of items. ( `null` if none) ' total: type: integer example: 4 description: 'The total number of items available to return. ' EpisodeRestrictionObject: type: object x-spotify-docs-type: EpisodeRestrictionObject properties: reason: type: string description: 'The reason for the restriction. Supported values: - `market` - The content item is not available in the given market. - `product` - The content item is not available for the user''s subscription type. - `explicit` - The content item is explicit and the user''s account is set to not play explicit content. Additional reasons may be added in the future. **Note**: If you use this field, make sure that your application safely handles unknown values. ' ResumePointObject: type: object x-spotify-docs-type: ResumePointObject properties: fully_played: type: boolean description: 'Whether or not the episode has been fully played by the user. ' resume_position_ms: type: integer description: 'The user''s most recent position in the episode in milliseconds. ' ShowBase: type: object required: - available_markets - copyrights - description - explicit - external_urls - href - html_description - id - images - is_externally_hosted - languages - media_type - name - publisher - total_episodes - type - uri properties: available_markets: deprecated: true type: array items: type: string description: 'A list of the countries in which the show can be played, identified by their [ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code. ' copyrights: type: array items: $ref: '#/components/schemas/CopyrightObject' description: 'The copyright statements of the show. ' description: type: string description: 'A description of the show. HTML tags are stripped away from this field, use `html_description` field in case HTML tags are needed. ' html_description: type: string description: 'A description of the show. This field may contain HTML tags. ' explicit: type: boolean description: 'Whether or not the show has explicit content (true = yes it does; false = no it does not OR unknown). ' external_urls: allOf: - $ref: '#/components/schemas/ExternalUrlObject' description: 'External URLs for this show. ' href: type: string description: 'A link to the Web API endpoint providing full details of the show. ' id: type: string description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the show. ' images: type: array items: $ref: '#/components/schemas/ImageObject' description: 'The cover art for the show in various sizes, widest first. ' is_externally_hosted: type: boolean description: 'True if all of the shows episodes are hosted outside of Spotify''s CDN. This field might be `null` in some cases. ' languages: type: array items: type: string description: 'A list of the languages used in the show, identified by their [ISO 639](https://en.wikipedia.org/wiki/ISO_639) code. ' media_type: type: string description: 'The media type of the show. ' name: type: string description: 'The name of the episode. ' publisher: deprecated: true type: string description: 'The publisher of the show. ' type: type: string enum: - show description: 'The object type. ' uri: type: string description: 'The [Spotify URI](/documentation/web-api/concepts/spotify-uris-ids) for the show. ' total_episodes: type: integer description: 'The total number of episodes in the show. ' x-spotify-policy: metadataPolicyList: - $ref: '#/components/x-spotify-policy/policies/Downloading' - $ref: '#/components/x-spotify-policy/policies/VisualAlteration' - $ref: '#/components/x-spotify-policy/policies/Attribution' responses: OneEpisode: description: An episode content: application/json: schema: $ref: '#/components/schemas/EpisodeObject' ManyEpisodes: description: A set of episodes content: application/json: schema: type: object required: - episodes properties: episodes: type: array items: $ref: '#/components/schemas/EpisodeObject' Forbidden: description: 'Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately, re-authenticating the user won''t help here. ' content: application/json: schema: type: object required: - error properties: error: $ref: '#/components/schemas/ErrorObject' Unauthorized: description: 'Bad or expired token. This can happen if the user revoked a token or the access token has expired. You should re-authenticate the user. ' content: application/json: schema: type: object required: - error properties: error: $ref: '#/components/schemas/ErrorObject' ArrayOfBooleans: description: Array of booleans content: application/json: schema: type: array example: - false - true items: type: boolean PagingSimplifiedEpisodeObject: description: Pages of episodes content: application/json: schema: $ref: '#/components/schemas/PagingSimplifiedEpisodeObject' PagingSavedEpisodeObject: description: Pages of episodes content: application/json: schema: $ref: '#/components/schemas/PagingSavedEpisodeObject' TooManyRequests: description: 'The app has exceeded its rate limits. ' content: application/json: schema: type: object required: - error properties: error: $ref: '#/components/schemas/ErrorObject' parameters: QueryMarket: name: market required: false in: query schema: title: Market description: "An [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).\n If a country code is specified, only content that is available in that market will be returned.
\n If a valid user access token is specified in the request header, the country associated with\n the user account will take priority over this parameter.
\n _**Note**: If neither market or user country are provided, the content is considered unavailable for the client._
\n Users can view the country that is associated with their account in the [account settings](https://www.spotify.com/account/overview/).\n" example: ES type: string PathShowId: name: id required: true in: path schema: title: Spotify Show ID description: 'The [Spotify ID](/documentation/web-api/concepts/spotify-uris-ids) for the show. ' example: 38bS44xjbVVZ3No3ByF1dJ type: string QueryOffset: name: offset required: false in: query schema: title: Offset description: 'The index of the first item to return. Default: 0 (the first item). Use with limit to get the next set of items. ' default: 0 example: 5 type: integer QueryLimit: name: limit required: false in: query schema: title: Limit description: 'The maximum number of items to return. Default: 20. Minimum: 1. Maximum: 50. ' default: 20 example: 10 type: integer minimum: 0 maximum: 50 QueryTrackIds: name: ids required: true in: query schema: title: Spotify Track IDs description: 'A comma-separated list of the [Spotify IDs](/documentation/web-api/concepts/spotify-uris-ids). For example: `ids=4iV5W9uYEdYUVa79Axb7Rh,1301WleyT98MSxVHPZCA6M`. Maximum: 50 IDs. ' example: 7ouMYWpwJ422jRcDASZB7P,4VqPOruhp5EdPBeR92t6lQ,2takcwOaAZWiXQijPHIx7B type: string securitySchemes: oauth_2_0: type: oauth2 description: Spotify supports OAuth 2.0 for authenticating all API requests. flows: authorizationCode: authorizationUrl: https://accounts.spotify.com/authorize tokenUrl: https://accounts.spotify.com/api/token scopes: app-remote-control: 'Communicate with the Spotify app on your device. ' playlist-read-private: 'Access your private playlists. ' playlist-read-collaborative: 'Access your collaborative playlists. ' playlist-modify-public: 'Manage your public playlists. ' playlist-modify-private: 'Manage your private playlists. ' user-library-read: 'Access your saved content. ' user-library-modify: 'Manage your saved content. ' user-read-private: 'Access your subscription details. ' user-read-email: 'Get your real email address. ' user-follow-read: 'Access your followers and who you are following. ' user-follow-modify: 'Manage your saved content. ' user-top-read: 'Read your top artists and content. ' user-read-playback-position: 'Read your position in content you have played. ' user-read-playback-state: 'Read your currently playing content and Spotify Connect devices information. ' user-read-recently-played: 'Access your recently played items. ' user-read-currently-playing: 'Read your currently playing content. ' user-modify-playback-state: 'Control playback on your Spotify clients and Spotify Connect devices. ' ugc-image-upload: 'Upload images to Spotify on your behalf. ' streaming: 'Play content and control playback on your other devices. '