Audience: application and coding agent.
Canonical metadata
requestIdtraceparent
Example request
curl -X GET \
-H "x-api-key: $SECAPI_API_KEY" \
-H "secapi-version: 2026-03-19" \
"https://api.secapi.ai/v1/factors/pairs?factor1=VALUE&factor2=MOMENTUM&response_mode=compact&include=trust"
Example response
{
"object": "list",
"data": [
{
"object": "factor_pair_spread",
"id": "factor_pair_spread:MOMENTUM:VALUE:21d:2026-06-09",
"factor1": "MOMENTUM",
"factor2": "VALUE",
"factor1Name": "Momentum",
"factor2Name": "Value",
"category1": "style",
"category2": "style",
"window": "21d",
"lookback": "6m",
"spreadReturn": 0.043,
"factor1Return": 0.064,
"factor2Return": 0.021,
"averageSpread": 0.006,
"averageSpreadReturn": 0.006,
"spreadVolatility": 0.017,
"rollingSpreadVolatility": 0.017,
"zScore": 2.18,
"spreadZScore": 2.18,
"absZScore": 2.18,
"direction": "factor1",
"meanReversionSignal": "factor1_overextended",
"meanReversionSummary": "Momentum has outperformed value unusually over the latest 21 trading days.",
"windowStartDate": "2026-05-11",
"windowEndDate": "2026-06-09",
"rollingObservationCount": 106,
"observationCount": 126,
"seriesCount": 106,
"seriesSample": [
{
"date": "2026-05-11",
"spread": 0.004,
"f1Return": 0.006,
"f2Return": 0.002
},
{
"date": "2026-06-09",
"spread": 0.043,
"f1Return": 0.064,
"f2Return": 0.021
}
],
"expansionHints": [
"Use response_mode=standard for full pair-history series."
],
"asOf": "2026-06-09T22:15:00.000Z",
"responseMode": "compact",
"dataAsOf": "2026-06-09",
"freshnessStatus": "fresh",
"methodologyVersion": "secapi_factor_returns_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
}
],
"hasMore": false,
"nextCursor": null,
"responseMode": "compact",
"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

