SOLFIND
Web Lens
Portal home

Client Credentials Flow | Spotify for Developers

https://developer.spotify.com/documentation/web-api/tutorials/client-credentials-flow • 267 KB fetched
Open original page


Client Credentials Flow | Spotify for Developers Skip to content

* Documentation Documentation Products
* Web API

* Web Playback SDK

* Ads API

* iOS

* Android

* Embeds

* Commercial Hardware

* Open Access

* Spotify Soloist
Guidelines
* Design

* Accessibility

* Legal

* Community

0

* Documentation Documentation Products
* Web API

* Web Playback SDK

* Ads API

* iOS

* Android

* Embeds

* Commercial Hardware

* Open Access

* Spotify Soloist
Guidelines
* Design

* Accessibility

* Legal

* Community

Web API

* Overview

* Getting started

* Building with AI

* Concepts Concepts Concepts
* Access Token

* API calls

* Apps

* Authorization

* Redirect URIs

* Playlists

* Quota modes

* Rate limits

* Scopes

* Spotify URIs and IDs

* Track Relinking

* Tutorials Tutorials Tutorials
* Authorization code

* Authorization code PKCE

* Client credentials

* Implicit grant [Deprecated]

* Refreshing tokens

* Migration: Implicit grant to Authorization code

* Migration: Insecure redirect URI

* Migration: February 2026 Dev Mode Changes

* How-Tos How-Tos How-Tos
* Display your Spotify profile data in a web app

* Changelog Changelog Changelog
* July 2026

* May 2026

* March 2026

* February 2026

Reference
* Albums Albums Albums
* Get 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

* Artists Artists Artists
* Get Artist

* Get Several Artists

* Get Artist's Albums

* Get Artist's Top Tracks

* Get Artist's Related Artists

* Audiobooks Audiobooks Audiobooks
* Get 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

* Categories Categories Categories
* Get Several Browse Categories

* Get Single Browse Category

* Chapters Chapters Chapters
* Get a Chapter

* Get Several Chapters

* Episodes Episodes Episodes
* Get Episode

* Get Several Episodes

* Get User's Saved Episodes

* Save Episodes for Current User

* Remove User's Saved Episodes

* Check User's Saved Episodes

* Genres Genres Genres
* Get Available Genre Seeds

* Library Library Library
* Save Items to Library

* Remove Items from Library

* Check User's Saved Items

* Markets Markets Markets
* Get Available Markets

* Player Player Player
* Get 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

* Playlists Playlists Playlists
* Get Playlist

* Change Playlist Details

* Get Playlist Items [DEPRECATED]

* Update Playlist Items [DEPRECATED]

* Add Items to Playlist [DEPRECATED]

* Remove Playlist Items [DEPRECATED]

* Get Playlist Items

* Update Playlist Items

* Add Items to Playlist

* Remove Playlist Items

* Get Current User's Playlists

* Create Playlist

* Get User's Playlists

* Create Playlist for user

* Get Featured Playlists

* Get Category's Playlists

* Get Playlist Cover Image

* Add Custom Playlist Cover Image

* Search Search Search
* Search for Item

* Shows Shows Shows
* Get 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

* Tracks Tracks Tracks
* Get 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

* Users Users Users
* Get 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

* Building with AI

* Concepts Concepts Concepts
* Access Token

* API calls

* Apps

* Authorization

* Redirect URIs

* Playlists

* Quota modes

* Rate limits

* Scopes

* Spotify URIs and IDs

* Track Relinking

* Tutorials Tutorials Tutorials
* Authorization code

* Authorization code PKCE

* Client credentials

* Implicit grant [Deprecated]

* Refreshing tokens

* Migration: Implicit grant to Authorization code

* Migration: Insecure redirect URI

* Migration: February 2026 Dev Mode Changes

* How-Tos How-Tos How-Tos
* Display your Spotify profile data in a web app

* Changelog Changelog Changelog
* July 2026

* May 2026

* March 2026

* February 2026

Reference
* Albums Albums Albums
* Get 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

* Artists Artists Artists
* Get Artist

* Get Several Artists

* Get Artist's Albums

* Get Artist's Top Tracks

* Get Artist's Related Artists

* Audiobooks Audiobooks Audiobooks
* Get 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

* Categories Categories Categories
* Get Several Browse Categories

* Get Single Browse Category

* Chapters Chapters Chapters
* Get a Chapter

* Get Several Chapters

* Episodes Episodes Episodes
* Get Episode

* Get Several Episodes

* Get User's Saved Episodes

* Save Episodes for Current User

* Remove User's Saved Episodes

* Check User's Saved Episodes

* Genres Genres Genres
* Get Available Genre Seeds

* Library Library Library
* Save Items to Library

* Remove Items from Library

* Check User's Saved Items

* Markets Markets Markets
* Get Available Markets

* Player Player Player
* Get 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

* Playlists Playlists Playlists
* Get Playlist

* Change Playlist Details

* Get Playlist Items [DEPRECATED]

* Update Playlist Items [DEPRECATED]

* Add Items to Playlist [DEPRECATED]

* Remove Playlist Items [DEPRECATED]

* Get Playlist Items

* Update Playlist Items

* Add Items to Playlist

* Remove Playlist Items

* Get Current User's Playlists

* Create Playlist

* Get User's Playlists

* Create Playlist for user

* Get Featured Playlists

* Get Category's Playlists

* Get Playlist Cover Image

* Add Custom Playlist Cover Image

* Search Search Search
* Search for Item

* Shows Shows Shows
* Get 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

* Tracks Tracks Tracks
* Get 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

