Unofficial Easy Equities and Satrix Python Client
Project description
Easy Equities and Satrix Python Client
[!WARNING]
Not actively maintained anymore.
Unofficial Python client for Easy Equities and Satrix. Intended for personal use.
Supports Python 3.13+.
Installation
pip install easy-equities-client
Features
Accounts:
- Get accounts for a user:
client.accounts.list() - Get account holdings:
client.accounts.holdings(account.id) - Get account valuations:
client.accounts.valuations(account.id) - Get account transactions:
client.accounts.transactions(account.id)
Instruments:
- Get the historical prices for an instrument:
client.instruments.historical_prices('EQU.ZA.SYGJP', Period.ONE_MONTH)
Usage
from easy_equities_client.clients import EasyEquitiesClient # or SatrixClient
client = EasyEquitiesClient()
client.login(username='your username', password='your password')
# List accounts
accounts = client.accounts.list()
"""
[
Account(id='12345', name='EasyEquities ZAR', trading_currency_id='2'),
Account(id='12346', name='TFSA', trading_currency_id='3'),
...
]
"""
# Get account holdings
holdings = client.accounts.holdings(accounts[0].id)
"""
[
{
"name": "CoreShares Global DivTrax ETF",
"contract_code": "EQU.ZA.GLODIV",
"purchase_value": "R2 000.00",
"current_value": "R3 000.00",
"current_price": "R15.50",
"img": "https://resources.easyequities.co.za/logos/EQU.ZA.GLODIV.png",
"view_url": "/AccountOverview/GetInstrumentDetailAction/?IsinCode=ZAE000254249",
"isin": "ZAE000254249"
},
...
]
"""
# Optionally include number of shares for each holding (creates another API call for each holding)
holdings = client.accounts.holdings(accounts[0].id, include_shares=True)
"""
[
{
"name": "CoreShares Global DivTrax ETF",
"contract_code": "EQU.ZA.GLODIV",
"purchase_value": "R2 000.00",
"current_value": "R3 000.00",
"current_price": "R15.50",
"img": "https://resources.easyequities.co.za/logos/EQU.ZA.GLODIV.png",
"view_url": "/AccountOverview/GetInstrumentDetailAction/?IsinCode=ZAE000254249",
"isin": "ZAE000254249",
"shares": "200.123"
},
...
]
"""
# Get account valuations
valuations = client.accounts.valuations(accounts[0].id)
"""
{
"TopSummary": {
"AccountValue": 300000.50,
"AccountCurrency": "ZAR",
"AccountNumber": "EE123456-111111",
"AccountName": "EasyEquities ZAR",
"PeriodMovements": [
{
"ValueMoveLabel": "Profit & Loss Value",
"ValueMove": "R5 000.00",
"PercentageMoveLabel": "Profit & Loss",
"PercentageMove": "15.00%",
"PeriodMoveHeader": "Movement on Current Holdings:"
}
]
},
"NetInterestOnCashItems": [
{
"Label": "Total Interest on Free Cash",
"Value": "R10.55"
},
...
],
"AccrualSummaryItems": [
{
"Label": "Net Accrual",
"Value": "R2.00"
},
...
],
...
}
"""
# Get account transactions
transactions = client.accounts.transactions(accounts[0].id)
"""
[
{
"TransactionId": 0,
"DebitCredit": 200.00,
"Comment": "Account Balance Carried Forward",
"TransactionDate": "2020-07-21T01:00:00",
"LogId": 123456789,
"ActionId": 0,
"Action": "Account Balance Carried Forward",
"ContractCode": ""
},
{
"TransactionId": 0,
"DebitCredit": 50.00,
"Comment": "CoreShares Global DivTrax ETF-Foreign Dividends @15.00",
"TransactionDate": "2020-11-19T14:30:00",
"LogId": 123456790,
"ActionId": 122,
"Action": "Foreign Dividend",
"ContractCode": "EQU.ZA.GLODIV"
},
...
]
"""
# Get historical data for an equity/instrument
from easy_equities_client.instruments.types import Period
historical_prices = client.instruments.historical_prices('EQU.ZA.SYGJP', Period.ONE_MONTH)
"""
{
"chartData": {
"Dataset": [
41.97,
42.37,
...
],
"Labels": [
"25 Jun 21",
"28 Jun 21",
...
],
"TradingCurrencySymbol": "R",
...
}
}
"""
Example Use Cases
Show holdings total profits/losses
Run a script to show your holdings and their total profits/losses, e.g.
show_holdings_profit_loss.py.
Contributing
See Contributing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easy_equities_client-1.2.0.tar.gz.
File metadata
- Download URL: easy_equities_client-1.2.0.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5a66fefccd617c2a602a261bbde8bacedaf0e5b0cf28f2adb748e54257b7e8c
|
|
| MD5 |
ec296c6b9f7d66f5ceaa6a452b4a637d
|
|
| BLAKE2b-256 |
34f315c6a7266b8429425488bc18fad58dfd0b2a40ab8f0fb62363fb03d2cdf6
|
File details
Details for the file easy_equities_client-1.2.0-py3-none-any.whl.
File metadata
- Download URL: easy_equities_client-1.2.0-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2564f2fec084e8ce3ef8e181d10e7f3c8172d99e993a2433a9c736ac5c603cb4
|
|
| MD5 |
00b2eef042482bb0d36738f1b8e25b6b
|
|
| BLAKE2b-256 |
41f78072739f52649b0242b1e0e07f9efaada33c87cbf50cdfac0d3011c2c6d1
|