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

# Regenerate Spread

> Re-consolidate a spread from its already-extracted data

Re-consolidate a finished run from its already-extracted data. The documents are not re-processed; only the consolidation and report run again. The run goes back to `IN_PROGRESS` and re-emits `spread.started`; on completion it emits `spread.completed` with new artifact ids.

## Authentication

Requires the `x-api-key` header with a valid workspace API key.

## Path Parameters

<ParamField path="spreadId" type="string" required>
  The run to regenerate.
</ParamField>

## Request Body

None. Send an empty body.

## Response

Returns `202 Accepted` with the run's refreshed state, in the same shape as
[Get Spread](/api-reference/spreads/get-spread). `artifacts` still lists the
previous report and spreadsheet; when the regenerated run completes, new
artifacts replace them.

## Errors

<ResponseField name="404" type="error">
  The `spreadId` isn't a run in your workspace.
</ResponseField>

<ResponseField name="409" type="error">
  The run is still in flight. Wait for it to reach `COMPLETE` or `FAILED` before
  regenerating.
</ResponseField>

<RequestExample>
  ```javascript Node.js theme={null}
  const options = {
    method: "POST",
    headers: {
      "x-api-key": "<your-api-key>",
      "Content-Type": "application/json",
    },
  };

  fetch(
    "https://api-v2.getomni.ai/api/v1/spreads/9f1e2d3c-4b5a-6789-0abc-def012345678/regenerate",
    options,
  )
    .then((response) => response.json())
    .then((response) => console.log(response))
    .catch((err) => console.error(err));
  ```

  ```python Python theme={null}
  import requests

  url = "https://api-v2.getomni.ai/api/v1/spreads/9f1e2d3c-4b5a-6789-0abc-def012345678/regenerate"
  headers = {
      "x-api-key": "<your-api-key>",
      "Content-Type": "application/json",
  }

  response = requests.request("POST", url, headers=headers)
  print(response.json())
  ```

  ```bash cURL theme={null}
  curl --request POST \
    --url https://api-v2.getomni.ai/api/v1/spreads/9f1e2d3c-4b5a-6789-0abc-def012345678/regenerate \
    --header 'x-api-key: <your-api-key>'
  ```
</RequestExample>

<ResponseExample>
  ```json 202 theme={null}
  {
    "success": true,
    "spread": {
      "id": "9f1e2d3c-4b5a-6789-0abc-def012345678",
      "status": "IN_PROGRESS",
      "error": null,
      "leadId": "b1f0a790-201b-47e9-84ed-cc7eed1270c5",
      "documents": [
        { "id": "doc-a", "filename": "2023-tax-return.pdf", "status": "EXTRACTED", "error": null },
        { "id": "doc-b", "filename": "2023-financials.pdf", "status": "EXTRACTED", "error": null }
      ],
      "artifacts": [
        { "id": "art-report", "type": "REPORT", "title": "Financial Spread - Pacific Coast Container Haulers" },
        { "id": "art-sheet", "type": "SPREADSHEET", "title": "Financial Spread - Pacific Coast Container Haulers (Excel)" }
      ],
      "createdAt": "2026-07-23T18:04:00.000Z",
      "updatedAt": "2026-07-23T18:12:05.000Z"
    }
  }
  ```
</ResponseExample>
