Admins can use the HighSide Web API to get information about their team including daily statistics over the last year covering the number of messages held by the server, the total size of attachment data held by the server, and the number of messages sent each day. Also you can fetch the list of users in your team and the list of user groups that your team uses.


You may need the assistance of a computer programmer if you are not one yourself. 


First log into the web panel (only accessible to admins).



Then, in the web panel, click "Web API" in the header.


Create API credentials and save them to your computer. 


Use this Python 3 code or convert it to a language of your choice. Add your accessKey and secretKey in the file. If you do not already have the 'request' library installed, install it using using a command like 

python3 -m pip install requests


import json
import hashlib
import hmac
from base64 import b64encode
import requests

accessKey = "27qigTVzTXKvCAaFiJqGwUgzzhT"
secretKey = "f34836aa7fa1bdbf991b7af645e6139850e0f230b5f80fd26355037a51d6925e9fab9862a08632530cf0888262bb12a1392417b91617a254c17111ade3d25744"

base = "https://highside.io"

secretKey = bytearray.fromhex(secretKey)
def sign(dataToSign):
    mac = hmac.new(secretKey, bytes(dataToSign, 'utf-8'), hashlib.sha512)
    return b64encode(mac.digest())

def authenticatedWebServerRequest(path, data={}):
    headers = {'User-Agent': "Example Admin API client",
               'Accept-Encoding': 'GZIP'}

    JSONData = json.dumps(data)
    dataToSign = base + path + JSONData
    headers.update({
        'Access-Key': accessKey,
        'Signature': sign(dataToSign),
        'Content-Type': 'application/json',
    })
    r = requests.post(base + path,
                      headers=headers, 
                      data=JSONData,
                      timeout=30,
                      stream=False)
    responseData = r.content.decode("utf-8") 
    return json.loads(responseData)

# Test to see that your credentials are working
print(authenticatedWebServerRequest('/app/adminAPI/1/helloWorld'))

# Get one year of historical daily counts of the number of messages held by
# the server, the total size of all attachment data, and the number of messages 
# sent in the last 24 hours.
print(authenticatedWebServerRequest('/app/adminAPI/1/getDailyStatsOverLastYear'))

# Get a list of the user groups active in your team.
print(authenticatedWebServerRequest('/app/adminAPI/1/getUserGroupsList'))

# Get a list of the contacts in your team along with a variety of details. 
# Example data:
"""
   {
      "lastUpdateTime":1635268964547,
      "lastActiveTime":1636077341440,
      "address":"CH-ZUEoBzoaTN34EQXM4qnoshQcMUANKGXD",
      "lastConnectionTime":1636077242594,
      "fullName":"Bob Bobinson",
      "lastConnectionIP":"10.0.2.2",
      "emailVerified":0,
      "accountStatus":"active",
      "groupID":3,
      "contactID":"1DE8BFE22E2024470F111148C81192F5",
      "createdTime":1563946154289,
      "profileInfo":{
         "jobTitle":"Bobisist",
         "email":"bob1@example.com",
         "bio":"Bob is a really cool dude. He enjoys collecting bobbins and fetching apples from pales of water using only his mouth.",
         "phone":""
      },
      "email":"bob1@example.com"
   }
"""
print(authenticatedWebServerRequest('/app/adminAPI/1/getContactsList'))