* Users Users Users
* Get 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

Client Credentials Flow

The Client Credentials flow is used in server-to-server authentication. Since
this flow does not include authorization, only endpoints that do not access
user information can be accessed.

The following diagram shows how the Client Credentials Flow works:

Pre-requisites

This guide assumes that:

* You have read the authorization guide .

* You have created an app following the app guide .

Source Code

You can find an example app implementing Client Credentials flow on GitHub in
the web-api-examples repository.

Request authorization

The first step is to send a POST request to the /api/token endpoint of the
Spotify OAuth 2.0 Service with the following parameters encoded in
application/x-www-form-urlencoded :

Body Parameters Relevance Value
grant_type Required Set it to client_credentials .

The headers of the request must contain the following parameters:

Header Parameter Relevance Value
Authorization Required Base 64 encoded string that contains the client ID and client secret key. The field must have the format: Authorization: Basic <base64 encoded client_id:client_secret>
Content-Type Required Set to application/x-www-form-urlencoded .

The following JavaScript creates and sends an authorization request:

_ 19 var client_id = 'CLIENT_ID';

_ 19 var client_secret = 'CLIENT_SECRET';

_ 19

_ 19 var authOptions = {

_ 19 url: 'https://accounts.spotify.com/api/token',

_ 19 headers: {

_ 19 'Authorization': 'Basic ' + (new Buffer.from(client_id + ':' + client_secret).toString('base64'))

_ 19 },

_ 19 form: {

_ 19 grant_type: 'client_credentials'

_ 19 },

_ 19 json: true

_ 19 };

_ 19

_ 19 request.post(authOptions, function(error, response, body) {

_ 19 if (!error && response.statusCode === 200) {

_ 19 var token = body.access_token;

_ 19 }

_ 19 });

Response

If everything goes well, you'll receive a response with a 200 OK status and
the following JSON data in the response body:

key Type Description
access_token string An access token that can be provided in subsequent calls, for example to Spotify Web API services.
token_type string How the access token may be used: always "Bearer".
expires_in int The time period (in seconds) for which the access token is valid.

For example:

_ 10 {

_ 10 "access_token": "NgCXRKc...MzYjw",

_ 10 "token_type": "bearer",

_ 10 "expires_in": 3600

_ 10 }

What's next?

Learn how to use an access token to fetch data from the Spotify Web API by reading the access token guide .

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 © 2026 Spotify AB

Links found on this page

  1. Skip to content [direct]
  2. Web API [direct]
  3. Web Playback SDK [direct]
  4. Ads API [direct]
  5. iOS [direct]
  6. Android [direct]
  7. Embeds [direct]
  8. Commercial Hardware [direct]
  9. Open Access [direct]
  10. Spotify Soloist [direct]
  11. Design [direct]
  12. Accessibility [direct]
  13. Legal [direct]
  14. Community [direct]
  15. Getting started [direct]
  16. Building with AI [direct]
  17. Access Token [direct]
  18. API calls [direct]
  19. Apps [direct]
  20. Authorization [direct]
  21. Redirect URIs [direct]
  22. Playlists [direct]
  23. Quota modes [direct]
  24. Rate limits [direct]
  25. Scopes [direct]
  26. Spotify URIs and IDs [direct]
  27. Track Relinking [direct]
  28. Authorization code [direct]
  29. Authorization code PKCE [direct]
  30. Implicit grant [Deprecated] [direct]
  31. Refreshing tokens [direct]
  32. Migration: Implicit grant to Authorization code [direct]
  33. Migration: Insecure redirect URI [direct]
  34. Migration: February 2026 Dev Mode Changes [direct]
  35. Display your Spotify profile data in a web app [direct]
  36. July 2026 [direct]
  37. May 2026 [direct]
  38. March 2026 [direct]
  39. February 2026 [direct]
  40. Get Album [direct]
  41. Get Several Albums [direct]
  42. Get Album Tracks [direct]
  43. Get User's Saved Albums [direct]
  44. Save Albums for Current User [direct]
  45. Remove Users' Saved Albums [direct]
  46. Check User's Saved Albums [direct]
  47. Get New Releases [direct]
  48. Get Artist [direct]
  49. Get Several Artists [direct]
  50. Get Artist's Albums [direct]
  51. Get Artist's Top Tracks [direct]
  52. Get Artist's Related Artists [direct]
  53. Get an Audiobook [direct]
  54. Get Several Audiobooks [direct]
  55. Get Audiobook Chapters [direct]
  56. Get User's Saved Audiobooks [direct]
  57. Save Audiobooks for Current User [direct]
  58. Remove User's Saved Audiobooks [direct]
  59. Check User's Saved Audiobooks [direct]
  60. Get Several Browse Categories [direct]
  61. Get Single Browse Category [direct]
  62. Get a Chapter [direct]
  63. Get Several Chapters [direct]
  64. Get Episode [direct]
  65. Get Several Episodes [direct]
  66. Get User's Saved Episodes [direct]
  67. Save Episodes for Current User [direct]
  68. Remove User's Saved Episodes [direct]
  69. Check User's Saved Episodes [direct]
  70. Get Available Genre Seeds [direct]
  71. Save Items to Library [direct]
  72. Remove Items from Library [direct]
  73. Check User's Saved Items [direct]
  74. Get Available Markets [direct]
  75. Get Playback State [direct]
  76. Transfer Playback [direct]
  77. Get Available Devices [direct]
  78. Get Currently Playing Track [direct]
  79. Start/Resume Playback [direct]
  80. Pause Playback [direct]