Suger

Python SDK

Follow these steps to get started with the Suger Python SDK.

Step 1: Install the SDK

To include the Suger SDK in your project, you can use pip in your terminal:

pip install suger-sdk-python

Step 2: Get an OAuth access token

The Suger API uses the OAuth 2.0 client-credentials flow. First, create an OAuth App in your organization settings to get a Client ID and Client Secret. Then exchange them for a short-lived (1 hour) bearer token:

import requests

# Exchange OAuth App credentials for a bearer token. Cache it and request a new
# one when it expires (default lifetime: 1 hour).
def get_access_token(client_id: str, client_secret: str) -> str:
    resp = requests.post(
        "https://apiv2.suger.cloud/oauth2/token",
        data={
            "grant_type": "client_credentials",
            "client_id": client_id,
            "client_secret": client_secret,
            "resource": "https://api.suger.cloud",
        },
    )
    resp.raise_for_status()
    return resp.json()["access_token"]

The resource=https://api.suger.cloud parameter is required — it scopes the issued JWT to the Suger API. See API Access for the full token exchange, caching, and rotation details.

Step 3: Set up your configuration and Create ApiClient

Create a configuration and attach the bearer token. APIKeyAuth writes the Authorization header verbatim, so pass the OAuth token as Bearer <token>:

import suger_sdk_python
from suger_sdk_python import Configuration

access_token = get_access_token("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
config = suger_sdk_python.Configuration(
    host="https://api.suger.cloud",
)
config.api_key['APIKeyAuth'] = 'Bearer ' + access_token
api_client = suger_sdk_python.ApiClient(config)

Step 4: Use the SDK

Now that you have your client set up, you can call Suger services. Here’s a simple example of how to make a service call:

org_id = 'your_org_id'
offer_id = 'your_offer_id'
try:
    result = OfferApi(api_client).get_offer(org_id, offer_id)
    print("The response of OfferApi:\n")
    print(result)
except ApiException as e:
    print("Exception when calling OfferApi->get_offer: %s\n" % e)

Legacy authentication (API key)

To authenticate an existing integration with an API key, pass it as Key <key> instead of a bearer token:

config.api_key['APIKeyAuth'] = 'Key ' + 'your_api_key'

Conclusion

You are now ready to use the Suger Python SDK in your application! For more detailed information and advanced usage, please refer to the official documentation.

Spotted something wrong or out of date on this page? Tell us and we'll correct it.