This package simplifies the connection to the Burgiss API and flattens API responses to dataframes.
The class burgissApiAuth handles all the JWT token authentication but there are a few prerequesite requirements for the authentication.
- Create a private x.509 base 64 format public key and an associated private key
- Send the public key to [email protected]
- Once they receive the public key, they will set up a client ID for api usage
- Download the configTemplate.cfg and rename to config.cfg and place in the working directory
- Add your clientID, user/email and password
- Put your private key in the working directory, name it private.pem
- Creating a virtual environment is suggested
- Download requirements.txt
pip install -r requirements.txt
pip install burgiss-api
## Project Structure
├── config.cfg <- Config file to run api calls (not included in repo)
├── configTemplate.cfg <- Config template file to run api calls
├── pyproject.toml
├── ReadMe.md
├── requirements.txt <- The requirements file for reproducing the package environment
├── requirementsDev.txt <- The requirements file for reproducing the testing environment
├── setup.cfg
├── setup.py
├── tox.ini
│
├── tests
│ ├── conftest.py <- Intermediate data that has been
| ├── test_burgissAnalytics.py
│ └── test_responses.py <- tests for JWT auth, responses and response transformation
│
└── src <- Source code for use in this project.
│
└── burgissApiWrapper <- Scripts to download or generate data
└── burgissApi.py <- Classes for JWT auth, request package wrapping and response trans
## Usage
### Get requests
Request method defaults to get
```python
from burgissApiWrapper.burgissApi import session
# Initiate a session and get profile id for subsequent calls (obtains auth token)
burgissSession = session()
# Basic Request Syntax (Defaults to get)
orgs = burgissSession.request('orgs')
# Specifying profile as a header (instead of the request url), this occurs for a few of the requests
lookUpValues = burgissSession.request('LookupValues', profileIdAsHeader=True)
# Optional Parameters
investments = burgissSession.request('investments', optionalParameters='&includeInvestmentNotes=false&includeCommitmentHistory=false&includeInvestmentLiquidationNotes=false')
Must add optional parameters for requestType and data
from burgissApiWrapper.burgissApi import session
# Initiate a session and get profile id for subsequent calls (obtains auth token)
burgissSession = session()
# When creating a put request, all fields must be present
data = {'someJsonObject':'data'}
# Specify the request type
orgs = burgissSession.request('some endpoint', requestType='PUT', data=data)
Receive a flattened dataframe instead of a raw json from api
from burgissApiWrapper.burgissApi import transformResponse
# Very similar syntax to above
apiSession = transformResponse()
orgs = apiSession.getData('orgs')
❌ Current package does not support this feature but it is a planned addition
from burgissApi import burgissApiSession
# Initiate a session and get profile id for subsequent calls (obtains auth token)
burgissSession = burgissApiSession()
# Get grouping fields
burgissSession.request('analyticsGroupingFields', analyticsApi=True, profileIdAsHeader=True)
# Specify inputs for point in time analyis
analysisJson = pointInTimeAnalyisInput(analysisParameters, globalMeasureParameters,
measures, measureStartDateReference, measureEndDateReference, dataCriteria, groupBy)
# Send post request to receive data
burgissSession.request('pointinTimeAnalysis', analyticsApi=True,
profileIdAsHeader=True, requestType='POST', data=analysisJson)
Supported Calcs
Measure Name | Is Supported for Pooled calculations |
---|---|
IRR | Yes |
TWRR | Yes |
Commitment | Yes |
AdjustedCommitment | Yes |
Unfunded | Yes |
NetCapitalContributed | Yes |
FundSize | No |
DPI | Yes |
RVPI | Yes |
TVPI | Yes |
LN_ICMIRR | Yes |
LN_ICMIRRSpread | Yes |
LN_ICMValuation | Yes |
KS_PME | Yes |
GGS_DirectAlpha | Yes |
PaidIn | Yes |
Funding | Yes |
Fees | Yes |
Distributions | Yes |
Distributions.CapitalGains | Yes |
Distributions.Income | Yes |
Distributions.Other | Yes |
Distributions.RecallableCapital | Yes |
Distributions.ReturnOfCapital | Yes |
Valuation | Yes |
Cash | Yes |
Cash.CapitalGains | Yes |
Cash.Income | Yes |
Cash.Other | Yes |
Cash.RecallableCapital | Yes |
Cash.ReturnOfCapital | Yes |
Stock | Yes |
Stock.CapitalGains | Yes |
Stock.Cost | Yes |
Stock.RecallableCapital | Yes |
Stock.ReturnOfCapital | Yes |