Skip to main content
Return available factor returns data in bulk with daily series for commercial plan bulk-download workflows
Audience: application and coding agent.

Canonical metadata

  • requestId
  • traceparent

Example request

curl -X GET \
  -H "x-api-key: $SECAPI_API_KEY" \
  -H "secapi-version: 2026-03-19" \
  "https://api.secapi.ai/v1/factors/bulk-download"

Example response

{
  "object": "list",
  "data": [
    {
      "object": "factor_bulk_return",
      "id": "factor_bulk_return:VALUE:12m:2026-06-09",
      "factorKey": "VALUE",
      "factorName": "Value",
      "category": "style",
      "asOf": "2026-06-09T22:15:00.000Z",
      "window": "1m",
      "lookback": "12m",
      "rawReturn": 0.018,
      "pureReturn": 0.014,
      "scaledReturn": 0.021,
      "zScore": 1.42,
      "leverage": 1,
      "seriesCount": 252,
      "seriesSample": [
        {
          "date": "2025-06-10",
          "rawReturn": 0.0012,
          "pureReturn": 0.0009,
          "scaledReturn": 0.0011,
          "zScore": 0.18
        },
        {
          "date": "2026-06-09",
          "rawReturn": 0.0038,
          "pureReturn": 0.0031,
          "scaledReturn": 0.0042,
          "zScore": 1.42
        }
      ],
      "expansionHints": [
        "Use response_mode=standard for full daily series."
      ],
      "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"
}

CSV export request

curl -X GET \
  -H "x-api-key: $SECAPI_API_KEY" \
  -H "secapi-version: 2026-03-19" \
  "https://api.secapi.ai/v1/factors/bulk-download?category=style&lookback=12m&format=csv"

CSV response

factor_key,factor_name,category,window,lookback,as_of,date,raw_return,pure_return,scaled_return,point_z_score,window_raw_return,window_pure_return,window_scaled_return,window_z_score,leverage,materialization_version,methodology_id,methodology_version,data_as_of
VALUE,Value,style,1m,12m,2026-06-09T22:15:00.000Z,2026-06-09,0.0038,0.0031,0.0042,1.42,0.018,0.014,0.021,1.42,1,2026-06-09,secapi_factor_returns,v1,2026-06-09T22:15:00.000Z

Give this prompt to your agent

Failure posture

  • treat non-2xx responses as contract-aware failures, not free-form errors
  • preserve requestId and traceparent in logs and downstream reports
  • if provenance or freshness metadata is present, return it unchanged so trust is not lost in the handoff