# Source: https://developer.spotify.com/documentation/web-api/concepts/redirect_uri

# Redirect Uri

- Redirect URIs | Spotify for Developers[Skip to content]()[]()DocumentationDocumentationProducts[Web API]()
- [Web Playback SDK]()
- [Ads API]()
- [iOS]()
- [Android]()
- [Embeds]()
- [Commercial Hardware]()
- [Open Access]()
Guidelines- [Design]()
- [Accessibility]()
- [Legal]()
- [Community]()
0- DocumentationDocumentationProducts[Web API]()
- [Web Playback SDK]()
- [Ads API]()
- [iOS]()
- [Android]()
- [Embeds]()
- [Commercial Hardware]()
- [Open Access]()
Guidelines- [Design]()
- [Accessibility]()
- [Legal]()
- [Community]()
Web API

- [Overview]()
- [Getting started]()
- ConceptsConceptsConcepts[Access Token]()
- [API calls]()
- [Apps]()
- [Authorization]()
- [Redirect URIs]()
- [Playlists]()
- [Quota modes]()
- [Rate limits]()
- [Scopes]()
- [Spotify URIs and IDs]()
- [Track Relinking]()
- TutorialsTutorialsTutorials[Authorization code]()
- [Authorization code PKCE]()
- [Client credentials]()
- [Implicit grant [Deprecated]]()
- [Refreshing tokens]()
- [Migration: Implicit grant to Authorization code]()
- [Migration: Insecure redirect URI]()
- How-TosHow-TosHow-Tos[Display your Spotify profile data in a web app]()
Reference- AlbumsAlbumsAlbumsGet Album

- Get Several Albums

- Get Album Tracks

- Get User's Saved Albums

- Save Albums for Current User

- Remove Users' Saved Albums

- Check User's Saved Albums

- Get New Releases

- ArtistsArtistsArtistsGet Artist

- Get Several Artists

- Get Artist's Albums

- Get Artist's Top Tracks

- Get Artist's Related Artists

- AudiobooksAudiobooksAudiobooksGet an Audiobook

- Get Several Audiobooks

- Get Audiobook Chapters

- Get User's Saved Audiobooks

- Save Audiobooks for Current User

- Remove User's Saved Audiobooks

- Check User's Saved Audiobooks

- CategoriesCategoriesCategoriesGet Several Browse Categories

- Get Single Browse Category

- ChaptersChaptersChaptersGet a Chapter

- Get Several Chapters

- EpisodesEpisodesEpisodesGet Episode

- Get Several Episodes

- Get User's Saved Episodes

- Save Episodes for Current User

- Remove User's Saved Episodes

- Check User's Saved Episodes

- GenresGenresGenresGet Available Genre Seeds

- MarketsMarketsMarketsGet Available Markets

- PlayerPlayerPlayerGet Playback State

- Transfer Playback

- Get Available Devices

- Get Currently Playing Track

- Start/Resume Playback

- Pause Playback

- Skip To Next

- Skip To Previous

- Seek To Position

- Set Repeat Mode

- Set Playback Volume

- Toggle Playback Shuffle

- Get Recently Played Tracks

- Get the User's Queue

- Add Item to Playback Queue

- PlaylistsPlaylistsPlaylistsGet Playlist

- Change Playlist Details

- Get Playlist Items

- Update Playlist Items

- Add Items to Playlist

- Remove Playlist Items

- Get Current User's Playlists

- Get User's Playlists

- Create Playlist

- Get Featured Playlists

- Get Category's Playlists

- Get Playlist Cover Image

- Add Custom Playlist Cover Image

- SearchSearchSearchSearch for Item

- ShowsShowsShowsGet Show

- Get Several Shows

- Get Show Episodes

- Get User's Saved Shows

- Save Shows for Current User

- Remove User's Saved Shows

- Check User's Saved Shows

- TracksTracksTracksGet Track

- Get Several Tracks

- Get User's Saved Tracks

- Save Tracks for Current User

- Remove User's Saved Tracks

- Check User's Saved Tracks

- Get Several Tracks' Audio Features

- Get Track's Audio Features

- Get Track's Audio Analysis

- Get Recommendations

- UsersUsersUsersGet Current User's Profile

- Get User's Top Items

- Get User's Profile

- Follow Playlist

- Unfollow Playlist

- Get Followed Artists

- Follow Artists or Users

- Unfollow Artists or Users

- Check If User Follows Artists or Users

- Check if Current User Follows Playlist

Web API- [Overview]()
- [Getting started]()
- ConceptsConceptsConcepts[Access Token]()
- [API calls]()
- [Apps]()
- [Authorization]()
- [Redirect URIs]()
- [Playlists]()
- [Quota modes]()
- [Rate limits]()
- [Scopes]()
- [Spotify URIs and IDs]()
- [Track Relinking]()
- TutorialsTutorialsTutorials[Authorization code]()
- [Authorization code PKCE]()
- [Client credentials]()
- [Implicit grant [Deprecated]]()
- [Refreshing tokens]()
- [Migration: Implicit grant to Authorization code]()
- [Migration: Insecure redirect URI]()
- How-TosHow-TosHow-Tos[Display your Spotify profile data in a web app]()
Reference- AlbumsAlbumsAlbumsGet Album

