Get paper trading portfolio summaries
curl --request GET \
--url https://api.itoflow.ai/paper-trading/summaries \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.itoflow.ai/paper-trading/summaries"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.itoflow.ai/paper-trading/summaries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"summaries": [
{
"portfolio": {
"allocatedCapital": "<string>",
"brokerSyncStatus": "not_applicable",
"brokerType": "<string>",
"description": "<string>",
"executionMode": "paper",
"linkType": "primary",
"name": "<string>",
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wentLiveAt": "<string>"
},
"status": {
"current": {
"cash": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"date": "<string>",
"totalValue": "<string>"
},
"factorScorecard": {
"asOf": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"currency": "<string>",
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"modelVersion": "<string>",
"portfolioId": "<string>",
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"schemaVersion": 123,
"benchmarkRelative": {
"benchmarkSymbol": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"benchmarkName": "<string>",
"benchmarkSource": "<string>"
},
"holdings": [
{
"symbol": "<string>",
"annualizationFactor": "<string>",
"marginalContribution": "<string>",
"specificVarianceShare": "<string>",
"specificVolatility": "<string>",
"totalRiskContributionShare": "<string>",
"volatilityConvention": "<string>",
"weight": "<string>"
}
],
"holdingsTotal": 123,
"holdingsTruncated": true,
"residualDiagnostics": {
"commonComponentRatioThreshold": "<string>",
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"medianPairwiseResidualCorrelation": "<string>",
"minimumWindowSessions": 123,
"modelSpecificVariance": "<string>",
"realizedResidualVariance": "<string>",
"requestedWindowSessions": 123,
"residualCommonComponentDetected": true,
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsMissing": [
"<string>"
],
"symbolsMissingCount": 123,
"symbolsUsed": [
"<string>"
],
"symbolsUsedCount": 123,
"warnings": [
"<string>"
],
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
},
"view": {
"absoluteRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"benchmarkRelativeRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"coverageSummary": {
"cashWeight": "<string>",
"lookthroughModeledWeight": "<string>",
"lookthroughUnmodeledWeight": "<string>",
"modeledWeight": "<string>",
"returnsFallbackWeight": "<string>",
"unmodeledWeight": "<string>"
},
"holdingRows": [
{
"id": "<string>",
"symbol": "<string>",
"contributionShare": "<string>",
"name": "<string>",
"specificVarianceShare": "<string>",
"weight": "<string>"
}
],
"residualSummary": {
"commonComponentDetected": true,
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsUsed": 123,
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
}
}
},
"holdings": {},
"pendingFirstExecution": true,
"performanceHistory": [
{
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"timestamp": "<string>",
"value": "<string>"
}
],
"scorecard": {
"avgTurnover30d": 123,
"benchmarkSymbol": "<string>",
"calculatedAt": "<string>",
"calculationSource": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"hasSufficientData": true,
"insight": "<string>",
"maxDrawdown": 123,
"monthlyAlpha": 123,
"overallAlpha": 123,
"sharpe30d": 123,
"sharpeOverall": 123,
"sortino30d": 123,
"volatility": 123,
"weeklyAlpha": 123,
"winRate30d": 123
},
"strategy": {
"constraints": {
"allowed_exchanges": [
"<string>"
],
"blocked_symbols": [
"<string>"
],
"is_strict": true,
"max_drawdown_pct": 123,
"max_position_pct": 123,
"max_positions": 123,
"min_cash_pct": 123,
"min_position_pct": 123,
"stop_loss_pct": 123,
"stop_on_drawdown": true
},
"createdAt": "<string>",
"createdBy": "<string>",
"description": "<string>",
"executionStatus": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialCapital": "<string>",
"isActive": true,
"name": "<string>",
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rules": {
"lookback_days": 123,
"model_key": "luna",
"rebalance_frequency": "daily",
"rebalance_time_utc": "<string>"
},
"strategyContent": "<string>",
"universe": [
"<string>"
]
},
"valuationError": {
"code": "PORTFOLIO_VALUE_NOT_POSITIVE",
"message": "<string>"
}
},
"strategy": {
"cloneOfStrategyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "<string>",
"createdBy": "<string>",
"description": "<string>",
"executionStatus": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialCapital": "<string>",
"isActive": true,
"lastExecutionAt": "<string>",
"latestDecision": {
"agentNotes": "<string>",
"confidence": 123,
"createdAt": "<string>",
"decisionType": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"marketOutlook": "<string>",
"reasoning": "<string>",
"tradeCount": 123
},
"mandatePending": true,
"name": "<string>",
"owned": true,
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"promptFile": "<string>",
"updatedAt": "<string>"
}
}
]
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}Strategies
Get paper trading portfolio summaries
Returns strategy summaries without trade or decision history.
Operation ID: get__paper_trading_summaries.
GET
https://api.itoflow.ai
/
paper-trading
/
summaries
Get paper trading portfolio summaries
curl --request GET \
--url https://api.itoflow.ai/paper-trading/summaries \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.itoflow.ai/paper-trading/summaries"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.itoflow.ai/paper-trading/summaries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"summaries": [
{
"portfolio": {
"allocatedCapital": "<string>",
"brokerSyncStatus": "not_applicable",
"brokerType": "<string>",
"description": "<string>",
"executionMode": "paper",
"linkType": "primary",
"name": "<string>",
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wentLiveAt": "<string>"
},
"status": {
"current": {
"cash": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"date": "<string>",
"totalValue": "<string>"
},
"factorScorecard": {
"asOf": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"currency": "<string>",
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"modelVersion": "<string>",
"portfolioId": "<string>",
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"schemaVersion": 123,
"benchmarkRelative": {
"benchmarkSymbol": "<string>",
"coverage": {
"cashWeight": "<string>",
"grossWeight": "<string>",
"longWeight": "<string>",
"modeledWeight": "<string>",
"netWeight": "<string>",
"positionsModeled": 123,
"positionsTotal": 123,
"shortWeight": "<string>"
},
"diagnostics": {
"cashExcluded": 123,
"factorCount": 123,
"symbolCount": 123,
"warnings": [
"<string>"
]
},
"exposures": [
{
"exposure": "<string>",
"factorId": "<string>",
"group": "market",
"name": "<string>",
"proxyScope": "<string>",
"activeRiskContribution": "<string>",
"marginalRiskContribution": "<string>",
"riskContribution": "<string>",
"varianceContribution": "<string>"
}
],
"risk": {
"activeRiskComplete": true,
"activeSpecificShare": "<string>",
"activeVariance": "<string>",
"activeVolatility": "<string>",
"annualizationFactor": "<string>",
"factorShare": "<string>",
"factorVariance": "<string>",
"specificRiskContribution": "<string>",
"specificShare": "<string>",
"specificVariance": "<string>",
"totalVariance": "<string>",
"totalVolatility": "<string>",
"volatilityConvention": "daily"
},
"benchmarkName": "<string>",
"benchmarkSource": "<string>"
},
"holdings": [
{
"symbol": "<string>",
"annualizationFactor": "<string>",
"marginalContribution": "<string>",
"specificVarianceShare": "<string>",
"specificVolatility": "<string>",
"totalRiskContributionShare": "<string>",
"volatilityConvention": "<string>",
"weight": "<string>"
}
],
"holdingsTotal": 123,
"holdingsTruncated": true,
"residualDiagnostics": {
"commonComponentRatioThreshold": "<string>",
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"medianPairwiseResidualCorrelation": "<string>",
"minimumWindowSessions": 123,
"modelSpecificVariance": "<string>",
"realizedResidualVariance": "<string>",
"requestedWindowSessions": 123,
"residualCommonComponentDetected": true,
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsMissing": [
"<string>"
],
"symbolsMissingCount": 123,
"symbolsUsed": [
"<string>"
],
"symbolsUsedCount": 123,
"warnings": [
"<string>"
],
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
},
"view": {
"absoluteRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"benchmarkRelativeRiskRows": [
{
"group": "<string>",
"id": "<string>",
"kind": "factor",
"name": "<string>",
"contribution": "<string>",
"contributionShare": "<string>"
}
],
"coverageSummary": {
"cashWeight": "<string>",
"lookthroughModeledWeight": "<string>",
"lookthroughUnmodeledWeight": "<string>",
"modeledWeight": "<string>",
"returnsFallbackWeight": "<string>",
"unmodeledWeight": "<string>"
},
"holdingRows": [
{
"id": "<string>",
"symbol": "<string>",
"contributionShare": "<string>",
"name": "<string>",
"specificVarianceShare": "<string>",
"weight": "<string>"
}
],
"residualSummary": {
"commonComponentDetected": true,
"effectiveNumberOfBets": "<string>",
"firstComponentVarianceShare": "<string>",
"meanPairwiseResidualCorrelation": "<string>",
"residualVarianceRatio": "<string>",
"sufficientHistory": true,
"symbolsUsed": 123,
"weightMissing": "<string>",
"weightUsed": "<string>",
"windowSessions": 123
}
}
},
"holdings": {},
"pendingFirstExecution": true,
"performanceHistory": [
{
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"timestamp": "<string>",
"value": "<string>"
}
],
"scorecard": {
"avgTurnover30d": 123,
"benchmarkSymbol": "<string>",
"calculatedAt": "<string>",
"calculationSource": "<string>",
"cumulativeReturn": 123,
"cumulativeReturnReason": "<string>",
"dailyReturn": 123,
"dailyReturnReason": "<string>",
"hasSufficientData": true,
"insight": "<string>",
"maxDrawdown": 123,
"monthlyAlpha": 123,
"overallAlpha": 123,
"sharpe30d": 123,
"sharpeOverall": 123,
"sortino30d": 123,
"volatility": 123,
"weeklyAlpha": 123,
"winRate30d": 123
},
"strategy": {
"constraints": {
"allowed_exchanges": [
"<string>"
],
"blocked_symbols": [
"<string>"
],
"is_strict": true,
"max_drawdown_pct": 123,
"max_position_pct": 123,
"max_positions": 123,
"min_cash_pct": 123,
"min_position_pct": 123,
"stop_loss_pct": 123,
"stop_on_drawdown": true
},
"createdAt": "<string>",
"createdBy": "<string>",
"description": "<string>",
"executionStatus": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialCapital": "<string>",
"isActive": true,
"name": "<string>",
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rules": {
"lookback_days": 123,
"model_key": "luna",
"rebalance_frequency": "daily",
"rebalance_time_utc": "<string>"
},
"strategyContent": "<string>",
"universe": [
"<string>"
]
},
"valuationError": {
"code": "PORTFOLIO_VALUE_NOT_POSITIVE",
"message": "<string>"
}
},
"strategy": {
"cloneOfStrategyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"createdAt": "<string>",
"createdBy": "<string>",
"description": "<string>",
"executionStatus": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"initialCapital": "<string>",
"isActive": true,
"lastExecutionAt": "<string>",
"latestDecision": {
"agentNotes": "<string>",
"confidence": 123,
"createdAt": "<string>",
"decisionType": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"marketOutlook": "<string>",
"reasoning": "<string>",
"tradeCount": 123
},
"mandatePending": true,
"name": "<string>",
"owned": true,
"portfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"promptFile": "<string>",
"updatedAt": "<string>"
}
}
]
}{
"error": "<string>",
"available": "<string>",
"billing_action": {
"href": "<string>",
"kind": "upgrade",
"label": "<string>"
},
"code": "<string>",
"currentVersion": 123,
"details": "<unknown>",
"expectedVersion": 123,
"message": "<string>",
"requested": "<string>",
"usage": "<unknown>"
}