PureCloud Platform API SDK
The `PureCloudPlatformClientV2` library is the official Python SDK for interacting with the Genesys Cloud Platform API. It provides a comprehensive set of classes and methods generated from the API's Swagger definition, allowing developers to programmatically manage various aspects of their Genesys Cloud environment. The library is actively maintained by Genesys Developer Evangelists, with releases tied to the Genesys Cloud API's update cadence, typically following Semantic Versioning to reflect changes in the underlying API. The current version is 254.0.0.
Warnings
- breaking Preview APIs included in the SDK are subject to breaking and non-breaking changes at any time without notice. These resources are not stable.
- breaking The SDK can have major version bumps due to changes in the underlying Platform API's Swagger definition, even if the API itself remains at major version 2. It is strongly recommended to keep the SDK updated to the latest version.
- gotcha On Windows, the maximum path length limitation can cause a 'No such file or directory' error during installation.
- gotcha By default, Python's `None` values for model properties are stripped out before sending requests, meaning they won't be serialized as JSON `null`. To explicitly send a JSON `null` value, use `PureCloudPlatformClientV2.ApiNullValue()`.
- gotcha The Client Credentials Grant is intended for non-human applications. Some API endpoints (e.g., Conversations API) require a user context and will not work with client credentials, resulting in a 'This request requires a user context' error.
- gotcha By default, SDK logging does not include request and response bodies due to potential PII.
- gotcha If connecting to a Genesys Cloud environment other than `mypurecloud.com` (e.g., `mypurecloud.ie`), the base path must be explicitly set.
Install
-
pip install PureCloudPlatformClientV2
Imports
- PureCloudPlatformClientV2
import PureCloudPlatformClientV2
- ApiClient
import PureCloudPlatformClientV2.api_client api_client = PureCloudPlatformClientV2.api_client.ApiClient()
- Configuration
PureCloudPlatformClientV2.configuration
- AuthorizationApi
auth_api = PureCloudPlatformClientV2.AuthorizationApi(api_client)
- YearMonth
from PureCloudPlatformClientV2 import YearMonth
- ApiNullValue
from PureCloudPlatformClientV2 import ApiNullValue
Quickstart
import PureCloudPlatformClientV2
import os
# Configure API client with Client Credentials Grant
# Ensure GENESYS_CLOUD_CLIENT_ID and GENESYS_CLOUD_CLIENT_SECRET are set as environment variables
CLIENT_ID = os.environ.get('GENESYS_CLOUD_CLIENT_ID', '')
CLIENT_SECRET = os.environ.get('GENESYS_CLOUD_CLIENT_SECRET', '')
GENESYS_CLOUD_REGION = os.environ.get('GENESYS_CLOUD_REGION', 'mypurecloud.com') # e.g., mypurecloud.ie
# Set the Genesys Cloud region (e.g., 'mypurecloud.ie', 'mypurecloud.com.au')
# Default is mypurecloud.com
PureCloudPlatformClientV2.configuration.host = f'https://api.{GENESYS_CLOUD_REGION}'
api_client = PureCloudPlatformClientV2.api_client.ApiClient()
try:
# Authenticate using client credentials
api_client.get_client_credentials_token(CLIENT_ID, CLIENT_SECRET)
print("Authentication successful!")
# Instantiate an API class (e.g., UsersApi)
users_api = PureCloudPlatformClientV2.UsersApi(api_client)
# Make an API call (e.g., get the authenticated user's information)
me = users_api.get_users_me()
print(f"Authenticated user: {me.name} (ID: {me.id})")
except PureCloudPlatformClientV2.rest.ApiException as e:
print(f"Exception when calling Genesys Cloud API: {e}")
print(f"Ensure GENESYS_CLOUD_CLIENT_ID and GENESYS_CLOUD_CLIENT_SECRET are set correctly and have the necessary permissions.")
except Exception as e:
print(f"An unexpected error occurred: {e}")