| All Verbs | /historical/balances |
|---|
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| PlatformFee | query | decimal | No | |
| AdvisorFee | query | decimal | No | |
| OtherCharges | query | decimal | No | |
| Tic | query | decimal | No | |
| Rebalance | query | int | No | |
| AssetAllocation | query | AssetAllocationView | No | |
| AdjustForInflation | query | bool | No | |
| StartDate | query | int | No | |
| EndDate | query | int | No | |
| Lumpsum | query | decimal | No | |
| GetContributionCashFlowRequest | query | GetContributionCashFlowRequest | No | |
| GetIncomeCashFlowRequest | query | GetIncomeCashFlowRequest | No | |
| ContributionCashFlowResponse | query | GetContributionCashFlowResponse | No | |
| IncomeCashFlowResponse | query | GetIncomeCashFlowResponse | No | |
| IncludeMinMaxReturns | query | bool | No | |
| RollingReturnsPeriod | query | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| LocalCash | form | decimal | No | |
| LocalCredit | form | decimal | No | |
| LocalBonds | form | decimal | No | |
| LocalBondsHedge | form | decimal | No | |
| LocalEquity | form | decimal | No | |
| LocalEquityHedge | form | decimal | No | |
| LocalProperty | form | decimal | No | |
| LocalPropertyHedge | form | decimal | No | |
| LocalInfrastructure | form | decimal | No | |
| ForeignCash | form | decimal | No | |
| ForeignBonds | form | decimal | No | |
| ForeignBondsHedge | form | decimal | No | |
| ForeignEquity | form | decimal | No | |
| ForeignProperty | form | decimal | No | |
| ForeignEquityHedge | form | decimal | No | |
| ForeignPropertyHedge | form | decimal | No | |
| Africa | form | decimal | No | |
| Commodity | form | decimal | No | |
| GlobalCash | form | decimal | No | |
| GlobalBonds | form | decimal | No | |
| GlobalInvestmentGrade | form | decimal | No | |
| GlobalHighYield | form | decimal | No | |
| GlobalEmergingMarketBonds | form | decimal | No | |
| AfricaEuroBondsExSouthAfrica | form | decimal | No | |
| GlobalProperty | form | decimal | No | |
| GlobalEquity | form | decimal | No | |
| GlobalEquitySmallCapStocks | form | decimal | No | |
| GlobalEmergingMarketEquity | form | decimal | No | |
| GlobalHedgeFunds | form | decimal | No | |
| ListedPrivateEquity | form | decimal | No | |
| ListedInfrastructure | form | decimal | No | |
| GlobalIncomeOpportunities | form | decimal | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| KeyIndex | form | int | No | |
| ContributionLabel | form | string | No | |
| ApplyContribution | form | bool | No | |
| Contribution | form | decimal | No | |
| ContributionGrowth | form | decimal | No | |
| ContributionGrowthFrequency | form | decimal | No | |
| ContributionFrequency | form | int | No | |
| ContributionStartYear | form | int | No | |
| ContributionToLast | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| KeyIndex | form | int | No | |
| IncomeLabel | form | string | No | |
| IncomeIncludeZeroIncomeYears | form | bool | No | |
| Income | form | decimal | No | |
| TaxRate | form | decimal | No | |
| IncomeToLast | form | int | No | |
| CurrentAge | form | int | No | |
| IncomeGrowth | form | decimal | No | |
| IncomeGrowthFrequency | form | decimal | No | |
| PayoutFrequency | form | int | No | |
| StartYear | form | int | No | |
| HasAdhocCashFlow | form | bool | No | |
| AdhocCashFlowAge1 | form | int | No | |
| AdhocCashFlow1 | form | decimal | No | |
| AdhocCashFlowAge2 | form | int | No | |
| AdhocCashFlow2 | form | decimal | No | |
| AdhocCashFlowAge3 | form | int | No | |
| AdhocCashFlow3 | form | decimal | No | |
| ApplySmile | form | bool | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Incomes | form | List<IncomeView> | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Year | form | int | No | |
| Income | form | decimal | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Incomes | form | List<IncomeView> | No | |
| IndividualIncomes | form | List<GetIncomeCashFlowResponse> | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| HistoricalBalances | form | List<AaBalanceView> | No | |
| AnnualReturns | form | List<HistoricalReturn> | No | |
| MonthlyReturns | form | List<HistoricalReturn> | No | |
| StressPeriods | form | List<DrawdownReturn> | No | |
| Drawdown | form | List<HistoricalReturn> | No | |
| HistoricalStats | form | HistoricalStats | No | |
| MinMax1YearReturns | form | MinMaxReturn | No | |
| MinMax5YearReturns | form | MinMaxReturn | No | |
| MinMax10YearReturns | form | MinMaxReturn | No | |
| MinMax15YearReturns | form | MinMaxReturn | No | |
| MinMax20YearReturns | form | MinMaxReturn | No | |
| MinMax25YearReturns | form | MinMaxReturn | No | |
| MinMax30YearReturns | form | MinMaxReturn | No | |
| MinMax35YearReturns | form | MinMaxReturn | No | |
| MinMax40YearReturns | form | MinMaxReturn | No | |
| RollingReturns | form | List<HistoricalReturn> | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| StartDate | form | string | No | |
| Date | form | string | No | |
| MonthIndex | form | int | No | |
| YearIndex | form | int | No | |
| Balance | form | decimal | No | |
| LocalCash | form | decimal | No | |
| LocalBonds | form | decimal | No | |
| LocalBondsHedge | form | decimal | No | |
| LocalEquity | form | decimal | No | |
| LocalEquityHedge | form | decimal | No | |
| LocalProperty | form | decimal | No | |
| LocalPropertyHedge | form | decimal | No | |
| ForeignCash | form | decimal | No | |
| ForeignBonds | form | decimal | No | |
| ForeignBondsHedge | form | decimal | No | |
| ForeignEquity | form | decimal | No | |
| ForeignProperty | form | decimal | No | |
| ForeignEquityHedge | form | decimal | No | |
| ForeignPropertyHedge | form | decimal | No | |
| Africa | form | decimal | No | |
| Commodity | form | decimal | No | |
| TotalReturn | form | decimal | No | |
| IndexedBalance | form | decimal | No | |
| Income | form | decimal | No | |
| IncomeAnnualisedPercent | form | decimal | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Period | form | string | No | |
| StartDate | form | string | No | |
| EndDate | form | string | No | |
| PeriodType | form | string | No | |
| Return | form | decimal | No | |
| SectorReturn | form | decimal | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Description | form | string | No | |
| StartDate | form | string | No | |
| EndDate | form | string | No | |
| Length | form | int | No | |
| RecoveredBy | form | string | No | |
| RecoveryTime | form | int | No | |
| UnderwaterPeriod | form | int | No | |
| Return | form | decimal | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Date | form | string | No | |
| InitialBalance | form | decimal | No | |
| TotalContributions | form | decimal | No | |
| TotalWithdrawals | form | decimal | No | |
| StDev | form | decimal | No | |
| BestYear | form | decimal | No | |
| WorstYear | form | decimal | No | |
| MaxDrawdown | form | decimal | No | |
| SharpeRatio | form | decimal | No | |
| Sortino | form | decimal | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Date | form | string | No | |
| Months | form | int | No | |
| MinReturn | form | decimal | No | |
| MinReturnStartDate | form | string | No | |
| MinReturnEndDate | form | string | No | |
| MaxReturn | form | decimal | No | |
| MaxReturnStartDate | form | string | No | |
| MaxReturnEndDate | form | string | No | |
| AverageReturn | form | decimal | No |
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /historical/balances HTTP/1.1
Host: api.portfoliolink.co.za
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
platformFee: 0,
advisorFee: 0,
otherCharges: 0,
tic: 0,
rebalance: 0,
assetAllocation:
{
localCash: 0,
localCredit: 0,
localBonds: 0,
localBondsHedge: 0,
localEquity: 0,
localEquityHedge: 0,
localProperty: 0,
localPropertyHedge: 0,
localInfrastructure: 0,
foreignCash: 0,
foreignBonds: 0,
foreignBondsHedge: 0,
foreignEquity: 0,
foreignProperty: 0,
foreignEquityHedge: 0,
foreignPropertyHedge: 0,
africa: 0,
commodity: 0,
globalCash: 0,
globalBonds: 0,
globalInvestmentGrade: 0,
globalHighYield: 0,
globalEmergingMarketBonds: 0,
africaEuroBondsExSouthAfrica: 0,
globalProperty: 0,
globalEquity: 0,
globalEquitySmallCapStocks: 0,
globalEmergingMarketEquity: 0,
globalHedgeFunds: 0,
listedPrivateEquity: 0,
listedInfrastructure: 0,
globalIncomeOpportunities: 0
},
adjustForInflation: False,
startDate: 0,
endDate: 0,
lumpsum: 0,
getContributionCashFlowRequest:
{
keyIndex: 0,
contributionLabel: String,
applyContribution: False,
contribution: 0,
contributionGrowth: 0,
contributionGrowthFrequency: 0,
contributionFrequency: 0,
contributionStartYear: 0,
contributionToLast: 0
},
getIncomeCashFlowRequest:
{
keyIndex: 0,
incomeLabel: String,
incomeIncludeZeroIncomeYears: False,
income: 0,
taxRate: 0,
incomeToLast: 0,
currentAge: 0,
incomeGrowth: 0,
incomeGrowthFrequency: 0,
payoutFrequency: 0,
startYear: 0,
hasAdhocCashFlow: False,
adhocCashFlowAge1: 0,
adhocCashFlow1: 0,
adhocCashFlowAge2: 0,
adhocCashFlow2: 0,
adhocCashFlowAge3: 0,
adhocCashFlow3: 0,
applySmile: False
},
contributionCashFlowResponse:
{
incomes:
[
{
year: 0,
income: 0
}
]
},
incomeCashFlowResponse:
{
incomes:
[
{
year: 0,
income: 0
}
],
individualIncomes:
[
{
incomes:
[
{
year: 0,
income: 0
}
],
individualIncomes:
[
{
incomes:
[
{
year: 0,
income: 0
}
],
individualIncomes:
[
{
}
]
}
]
}
]
},
includeMinMaxReturns: False,
rollingReturnsPeriod: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
historicalBalances:
[
{
startDate: String,
date: String,
monthIndex: 0,
yearIndex: 0,
balance: 0,
localCash: 0,
localBonds: 0,
localBondsHedge: 0,
localEquity: 0,
localEquityHedge: 0,
localProperty: 0,
localPropertyHedge: 0,
foreignCash: 0,
foreignBonds: 0,
foreignBondsHedge: 0,
foreignEquity: 0,
foreignProperty: 0,
foreignEquityHedge: 0,
foreignPropertyHedge: 0,
africa: 0,
commodity: 0,
totalReturn: 0,
indexedBalance: 0,
income: 0,
incomeAnnualisedPercent: 0
}
],
annualReturns:
[
{
period: String,
startDate: String,
endDate: String,
periodType: String,
return: 0,
sectorReturn: 0
}
],
monthlyReturns:
[
{
period: String,
startDate: String,
endDate: String,
periodType: String,
return: 0,
sectorReturn: 0
}
],
stressPeriods:
[
{
description: String,
startDate: String,
endDate: String,
length: 0,
recoveredBy: String,
recoveryTime: 0,
underwaterPeriod: 0,
return: 0
}
],
drawdown:
[
{
period: String,
startDate: String,
endDate: String,
periodType: String,
return: 0,
sectorReturn: 0
}
],
historicalStats:
{
date: String,
initialBalance: 0,
totalContributions: 0,
totalWithdrawals: 0,
stDev: 0,
bestYear: 0,
worstYear: 0,
maxDrawdown: 0,
sharpeRatio: 0,
sortino: 0
},
minMax1YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax5YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax10YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax15YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax20YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax25YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax30YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax35YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
minMax40YearReturns:
{
date: String,
months: 0,
minReturn: 0,
minReturnStartDate: String,
minReturnEndDate: String,
maxReturn: 0,
maxReturnStartDate: String,
maxReturnEndDate: String,
averageReturn: 0
},
rollingReturns:
[
{
period: String,
startDate: String,
endDate: String,
periodType: String,
return: 0,
sectorReturn: 0
}
]
}