Python requests OAuth2 Client Credentials returning 401

import requests

url = "https://api.mypurecloud.com/oauth/token"
headers = {"Content-Type": "application/x-www-form-urlencoded"}
data = {
 "grant_type": "client_credentials",
 "client_id": "MY_CLIENT_ID",
 "client_secret": "MY_SECRET"
}
resp = requests.post(url, headers=headers, data=data)
print(resp.status_code) # 401
  • Verified client_id/secret in Genesys Cloud application settings.
  • Confirmed endpoint is correct for my region.

Why is the token request failing with 401?

The 401 error usually stems from URL encoding issues with the client secret in requests rather than invalid credentials.

import requests

url = "https://api.mypurecloud.com/oauth/token"
auth = ("MY_CLIENT_ID", "MY_SECRET")
data = {"grant_type": "client_credentials"}
resp = requests.post(url, auth=auth, data=data)
print(resp.json())

Using the auth tuple handles Basic Auth header generation correctly, avoiding manual form-urlencoded pitfalls.