Before you begin, follow the Getting Started guide for Open Api 2:

To use spotware_connect in a project:

import spotware_connect as sc

c = sc.Client()

@c.event  # on connect event handler
def connect():
    c.emit("VersionReq")  # send a ProtoOAVersionReq

    # send a ProtoOAVersionReq with a clientMsgId
    c.emit("VersionReq", msgid="V1")

    # send a ProtoOAApplicationAuthReq with data
    c.emit("ApplicationAuthReq", clientId="YOUR_APP_CLIENT_ID",

@c.event  # on disconnect event handler
def disconnect():

@c.event  # global message receive handler
def message(msg, payload, **kargs):  # access ProtoMessage or its payload objects
    print("Global Received message ", repr(msg))
    print("Global Received payload ", repr(payload))

@c.message(msgtype="ErrorRes")  # handle ProtoOAErrorRes messages
def on_error(payload, **kargs):
    print("Error: ", repr(payload))
    c.stop()  # stops client

@c.message(msgtype="VersionRes")  # handle ProtoOAVersionRes messages
# access version atribute of ProtoOAVersionRes
def on_version(msg, payload, version, **kargs):
    print("Api Version: ", version)

@c.message(msgid="V1")  # handle messages with clientMsgId=V1
def on_version(msg, payload, **kargs):
    print("Received Message with msgid 'V1': ", repr(payload))

# handle ProtoOAApplicationAuthRes messages
def on_auth_ok(**kargs):
    print("Application Authorized")
    c.stop()  # stops client

c.start(timeout=5)  # optional: set a timeout interval in seconds

You can find the message types and their params at