Edit a campaign
const url = 'https://api.vocapable.com/v1/campaigns/example';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","agent_definition_id":"example","agent_version_id":"example","target":{"contact_list_id":"example"},"number_pool_id":"example","telephony_account_id":"example","compliance_profile_id":"example","scrub_run_id":"example","schedule":{"calling_windows":{"additionalProperty":[{"start":"example","end":"example"}]},"start_date":"2026-04-15","end_date":"2026-04-15","paused_dates":["2026-04-15"]},"max_attempts_per_contact":1,"retry_policy":{"backoff_minutes":[1],"retry_dispositions":["completed_goal"]},"voicemail_drop":{"enabled":false},"concurrency_cap":1,"goal":{}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://api.vocapable.com/v1/campaigns/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "agent_definition_id": "example", "agent_version_id": "example", "target": { "contact_list_id": "example" }, "number_pool_id": "example", "telephony_account_id": "example", "compliance_profile_id": "example", "scrub_run_id": "example", "schedule": { "calling_windows": { "additionalProperty": [ { "start": "example", "end": "example" } ] }, "start_date": "2026-04-15", "end_date": "2026-04-15", "paused_dates": [ "2026-04-15" ] }, "max_attempts_per_contact": 1, "retry_policy": { "backoff_minutes": [ 1 ], "retry_dispositions": [ "completed_goal" ] }, "voicemail_drop": { "enabled": false }, "concurrency_cap": 1, "goal": {} }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”PATCH: only the fields present are written.
object
V1 campaigns target a contact list; a segment_id target joins at P2.
object
Per-weekday calling windows plus the campaign’s calendar bounds.
Dates, not instants: they bound the campaign in the callee’s local day, and the policy layer intersects the windows with jurisdictional quiet hours - the stricter wins.
object
object
One local-time window on one weekday.
object
Disposition-driven backoff: the spacing ladder and the retriable dispositions.
object
Whether this program leaves artificial-voice voicemail (ADR-0023).
One field, and it is an election rather than a configuration: what is said belongs to the pinned agent version, and how many times is not a knob at all. A drop is terminal
- the attempt disposes
voicemail_machineand never re-enters the retry ladder - so a contact receives at most one message per campaign by construction, not by a counter a caller could raise.
Launching with this enabled additionally requires the executed Cold Outreach & Data Provenance Waiver, and the waiver is re-checked again at the instant of every drop: a campaign runs for days and a waiver version bump re-arms the gate by design.
object
Responses
Section titled “Responses”Successful Response
One campaign in full, schedule included.
object
V1 campaigns target a contact list; a segment_id target joins at P2.
object
Disposition-driven backoff: the spacing ladder and the retriable dispositions.
object
Whether this program leaves artificial-voice voicemail (ADR-0023).
One field, and it is an election rather than a configuration: what is said belongs to the pinned agent version, and how many times is not a knob at all. A drop is terminal
- the attempt disposes
voicemail_machineand never re-enters the retry ladder - so a contact receives at most one message per campaign by construction, not by a counter a caller could raise.
Launching with this enabled additionally requires the executed Cold Outreach & Data Provenance Waiver, and the waiver is re-checked again at the instant of every drop: a campaign runs for days and a waiver version bump re-arms the gate by design.
object
object
Per-weekday calling windows plus the campaign’s calendar bounds.
Dates, not instants: they bound the campaign in the callee’s local day, and the policy layer intersects the windows with jurisdictional quiet hours - the stricter wins.
object
object
One local-time window on one weekday.
object
Example
{ "status": "draft", "retry_policy": { "retry_dispositions": [ "completed_goal" ] }, "voicemail_drop": { "enabled": false }}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}