Get portfolio detail
curl --request GET \
--url https://api.itoflow.ai/portfolios/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.itoflow.ai/portfolios/{id}"
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/portfolios/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"exited_holdings": [
{
"cost_basis": "<string>",
"currency": "<string>",
"current_price_usd": "<string>",
"current_value_usd": "<string>",
"fx_rate_to_usd": "<string>",
"holding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_updated_at": "<string>",
"quantity": "<string>",
"symbol": "<string>",
"unrealized_pnl": "<string>",
"unrealized_pnl_pct": "<string>",
"updated_at": "<string>",
"is_exited": true,
"realized_pnl": "<string>",
"realized_pnl_pct": "<string>",
"companyName": "<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": [
{
"cost_basis": "<string>",
"currency": "<string>",
"current_price_usd": "<string>",
"current_value_usd": "<string>",
"fx_rate_to_usd": "<string>",
"holding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_updated_at": "<string>",
"quantity": "<string>",
"symbol": "<string>",
"unrealized_pnl": "<string>",
"unrealized_pnl_pct": "<string>",
"updated_at": "<string>",
"companyName": "<string>"
}
],
"linked_strategy": {},
"metrics": {
"cash": "<string>",
"cumulativeReturn": "<string>",
"cumulativeReturnReason": "<string>",
"dailyReturn": "<string>",
"dailyReturnReason": "<string>",
"recordedAt": "<string>",
"totalValue": "<string>"
},
"pnl_metrics": {
"total_pnl": "<string>",
"total_pnl_pct": "<string>",
"total_realized_pnl": "<string>",
"total_unrealized_pnl": "<string>"
},
"portfolio": {
"benchmarkIndexId": "<string>",
"broker_type": "<string>",
"created_at": "<string>",
"description": "<string>",
"execution_mode": "<string>",
"holdings": [
{
"cost_basis": "<string>",
"currency": "<string>",
"current_price_usd": "<string>",
"current_value_usd": "<string>",
"fx_rate_to_usd": "<string>",
"holding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_updated_at": "<string>",
"quantity": "<string>",
"symbol": "<string>",
"unrealized_pnl": "<string>",
"unrealized_pnl_pct": "<string>",
"updated_at": "<string>",
"companyName": "<string>"
}
],
"is_active": true,
"linkedAt": "<string>",
"linkedStrategyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"linkType": "<string>",
"name": "<string>",
"peerPortfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_type": "<string>",
"updated_at": "<string>",
"user_email": "<string>"
},
"portfolio_value": {
"amount_usd": "<string>",
"as_of_date": "<string>",
"basis": "portfolio_value",
"declared_amount": "<string>",
"declared_currency": "<string>",
"source": "provider_derived"
},
"price_updated_at": "<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
},
"valuation_unavailable_reason": "<string>",
"valuationError": {
"code": "PORTFOLIO_VALUE_NOT_POSITIVE",
"message": "<string>"
},
"first_broker_snapshot_pending": true,
"live_broker_state": {
"availableCash": "<string>",
"currency": "<string>",
"snapshotAt": "<string>",
"totalEquity": "<string>",
"availableCashUsd": "<string>",
"reservedCash": "<string>",
"reservedCashUsd": "<string>",
"totalCash": "<string>",
"totalCashUsd": "<string>",
"totalEquityUsd": "<string>"
},
"scorecard_input_dates": {
"holdings_fund_books_peers_and_benchmark_read_by": "<string>",
"meaning": "<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>"
}{
"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>"
}{
"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>"
}{
"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>"
}Portfolios
Get portfolio detail
Returns portfolio with full holdings, P&L, linked strategy details, performance metrics, and agent scorecard.
Operation ID: get__portfolios_id_.
GET
https://api.itoflow.ai
/
portfolios
/
{id}
Get portfolio detail
curl --request GET \
--url https://api.itoflow.ai/portfolios/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.itoflow.ai/portfolios/{id}"
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/portfolios/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"exited_holdings": [
{
"cost_basis": "<string>",
"currency": "<string>",
"current_price_usd": "<string>",
"current_value_usd": "<string>",
"fx_rate_to_usd": "<string>",
"holding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_updated_at": "<string>",
"quantity": "<string>",
"symbol": "<string>",
"unrealized_pnl": "<string>",
"unrealized_pnl_pct": "<string>",
"updated_at": "<string>",
"is_exited": true,
"realized_pnl": "<string>",
"realized_pnl_pct": "<string>",
"companyName": "<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": [
{
"cost_basis": "<string>",
"currency": "<string>",
"current_price_usd": "<string>",
"current_value_usd": "<string>",
"fx_rate_to_usd": "<string>",
"holding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_updated_at": "<string>",
"quantity": "<string>",
"symbol": "<string>",
"unrealized_pnl": "<string>",
"unrealized_pnl_pct": "<string>",
"updated_at": "<string>",
"companyName": "<string>"
}
],
"linked_strategy": {},
"metrics": {
"cash": "<string>",
"cumulativeReturn": "<string>",
"cumulativeReturnReason": "<string>",
"dailyReturn": "<string>",
"dailyReturnReason": "<string>",
"recordedAt": "<string>",
"totalValue": "<string>"
},
"pnl_metrics": {
"total_pnl": "<string>",
"total_pnl_pct": "<string>",
"total_realized_pnl": "<string>",
"total_unrealized_pnl": "<string>"
},
"portfolio": {
"benchmarkIndexId": "<string>",
"broker_type": "<string>",
"created_at": "<string>",
"description": "<string>",
"execution_mode": "<string>",
"holdings": [
{
"cost_basis": "<string>",
"currency": "<string>",
"current_price_usd": "<string>",
"current_value_usd": "<string>",
"fx_rate_to_usd": "<string>",
"holding_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_updated_at": "<string>",
"quantity": "<string>",
"symbol": "<string>",
"unrealized_pnl": "<string>",
"unrealized_pnl_pct": "<string>",
"updated_at": "<string>",
"companyName": "<string>"
}
],
"is_active": true,
"linkedAt": "<string>",
"linkedStrategyId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"linkType": "<string>",
"name": "<string>",
"peerPortfolioId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"portfolio_type": "<string>",
"updated_at": "<string>",
"user_email": "<string>"
},
"portfolio_value": {
"amount_usd": "<string>",
"as_of_date": "<string>",
"basis": "portfolio_value",
"declared_amount": "<string>",
"declared_currency": "<string>",
"source": "provider_derived"
},
"price_updated_at": "<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
},
"valuation_unavailable_reason": "<string>",
"valuationError": {
"code": "PORTFOLIO_VALUE_NOT_POSITIVE",
"message": "<string>"
},
"first_broker_snapshot_pending": true,
"live_broker_state": {
"availableCash": "<string>",
"currency": "<string>",
"snapshotAt": "<string>",
"totalEquity": "<string>",
"availableCashUsd": "<string>",
"reservedCash": "<string>",
"reservedCashUsd": "<string>",
"totalCash": "<string>",
"totalCashUsd": "<string>",
"totalEquityUsd": "<string>"
},
"scorecard_input_dates": {
"holdings_fund_books_peers_and_benchmark_read_by": "<string>",
"meaning": "<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>"
}{
"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>"
}{
"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>"
}{
"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>"
}Query Parameters
Response
Portfolio detail with holdings and metrics