- Get Several Albums

- Get Album Tracks

- Get User's Saved Albums

- Save Albums for Current User

- Remove Users' Saved Albums

- Check User's Saved Albums

- Get New Releases

- ArtistsArtistsArtistsGet Artist

- Get Several Artists

- Get Artist's Albums

- Get Artist's Top Tracks

- Get Artist's Related Artists

- AudiobooksAudiobooksAudiobooksGet an Audiobook

- Get Several Audiobooks

- Get Audiobook Chapters

- Get User's Saved Audiobooks

- Save Audiobooks for Current User

- Remove User's Saved Audiobooks

- Check User's Saved Audiobooks

- CategoriesCategoriesCategoriesGet Several Browse Categories

- Get Single Browse Category

- ChaptersChaptersChaptersGet a Chapter

- Get Several Chapters

- EpisodesEpisodesEpisodesGet Episode

- Get Several Episodes

- Get User's Saved Episodes

- Save Episodes for Current User

- Remove User's Saved Episodes

- Check User's Saved Episodes

- GenresGenresGenresGet Available Genre Seeds

- MarketsMarketsMarketsGet Available Markets

- PlayerPlayerPlayerGet Playback State

- Transfer Playback

- Get Available Devices

- Get Currently Playing Track

- Start/Resume Playback

- Pause Playback

- Skip To Next

- Skip To Previous

- Seek To Position

- Set Repeat Mode

- Set Playback Volume

- Toggle Playback Shuffle

- Get Recently Played Tracks

- Get the User's Queue

- Add Item to Playback Queue

- PlaylistsPlaylistsPlaylistsGet Playlist

- Change Playlist Details

- Get Playlist Items

- Update Playlist Items

- Add Items to Playlist

- Remove Playlist Items

- Get Current User's Playlists

- Get User's Playlists

- Create Playlist

- Get Featured Playlists

- Get Category's Playlists

- Get Playlist Cover Image

- Add Custom Playlist Cover Image

- SearchSearchSearchSearch for Item

- ShowsShowsShowsGet Show

- Get Several Shows

- Get Show Episodes

- Get User's Saved Shows

- Save Shows for Current User

- Remove User's Saved Shows

- Check User's Saved Shows

- TracksTracksTracksGet Track

- Get Several Tracks

- Get User's Saved Tracks

- Save Tracks for Current User

- Remove User's Saved Tracks

- Check User's Saved Tracks

- Get Several Tracks' Audio Features

- Get Track's Audio Features

- Get Track's Audio Analysis

- Get Recommendations

- UsersUsersUsersGet Current User's Profile

- Get User's Top Items

- Get User's Profile

- Follow Playlist

- Unfollow Playlist

- Get Followed Artists

- Follow Artists or Users

- Unfollow Artists or Users

- Check If User Follows Artists or Users

- Check if Current User Follows Playlist

# Redirect URIs  

Error:Beginning on the 9th of April 2025 we will enforce the subsequent validations
to all newly created apps.

**We expect all clients** to migrate to the new redirect URI validation by 
**November 2025**.

To know more please refer to the Spotify Developer
Blog.

When you create an app, you need to specify a redirect URI. This is the URI to which Spotify redirects the user after they have granted or denied permission to your app.
The redirect URI is required for the authorization code flow and implicit grant flow.
The definition of the redirect URI must exactly match the redirect URI you provide when you create your app. The only exception is for loopback IP literals, which can dynamically be assigned ports.

## Requirements

Since we at Spotify, take security very seriously you must follow these requirements when defining your redirect URI:

- Use HTTPS for your redirect URI, unless you are using a loopback address, when HTTP is permitted.

- If you are using a loopback address, use the explicit IPv4 or IPv6, like `http://127.0.0.1:PORT` or `http://[::1]:PORT` as your redirect URI.

- `localhost` is not allowed as redirect URI.

### Loopback addresses and port numbers

When using a loopback IP literal, you might not know the port number used in advance if it can be assigned dynamically.
If you don't know the port number in advance, register your redirect URI with a loopback IP literal, but without any port number. You can add the dynamically assigned port number to the redirect URI in the authorization request.
Please note that this is only supported for loopback IP literals, and not for other redirect URIs.
This is on-par with the [IETF recommendations]().

## Examples

Here are some examples of redirect URIs:

`
_10    https://example.com/callback_10    http://127.0.0.1:8000/callback_10    http://[::1]:8000/callback
`## Footer
[]()### Documentation
- [Web API]()
- [Web Playback SDK]()
- [Ads API]()
- [iOS]()
- [Android]()
- [Embeds]()
- [Commercial Hardware]()
### Guidelines
- [Design]()
- [Accessibility]()
### Community
- [News]()
- [Forum]()
### Legal
- [Developer Terms]()
- [Developer Policy]()
- [Compliance Tips]()
- [Third Party Licenses]()
[Legal]()[Cookies]()© 2025 Spotify AB