Skip to main content
PATCH
/
v1
/
campaigns
/
{campaignId}
Update Campaign
curl --request PATCH \
  --url https://api.sigmamind.ai/v1/campaigns/{campaignId} \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "campaignName": "Q4 Outreach Campaign",
  "sipPhoneNumber": "+14155552671",
  "agentId": "D5D0p7TUs66TTAEAx",
  "isScheduled": true,
  "scheduledDate": "2025-09-25T00:00:00.000Z",
  "scheduledTime": "12:00:00",
  "scheduledTimezone": "America/Los_Angeles",
  "concurrentCalls": 5,
  "dynamicVariables": {
    "customer_name": "Michael"
  }
}
'
{
  "campaignId": "camp_XiQEBcj9cc5TFRB4",
  "campaignName": "Q4 Outreach Campaign",
  "campaignStatus": "live",
  "scheduledDate": "2025-09-25T19:00:00.000Z",
  "concurrentCalls": 5,
  "agent": {
    "name": "New AI Agent",
    "agentId": "agent_D5D0p7TUs66TTAEAx",
    "status": "Live"
  },
  "phoneNumber": {
    "sipPhoneNumber": "+14155552671",
    "provider": "twilio",
    "inboundAgentId": "agent_D5D0p7TUs66TTAEAx",
    "outboundAgentId": "agent_D5D0p7TUs66TTAEAx",
    "outboundPhoneNumber": "+14155552671",
    "active": true,
    "terminationSipURI": "sip.telnyx.com",
    "friendlyName": "Support Line - US"
  },
  "errors": [
    "Row 3: missing required variable 'customer_name'",
    "Row 7: invalid phone number '+1234'"
  ],
  "scheduled": true
}

Documentation Index

Fetch the complete documentation index at: https://docs.sigmamind.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-API-Key
string
header
required

Authenticate every request by passing your API key in the X-API-Key header. To get your key, go to Dashboard → API Keys and create or copy your Production API key.

Path Parameters

campaignId
string
required

Unique identifier of the campaign to update.

Body

application/json

Request body to update a campaign. A campaign dials a list of phone numbers using a selected agent and caller number. The contact list and any per-contact dynamic variables are uploaded as a CSV file. Campaigns can start immediately or be scheduled for a future date and time.

campaignName
string

Display name for this campaign. Used to identify the campaign in listings, dashboards, and reports. Must be unique within your account.

Required string length: 1 - 128
Example:

"Q4 Outreach Campaign"

sipPhoneNumber
string

Caller ID phone number used for all outbound calls in this campaign, in +E.164 format. Must be a number provisioned in SigmaMind or configured via SIP trunking that is enabled for outbound calls. This number appears on the recipient's device as the incoming caller.

Pattern: ^\+[1-9][0-9]{6,14}$
Example:

"+14155552671"

agentId
string

Unique identifier of the agent that will handle every call in this campaign. The agent controls the conversation flow, scripts, and tools used during each call. All contacts in the uploaded CSV will be called using this agent.

Required string length: 1 - 64
Example:

"D5D0p7TUs66TTAEAx"

isScheduled
boolean

Whether this campaign should be held and launched at a future date and time instead of starting immediately. When true, scheduledDate, scheduledTime, and scheduledTimezone are all required. When false or omitted, the campaign starts as soon as it is created.

Example:

true

scheduledDate
string<date>

Date on which the campaign should launch, in YYYY-MM-DD format. Required when isScheduled is true. Ignored when isScheduled is false or omitted. Must be a future date.

Example:

"2025-09-25T00:00:00.000Z"

scheduledTime
string<time>

Time at which the campaign should launch on the scheduled date, in HH:mm:ss format. Required when isScheduled is true. Ignored when isScheduled is false or omitted. Interpreted in the timezone specified by scheduledTimezone.

Example:

"12:00:00"

scheduledTimezone
string

IANA timezone name used to interpret scheduledDate and scheduledTime. Required when isScheduled is true. Ignored when isScheduled is false or omitted. Use a valid IANA timezone identifier (e.g., 'America/Los_Angeles', 'Europe/London', 'Asia/Kolkata').

Example:

"America/Los_Angeles"

concurrentCalls
integer<int32>

Maximum number of calls the campaign is allowed to have active simultaneously. Controls the dialling throughput — a higher value dials more contacts in parallel. If omitted, the account default is used. Must be a positive integer.

Example:

5

dynamicVariables
object

Default dynamic variable values applied to every call in the campaign when the CSV does not supply a value for a given variable. Keys must match variable names defined in the agent's configuration. Per-contact values in the CSV take precedence over these defaults. Leave empty if the CSV provides all required variables.

Example:
{ "customer_name": "Michael" }

Response

OK

Full details of a campaign record. Includes the campaign's identity, current status, schedule configuration, the agent handling calls, and the caller phone number used to dial contacts.

campaignId
string

Unique identifier for this campaign. Use this value as campaignId when updating, deleting, or triggering this campaign via the API.

Example:

"camp_XiQEBcj9cc5TFRB4"

campaignName
string

Display name of this campaign as set at creation time. Used to identify the campaign in listings and dashboards.

Example:

"Q4 Outreach Campaign"

campaignStatus
enum<string>

Current lifecycle state of the campaign. 'live' means the campaign is actively dialling contacts. 'scheduled' means the campaign is configured to launch at a future date and time. 'paused' means dialling has been suspended and can be resumed. 'completed' means all contacts have been dialled and the campaign has finished.

Available options:
live,
scheduled,
paused,
completed
Example:

"live"

scheduledDate
string<date-time>

The date and time when this campaign is scheduled to launch, including timezone. Present only when isScheduled is true. Null for campaigns that started immediately at creation.

Example:

"2025-09-25T19:00:00.000Z"

concurrentCalls
integer<int32>

Maximum number of calls allowed to be active simultaneously in this campaign. Determines dialling throughput — higher values dial more contacts in parallel. Reflects the value set at creation or last updated via the update endpoint.

Example:

5

agent
object

Agent assigned to handle all calls in this campaign. Contains the agent's ID, name, and current status. All contacts in the campaign's contact list will be called using this agent.

phoneNumber
object

Caller phone number used to dial contacts in this campaign. This number appears as the caller ID on recipients' devices.

errors
string[]

List of validation errors encountered when processing the campaign's contact CSV file. Present only when the upload contained rows with invalid phone numbers or missing required variables. Null or empty when the file was processed without errors.

List of validation errors encountered when processing the campaign's contact CSV file. Present only when the upload contained rows with invalid phone numbers or missing required variables. Null or empty when the file was processed without errors.

Example:
[
"Row 3: missing required variable 'customer_name'",
"Row 7: invalid phone number '+1234'"
]
scheduled
boolean