Skip to main content

OpenApiPy

PyPI version versions GitHub license

A Python package for interacting with cTrader Open API.

This package uses Twisted and it works asynchronously.

Features

  • Works asynchronously by using Twisted

  • Methods return Twisted deferreds

  • It contains the Open API messages files so you don't have to do the compilation

  • Makes handling request responses easy by using Twisted deferreds

Insallation

pip install ctrader-open-api

Usage

from ctrader_open_api import Client, Protobuf, TcpProtocol, Auth, EndPoints
from ctrader_open_api.messages.OpenApiCommonMessages_pb2 import *
from ctrader_open_api.messages.OpenApiCommonMessages_pb2 import *
from ctrader_open_api.messages.OpenApiMessages_pb2 import *
from ctrader_open_api.messages.OpenApiModelMessages_pb2 import *
from twisted.internet import reactor

hostType = input("Host (Live/Demo): ")
host = EndPoints.PROTOBUF_LIVE_HOST if hostType.lower() == "live" else EndPoints.PROTOBUF_DEMO_HOST
client = Client(host, EndPoints.PROTOBUF_PORT, TcpProtocol)

def onError(failure): # Call back for errors
    print("Message Error: ", failure)

def connected(client): # Callback for client connection
    print("\nConnected")
    # Now we send a ProtoOAApplicationAuthReq
    request = ProtoOAApplicationAuthReq()
    request.clientId = "Your application Client ID"
    request.clientSecret = "Your application Client secret"
    # Client send method returns a Twisted deferred
    deferred = client.send(request)
    # You can use the returned Twisted deferred to attach callbacks
    # for getting message response or error backs for getting error if something went wrong
    # deferred.addCallbacks(onProtoOAApplicationAuthRes, onError)
    deferred.addErrback(onError)

def disconnected(client, reason): # Callback for client disconnection
    print("\nDisconnected: ", reason)

def onMessageReceived(client, message): # Callback for receiving all messages
    print("Message received: \n", Protobuf.extract(message))

# Setting optional client callbacks
client.setConnectedCallback(connected)
client.setDisconnectedCallback(disconnected)
client.setMessageReceivedCallback(onMessageReceived)
# Starting the client service
client.startService()
# Run Twisted reactor
reactor.run()

Please check documentation or samples for a complete example.

Dependencies

Metadata

Release files for ctrader_open_api 0.9.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ctrader_open_api 0.9.2
File Size Uploaded
ctrader_open_api-0.9.2.tar.gz 20.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ctrader_open_api 0.9.2
File Interpreter ABI Platform
ctrader_open_api-0.9.2-py3-none-any.whl Python 3 none any Details

Total release size: 44.2 kB

Release files / ctrader_open_api-0.9.2.tar.gz

Download URL ctrader_open_api-0.9.2.tar.gz
Size 20.0 kB
Tags Source
SHA-256 checksum
How to use checksums
81d651e13477268a12ad2da4ebcc80af71e1f8d0b0ab86a3480542e3ba8031eb
BLAKE2b-256 checksum
How to use checksums
77f1811654a771166093ae15bb96a2e6a239de417ff852f9168ab6d9cc670b83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.9.19 Linux/6.5.0-1022-azure

Release files / ctrader_open_api-0.9.2-py3-none-any.whl

Download URL ctrader_open_api-0.9.2-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd163d9c590b264196146cc3fb2e3daf42d7331148ab9b15e03dfa0685f0fc53
BLAKE2b-256 checksum
How to use checksums
074f5495d4530d20abe9ac025332c0291e6d9370bb725a779085f82918b1fb99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.9.19 Linux/6.5.0-1022-azure

Release history Release notifications | RSS feed

This release

0.9.2 This release

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page