Get a campaign
curl --request GET \ --url https://api.sipstack.com/api/v2/flare/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'x-api-key: <x-api-key>'import requests
url = "https://api.sipstack.com/api/v2/flare/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = 'https://api.sipstack.com/api/v2/flare/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}import axios from 'axios';
const options = { method: 'GET', url: 'https://api.sipstack.com/api/v2/flare/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0', headers: {'x-api-key': '<x-api-key>'}};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}Returns one campaign by UUID, transformed to camelCase with a rolled-up stats block. Requires sms:read. tags and stats.estimatedRecipients also need contacts:read; without it they are null. 404 when absent or cross-org.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Responses
Section titled “ Responses ”The campaign.
object
A single campaign, transformed to camelCase with a rolled-up stats block.
object
The message template.
Public UUID of the sending number.
Recipient audience — contacts carrying any of these tags. null when the key lacks the contacts:read scope.
object
Pre-send audience estimate. null when the key lacks the contacts:read scope.
Delivery rate over every attempt (#6435). attempted = delivered + failed +
undelivered + sent-awaiting-receipt; queued and cancelled messages are
excluded. Rates are percentages (two decimals), null when nothing was
attempted. awaiting = sent within the last 72 hours with no delivery
receipt yet (the rate is provisional while this is above 0);
noReceipt = sent more than 72 hours ago and the carrier never confirmed
delivery — both stay in the denominator. Supersedes computing a rate from
messages_delivered / messages_sent, which ignored failures.
object
Failed + undelivered
Local start of the do-not-disturb window (HH:MM); 21:00 when unset.
Local end of the do-not-disturb window (HH:MM); 09:00 when unset.
Whether the opt-out footer is appended to each message.
Whether the organization’s signature is appended.
Drip steps (empty unless type is drip).
object
Id of the winning A/B variant, once decided.
A/B variants (empty unless A/B testing is enabled).
object
Per-campaign daily send cap (send-pacing feature); null = no cap.
Messages sent in the current pacing cycle.
When the current pacing cycle resets.
Why the campaign is paused, when applicable (e.g. pacing cap reached).
Whether link-click tracking is enabled.
Whether smart-send time optimization is enabled.
Examples
A single campaign with rolled-up stats
{ "success": true, "data": { "id": "4d9a1b2c-3e5f-4a6b-8c7d-9e0f1a2b3c4d", "uuid": "4d9a1b2c-3e5f-4a6b-8c7d-9e0f1a2b3c4d", "name": "October promo", "description": "Fall discount blast to VIP contacts", "type": "immediate", "status": "completed", "message": "Hi {firstName}, 20% off this week!", "fromPhoneNumberId": "7c2e9f1a-4b6d-4e8f-9a0b-1c2d3e4f5a6b", "fromPhoneNumber": "+16135550200", "tags": [ "vip" ], "scheduledAt": null, "startedAt": "2026-01-15T13:00:00.000Z", "completedAt": "2026-01-15T13:04:12.000Z", "stats": { "totalRecipients": 500, "estimatedRecipients": 500, "sent": 500, "delivered": 491, "failed": 9, "bounced": 0, "replies": 21, "optOuts": 2 }, "respectQuietHours": true, "quietHoursStart": "21:00", "quietHoursEnd": "09:00", "includeOptOut": true, "includeSignature": true, "steps": [], "abTestEnabled": false, "winningVariantId": null, "variants": [], "dailySendLimit": null, "pacingSentInCycle": 0, "pacingCycleResetsAt": null, "pausedReason": null, "trackLinks": false, "smartSendEnabled": false, "createdAt": "2026-01-14T18:22:00.000Z", "updatedAt": "2026-01-15T13:04:12.000Z" }}Missing or invalid API key.
Inline error shape used by the messaging API and management endpoints.
object
Example
{ "success": false, "error": "Recipient phone number (to) is required"}Campaign not found in your organization.
Inline error shape used by the messaging API and management endpoints.
object
Example
{ "success": false, "error": "Recipient phone number (to) is required"}