Skip to content

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:

Client Credentials Flow

Pre-requisites

This guide assumes that:

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 ParametersRelevanceValue
grant_typeRequiredSet it to client_credentials.

The headers of the request must contain the following parameters:

Header ParameterRelevanceValue
AuthorizationRequiredBase 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-TypeRequiredSet 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:

keyTypeDescription
access_tokenstringAn access token that can be provided in subsequent calls, for example to Spotify Web API services.
token_typestringHow the access token may be used: always "Bearer".
expires_inintThe 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.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy