> ## Documentation Index
> Fetch the complete documentation index at: https://docs.secapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/factors/bulk-download

> Return available factor returns data in bulk with daily series for commercial plan bulk-download workflows

Return available factor returns data in bulk with daily series for commercial plan bulk-download workflows

<Info>
  Audience: application and coding agent.
</Info>

## Canonical metadata

* `requestId`
* `traceparent`

## Example request

<RequestExample>
  ```bash theme={null}
  curl -X GET \
    -H "x-api-key: $SECAPI_API_KEY" \
    -H "secapi-version: 2026-03-19" \
    "https://api.secapi.ai/v1/factors/bulk-download"
  ```
</RequestExample>

## Example response

<ResponseExample>
  ```json theme={null}
  {
    "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"
  }
  ```
</ResponseExample>

## CSV export request

<RequestExample>
  ```bash theme={null}
  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"
  ```
</RequestExample>

## CSV response

<ResponseExample>
  ```csv theme={null}
  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
  ```
</ResponseExample>

## Give this prompt to your agent

<Prompt>
  Use SEC API GET /v1/factors/bulk-download to return available factor returns data in bulk with daily series for commercial plan bulk-download workflows. Preserve `requestId`, `traceparent` in the output. Return a concise markdown summary plus the exact structured payload fields that a downstream engineer or agent should keep using this result.
</Prompt>

## 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
