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","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}],"benchmarkLabel":"NASDAQ 100","benchmarkHoldings":[{"symbol":"QQQ","weight":1}]}' \
"https://api.secapi.ai/v1/intelligence/portfolio?response_mode=compact&include=trust"
Example response
{
"object": "portfolio_analysis",
"id": "portfolio_analysis:growth-quality-core:2026-06-09",
"asOf": "2026-06-09T22:15:00.000Z",
"holdings": [
{
"symbol": "AAPL",
"weight": 0.35
},
{
"symbol": "MSFT",
"weight": 0.3
},
{
"symbol": "NVDA",
"weight": 0.2
},
{
"symbol": "JPM",
"weight": 0.15
}
],
"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."
]
}
],
"fit": null,
"benchmarkLabel": "NASDAQ 100",
"benchmarkTilts": [],
"whatIfComparison": null,
"positionViews": [],
"positionExposures": [
{
"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."
]
}
],
"attribution": [
{
"key": "VALUE",
"label": "Value",
"category": "factor",
"contributionPercent": -0.48,
"explanation": "Negative value beta detracted as value lagged over the selected window."
}
],
"hedgeSuggestions": [
{
"symbol": "VLUE",
"instrumentType": "etf",
"rationale": "Offsets the portfolio's negative value exposure with a liquid value ETF sleeve.",
"expectedExposureDelta": {
"VALUE": 0.18
},
"confidence": "medium"
}
],
"optimizationNotes": [
"Candidate search respected max position and turnover constraints."
],
"factorNeutralPlan": [
"Reduce negative VALUE exposure before increasing MOMENTUM exposure."
],
"optimizerObjective": "factor_neutral",
"optimizerConstraints": {
"maxCandidates": 3,
"maxIterations": 50,
"maxRuntimeMs": 750,
"maxPositionWeight": 0.4,
"minPositionWeight": 0.02,
"longOnly": true,
"turnoverLimit": 0.25,
"riskFreeRate": 0.04
},
"optimizerRuntime": {
"object": "portfolio_optimizer_runtime",
"method": "bounded_deterministic_candidate_search",
"candidateCount": 3,
"iterationBudget": 50,
"iterationsRun": 38,
"runtimeMs": 118,
"maxRuntimeMs": 750,
"timeout": false
},
"optimizerCandidateCount": 1,
"optimizerCandidateSample": [
{
"object": "portfolio_optimizer_candidate",
"rank": 1,
"name": "Factor-neutral tilt",
"objective": "factor_neutral",
"expectedReturn": 0.087,
"expectedVolatility": 0.164,
"expectedSharpe": 0.53,
"maxDrawdownProxy": -0.18,
"factorExposureScore": 0.21,
"turnover": 0.12,
"score": 0.81,
"constraintStatus": "ok",
"constraintsApplied": [
"turnoverLimit"
],
"rationale": "Improves factor balance without breaching turnover or concentration limits."
}
],
"selectedCandidate": null,
"optimizerDisclosures": [
"Optimizer output is a deterministic scenario, not investment advice."
],
"disclosures": [
"Research scenario only. Not investment advice or a recommendation to trade."
],
"summaryMd": "Portfolio is growth and quality tilted with a moderate negative value exposure.",
"responseMode": "compact",
"dataAsOf": "2026-06-09",
"freshnessStatus": "fresh",
"methodologyVersion": "secapi_portfolio_factor_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

