Skip to content

List campaigns

GET
/api/v2/flare/campaigns
curl --request GET \
--url 'https://api.sipstack.com/api/v2/flare/campaigns?page=1&limit=10&status=draft' \
--header 'x-api-key: <x-api-key>'

Lists your organization’s A2P SMS campaigns, newest first, with optional search (name) and status filters. Requires sms:read. The audience fields (tags, tag_names, estimated_recipients) also need contacts:read; without it they are null.

page
integer
default: 1 >= 1
limit
integer
default: 10
search
string

Case-insensitive match on campaign name.

status
string
Allowed values: draft scheduled active paused completed cancelled

Paginated campaign list.

Media type application/json
object
success
boolean
data
Array<object>

A campaign row as returned by the list endpoint (the underlying record plus a joined message_count). Snake-case fields mirror the stored row; additional maintained columns (counters, pacing, tracking flags) may be present.

The audience fields tags, tag_names and estimated_recipients name your contact lists and count the contacts in them, so they need the contacts:read scope. Without it they are null; every other field is unchanged.

object
id
string format: uuid
uuid
string format: uuid
name
string
status
string
Allowed values: draft scheduled active paused completed cancelled
type
string
Allowed values: immediate scheduled drip
message_template
string
message_count
integer
delivery_stats

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); no_receipt = 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
attempted
integer
delivered
integer
failed
integer
undelivered
integer
failed_total

Failed + undelivered

integer
awaiting
integer
no_receipt
integer
delivery_rate
number
nullable
failure_rate
number
nullable
provisional
boolean
created_at
string format: date-time
key
additional properties
any
pagination
object
page
integer
limit
integer
total
integer
pages
integer
Examples
Example page

First page of campaigns

{
"success": true,
"data": [
{
"id": "4d9a1b2c-3e5f-4a6b-8c7d-9e0f1a2b3c4d",
"uuid": "4d9a1b2c-3e5f-4a6b-8c7d-9e0f1a2b3c4d",
"name": "October promo",
"status": "completed",
"type": "immediate",
"message_template": "Hi {firstName}, 20% off this week!",
"message_count": 500,
"created_at": "2026-01-14T18:22:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 12,
"pages": 2
}
}

Missing or invalid API key.

Media type application/json

Inline error shape used by the messaging API and management endpoints.

object
success
boolean
error
string
Example
{
"success": false,
"error": "Recipient phone number (to) is required"
}

The key is missing the sms:read scope, or the Flare API tier is not on your plan.

Media type application/json

Inline error shape used by the messaging API and management endpoints.

object
success
boolean
error
string
Example
{
"success": false,
"error": "Recipient phone number (to) is required"
}

Organization not provisioned for Flare.

Media type application/json

Inline error shape used by the messaging API and management endpoints.

object
success
boolean
error
string
Example
{
"success": false,
"error": "Recipient phone number (to) is required"
}