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

# Regenerate campaign

> Create a follow-up campaign targeting contacts by their final call disposition

Creates a new draft campaign and an isolated contact list containing only contacts whose final call disposition in the source campaign matched one of the specified criteria (e.g. `NO_ANSWER`, `BUSY`, or `FAILED`).

<Note>
  The source campaign must be in `COMPLETED` or `FAILED` status before it can be regenerated.
</Note>

### Path parameters

<ParamField path="id" type="string" required>
  The unique UUID of the source campaign to regenerate from.
</ParamField>

### Body parameters

<ParamField body="dispositions" type="string[]" required>
  Array of final call dispositions to include. Supported values:

  * `NO_ANSWER`
  * `BUSY`
  * `FAILED`
  * `ANSWERED`
  * `VOICEMAIL`
</ParamField>

<ParamField body="name" type="string">
  Custom name for the new regenerated campaign. Defaults to `"{source.name} — Regenerated"`.
</ParamField>

<ParamField body="maxAttempts" type="integer">
  Override maximum retry attempts (1 to 10) for the new campaign.
</ParamField>

<ParamField body="redialDelayMin" type="integer">
  Override redial delay in minutes for the new campaign.
</ParamField>

<ParamField body="dialTimeout" type="integer">
  Override dial timeout in seconds (10 to 300) for the new campaign.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.agentic-os.com/api/v1/campaigns/770e8400-e29b-41d4-a716-446655440000/regenerate \
    -H "Authorization: Bearer $AGENTIC_OS_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "dispositions": ["NO_ANSWER", "BUSY"],
      "name": "Q3 Renewal Outreach — Unreached Retry",
      "maxAttempts": 2,
      "dialTimeout": 60
    }'
  ```

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

  response = requests.post(
      "https://api.agentic-os.com/api/v1/campaigns/770e8400-e29b-41d4-a716-446655440000/regenerate",
      headers={
          "Authorization": f"Bearer {API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "dispositions": ["NO_ANSWER", "BUSY"],
          "name": "Q3 Renewal Outreach — Unreached Retry",
          "maxAttempts": 2,
          "dialTimeout": 60,
      },
  )
  print(response.json())
  ```

  ```javascript Node theme={null}
  const response = await fetch(
    "https://api.agentic-os.com/api/v1/campaigns/770e8400-e29b-41d4-a716-446655440000/regenerate",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        dispositions: ["NO_ANSWER", "BUSY"],
        name: "Q3 Renewal Outreach — Unreached Retry",
        maxAttempts: 2,
        dialTimeout: 60,
      }),
    },
  );
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "id": "880e8400-e29b-41d4-a716-446655440000",
  "tenantId": "990e8400-e29b-41d4-a716-446655440000",
  "name": "Q3 Renewal Outreach — Unreached Retry",
  "description": "Customer renewal follow-ups",
  "agentId": "11111111-1111-1111-1111-111111111111",
  "voiceNumberId": "22222222-2222-2222-2222-222222222222",
  "contactListId": "44444444-4444-4444-4444-444444444444",
  "status": "DRAFT",
  "totalContacts": 38,
  "dialedContacts": 0,
  "answeredContacts": 0,
  "dialTimeout": 60,
  "maxAttempts": 2,
  "redialDelayMin": 60,
  "metadata": {
    "sourceRegenerationId": "770e8400-e29b-41d4-a716-446655440000",
    "regeneratedFromDispositions": ["NO_ANSWER", "BUSY"]
  },
  "createdAt": "2026-06-02T09:00:00.000Z",
  "updatedAt": "2026-06-02T09:00:00.000Z"
}
```
