Audience: application and coding agent.
Canonical metadata
requestIdtraceparent
Example request
curl -X POST \
-H "x-api-key: $SECAPI_API_KEY" \
-H "secapi-version: 2026-03-19" \
-H "content-type: application/json" \
-d '{"country":"US","lookback":"12m","window":"3m","frequency":"weekly","exportFormat":"json","category":"style","keys":["VALUE","MOMENTUM","QUALITY"],"holdings":[{"symbol":"AAPL","weight":0.35},{"symbol":"MSFT","weight":0.3},{"symbol":"NVDA","weight":0.2},{"symbol":"JPM","weight":0.15}]}' \
"https://api.secapi.ai/v1/portfolio/attribution?response_mode=compact&include=trust"
Example response
{
"object": "portfolio_attribution",
"id": "portfolio_attribution:growth-quality-core:2026-06-09",
"analysisId": "portfolio_analysis:growth-quality-core:2026-06-09",
"asOf": "2026-06-09T22:15:00.000Z",
"country": "US",
"window": "3m",
"lookback": "12m",
"frequency": "weekly",
"holdings": [
{
"symbol": "AAPL",
"weight": 0.35
},
{
"symbol": "MSFT",
"weight": 0.3
},
{
"symbol": "NVDA",
"weight": 0.2
},
{
"symbol": "JPM",
"weight": 0.15
}
],
"portfolioReturn": 0.082,
"totalExplained": 0.061,
"alpha": 0.021,
"rSquared": 0.74,
"contributions": [
{
"object": "portfolio_factor_attribution",
"rank": 1,
"factorKey": "MOMENTUM",
"factorName": "Momentum",
"factorCategory": "style",
"contributionPercent": 2.4,
"contributionPct": 0.024,
"beta": 0.37,
"factorReturn": 0.065,
"rawReturn": 0.058,
"pureReturn": 0.052,
"scaledReturn": 0.065,
"zScore": 1.7,
"leverage": 1,
"modelName": "secapi_stock_basket_factor_model_v1",
"explanation": "Positive momentum exposure explained 240 bps of the portfolio return."
}
],
"returnStream": [],
"returnPointCount": 12,
"returnStreamSample": [
{
"object": "portfolio_return_point",
"period": "2026-W22",
"periodEnd": "2026-05-29",
"frequency": "weekly",
"periodReturn": 0.011,
"cumulativeReturn": 0.064,
"coverageWeight": 1,
"missingSymbols": []
}
],
"rollingBetas": [],
"rollingBetaCount": 4,
"rollingBetasUnavailableReason": null,
"exposures": [
{
"object": "factor_exposure",
"id": "factor_exposure:AAPL:VALUE:2026-06-09",
"subjectType": "security",
"subjectKey": "AAPL",
"factorKey": "VALUE",
"beta": -0.42,
"percentile": 18.2,
"confidence": "high",
"modelName": "secapi_stock_basket_factor_model_v1",
"asOf": "2026-06-09T22:15:00.000Z",
"responseMode": "compact",
"expansionHints": [
"Use include=diagnostics or response_mode=standard for regression diagnostics such as rSquared, tStat, and observationCount."
]
}
],
"export": {
"object": "portfolio_attribution_export",
"requestedFormat": "json",
"formats": [
"json"
],
"fileName": "secapi-portfolio-attribution-2026-06-09",
"columns": [
"factorKey",
"contributionPercent",
"beta",
"factorReturn"
],
"csv": null,
"files": []
},
"summaryMd": "Momentum and quality explained most of the recent return while value detracted.",
"disclosures": [
"Research scenario only. Not investment advice or a recommendation to trade."
],
"responseMode": "compact",
"dataAsOf": "2026-06-09",
"freshnessStatus": "fresh",
"methodologyVersion": "secapi_portfolio_attribution_v1",
"materializationVersion": "2026-06-09",
"provenance": {
"source": "secapi_factor_pipeline",
"sourceLabel": "SecAPI factor pipeline",
"accessionNumber": null,
"filingUrl": "https://docs.secapi.ai/factors/methodology",
"acceptedAt": null,
"retrievedAt": "2026-06-09T22:15:00.000Z",
"parserVersion": "secapi-factor-pipeline"
},
"freshness": {
"status": "fresh",
"asOf": "2026-06-09T22:15:00.000Z",
"sourcePublishedAt": "2026-06-09T21:30:00.000Z",
"lagMs": 2700000
},
"materialization": {
"parserVersion": "secapi-factor-pipeline",
"materializationVersion": "2026-06-09"
},
"sourceRights": {
"source": "secapi_owned_factor_pipeline",
"sourceLabel": "SecAPI factor pipeline",
"posture": "public_safe",
"publicAvailability": "public",
"contractStatus": "approved",
"restrictions": [],
"notes": "SecAPI-owned derived factor data."
},
"methodology": {
"id": "secapi_factor_returns",
"version": "v1",
"summary": "SecAPI-owned daily factor returns, exposures, and portfolio analytics built for agent and API workflows.",
"confidence": "high",
"launchState": "beta",
"inputs": [
"secapi_factor_returns",
"secapi_factor_exposures",
"market_calendar"
],
"validation": {
"launchHistoryFloor": "2015-01-01",
"marketCalendarAware": true
}
},
"revision": {
"sourcePublishedAt": "2026-06-09T21:30:00.000Z",
"retrievedAt": "2026-06-09T22:15:00.000Z",
"vintageId": "2026-06-09",
"revisedFrom": null
},
"degradedState": null,
"requestId": "req_2ZK8Q1W9F4M6P7R3",
"traceparent": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
}
Give this prompt to your agent
Failure posture
- treat non-2xx responses as contract-aware failures, not free-form errors
- preserve
requestIdandtraceparentin logs and downstream reports - if provenance or freshness metadata is present, return it unchanged so trust is not lost in the handoff

