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.