---
title: "Update campaign settings"
method: POST
path: "/api/v1/tools/update_campaign_settings"
tags: ["default"]
---

# Update campaign settings

`POST /api/v1/tools/update_campaign_settings`

## Request

- Base URL: `https://www.affiliatespy.io`
- URL: `https://www.affiliatespy.io/api/v1/tools/update_campaign_settings`
- Auth: HTTP bearer

Change a DRAFT campaign's setup, as Finish setup saves it: name, offer, daily limit, sending days and hours, timezone and follow-up gaps. Fields you omit keep their value. Live campaigns refuse (not_a_draft): rename them with rename_campaign and edit copy with update_campaign_sequence. Nothing is sent.

## Request body

- object
  - `campaign_id` string, uuid, required: A campaign id from list_campaigns.
  - `name` string
  - `offer` string: The commission the emails promise, e.g. "30% recurring".
  - `daily_limit` integer: Most emails this campaign sends a day. The mailbox's own daily cap still applies.
  - `days` string[]: Sending days. Default Mon to Fri.
  - `hour_from` integer: Window start hour, 24h, in timezone. Default 9.
  - `hour_to` integer: Window end hour, exclusive. Default 17.
  - `timezone` string: IANA timezone, e.g. "Europe/London". Default America/New_York.
  - `followup_gaps_days` integer[]: Day offset of each follow-up from step 1, e.g. [4,14,28,42].
  - `confirm` boolean: Set true after the user confirmed an action the guard flagged as hard to undo.

## Response `200`

The tool's JSON result (same payload the MCP tool returns).

- unknown

## Other responses

- `400`: Arguments failed validation; body lists the issues.
- `401`: Missing or invalid API key.
- `403`: Guarded tool with Unrestricted MCP off.
- `429`: Rate limited (60 requests per minute per key).

---

[API](https://skmtc.dev/affiliatespy/apis/affiliatespy-api.md) · [All operations](https://skmtc.dev/affiliatespy/apis/affiliatespy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/affiliatespy/apis/affiliatespy-api/revisions/0300d370b356?raw)
