OAuth2 client credentials grant returning 401 in Python requests

Attempting to obtain an access token via the Genesys Cloud OAuth2 endpoint using Python requests. The payload structure appears correct, yet the response consistently returns a 401 Unauthorized status.

import requests
url = "https://api.mypurecloud.com/oauth/token"
auth = ("my_client_id", "my_client_secret")
payload = {"grant_type": "client_credentials"}
resp = requests.post(url, auth=auth, data=payload)
print(resp.status_code)

The documentation states basic auth headers are required for client credentials. Is there a specific encoding requirement for the credentials tuple?