Skip to content

List a campaign's messages

GET
/api/v2/flare/campaigns/{id}/messages
curl --request GET \
--url 'https://api.sipstack.com/api/v2/flare/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages?page=1&limit=50&filter=replies' \
--header 'x-api-key: <x-api-key>'

Returns the per-recipient messages for a campaign with their send status. By default only outbound messages are returned; use filter to include replies (replies), opt-out replies (optouts), or everything (all). Requires sms:read.

Contact details need contacts:read as well. Without it, every message row is still returned, but contactName is null and contactPhone is the external party’s number on that message rather than the saved contact record.

id
required
string format: uuid
page
integer
default: 1 >= 1
limit
integer
default: 50
status
string

Filter by message status (e.g. delivered, failed).

filter
string
Allowed values: replies optouts all

Paginated message list.

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

One message belonging to a campaign (per-recipient send status).

object
id
string format: uuid
campaignId
string format: uuid
to
string
from
string
body
string
direction
string
Allowed values: inbound outbound
status
string
finalStatus

Convenience mirror of status (queued when the row has no status yet).

string
segments

Billable SMS segment count for this message (defaults to 1).

integer
contactId
string format: uuid
nullable
contactName

Contact’s full name, or Unknown when no name is on file. null when the key lacks the contacts:read scope.

string
nullable
contactPhone

Contact’s phone number (falls back to the recipient number). Without contacts:read, the external party’s number on this message.

string
errorCode
string
nullable
errorMessage

Human-readable failure reason (same value as errorDescription).

string
nullable
errorDescription

Alias of errorMessage.

string
nullable
createdAt
string format: date-time
deliveredAt
string format: date-time
nullable
lastEventAt

Timestamp of the last status change (falls back to createdAt).

string format: date-time
pagination
object
page
integer
limit
integer
total
integer
pages
integer
Example
{
"data": [
{
"direction": "inbound",
"status": "delivered",
"finalStatus": "delivered"
}
]
}

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"
}