curl -X POST "https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause" \
-H "Authorization: Bearer <token>"
import requests
url = "https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause"
headers = {
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.status_code)
print(response.json())
const response = await fetch("https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
}
});
const data = await response.json();
console.log(data);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause"))
.header("Authorization", "Bearer <token>")
.POST(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response =
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
{
"id": "e4a2e584-3672-4d69-b541-6e9f1a238491",
"organization_id": "93f35dc2-5d46-4e58-a9ee-038c35d9bcf1",
"name": "Q3 Lead Reactivation",
"whatsapp_phone_number_id": "8f3b0e2a-71d3-4a5f-9e6b-123456789abc",
"message_template_id": "3a4b5c6d-7e8f-9012-3456-789abcdef012",
"audience_type": "tags",
"audience_tags": [
"high_intent",
"q3_leads"
],
"audience_contact_ids": null,
"scheduled_at": "2026-09-15T14:00:00Z",
"status": "paused",
"total_contacts_count": 450,
"sent_count": 210,
"delivered_count": 204,
"read_count": 150,
"failed_count": 6,
"created_at": "2026-09-07T10:30:00Z",
"updated_at": "2026-09-07T14:20:00Z"
}
{
"detail": "Cannot pause campaign in 'completed' state."
}
{
"detail": "Unauthorized"
}
{
"detail": "Campaign not found."
}
Campaigns
Pause campaign
Halt an active sending or scheduled campaign dispatch
POST
/
api
/
v1
/
campaigns
/
{campaign_id}
/
pause
curl -X POST "https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause" \
-H "Authorization: Bearer <token>"
import requests
url = "https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause"
headers = {
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.status_code)
print(response.json())
const response = await fetch("https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
}
});
const data = await response.json();
console.log(data);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause"))
.header("Authorization", "Bearer <token>")
.POST(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response =
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
{
"id": "e4a2e584-3672-4d69-b541-6e9f1a238491",
"organization_id": "93f35dc2-5d46-4e58-a9ee-038c35d9bcf1",
"name": "Q3 Lead Reactivation",
"whatsapp_phone_number_id": "8f3b0e2a-71d3-4a5f-9e6b-123456789abc",
"message_template_id": "3a4b5c6d-7e8f-9012-3456-789abcdef012",
"audience_type": "tags",
"audience_tags": [
"high_intent",
"q3_leads"
],
"audience_contact_ids": null,
"scheduled_at": "2026-09-15T14:00:00Z",
"status": "paused",
"total_contacts_count": 450,
"sent_count": 210,
"delivered_count": 204,
"read_count": 150,
"failed_count": 6,
"created_at": "2026-09-07T10:30:00Z",
"updated_at": "2026-09-07T14:20:00Z"
}
{
"detail": "Cannot pause campaign in 'completed' state."
}
{
"detail": "Unauthorized"
}
{
"detail": "Campaign not found."
}
Temporarily halt an actively sending or scheduled campaign. If the campaign was scheduled for future dispatch, its TaskIQ schedule in Redis is immediately removed. The campaign state transitions to
paused and no further recipient messages are sent until explicitly resumed.
Authentication
This endpoint requires Bearer token authentication.Authorization: Bearer <token>
| Header | Type | Required | Description | Format |
|---|---|---|---|---|
Authorization | string | Yes | Scoped organization API key or Bearer JWT token | Bearer <token> |
Input parameters
string
required
Unique UUID identifier of the campaign to pause. Example:
e4a2e584-3672-4d69-b541-6e9f1a238491.string
required
Bearer token for authentication. Format:
Bearer <token>.Response Fields
Returns the updated CampaignResponse object with status changed topaused.
string
UUID of the paused campaign.
string
Updated operational status:
paused.number
Total contacts targeted.
number
Messages dispatched prior to pausing.
number
Messages delivered.
curl -X POST "https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause" \
-H "Authorization: Bearer <token>"
import requests
url = "https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause"
headers = {
"Authorization": "Bearer <token>"
}
response = requests.post(url, headers=headers)
print(response.status_code)
print(response.json())
const response = await fetch("https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause", {
method: "POST",
headers: {
"Authorization": "Bearer <token>"
}
});
const data = await response.json();
console.log(data);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sayvy.ai/api/v1/campaigns/e4a2e584-3672-4d69-b541-6e9f1a238491/pause"))
.header("Authorization", "Bearer <token>")
.POST(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response =
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
{
"id": "e4a2e584-3672-4d69-b541-6e9f1a238491",
"organization_id": "93f35dc2-5d46-4e58-a9ee-038c35d9bcf1",
"name": "Q3 Lead Reactivation",
"whatsapp_phone_number_id": "8f3b0e2a-71d3-4a5f-9e6b-123456789abc",
"message_template_id": "3a4b5c6d-7e8f-9012-3456-789abcdef012",
"audience_type": "tags",
"audience_tags": [
"high_intent",
"q3_leads"
],
"audience_contact_ids": null,
"scheduled_at": "2026-09-15T14:00:00Z",
"status": "paused",
"total_contacts_count": 450,
"sent_count": 210,
"delivered_count": 204,
"read_count": 150,
"failed_count": 6,
"created_at": "2026-09-07T10:30:00Z",
"updated_at": "2026-09-07T14:20:00Z"
}
{
"detail": "Cannot pause campaign in 'completed' state."
}
{
"detail": "Unauthorized"
}
{
"detail": "Campaign not found."
}
‹ PreviousNext ›
Resume campaign
POST /api/v1/campaigns/{campaign_id}/resume
Was this page helpful?