List a campaign's 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>'import requests
url = "https://api.sipstack.com/api/v2/flare/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages"
querystring = {"page":"1","limit":"50","filter":"replies"}
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers, params=querystring)
print(response.json())const url = 'https://api.sipstack.com/api/v2/flare/campaigns/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages?page=1&limit=50&filter=replies';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/messages', params: {page: '1', limit: '50', filter: 'replies'}, headers: {'x-api-key': '<x-api-key>'}};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Query Parameters
Section titled “Query Parameters ”Filter by message status (e.g. delivered, failed).
Responses
Section titled “ Responses ”Paginated message list.
object
One message belonging to a campaign (per-recipient send status).
object
Convenience mirror of status (queued when the row has no status yet).
Billable SMS segment count for this message (defaults to 1).
Contact’s full name, or Unknown when no name is on file. null when the key lacks the contacts:read scope.
Contact’s phone number (falls back to the recipient number). Without contacts:read, the external party’s number on this message.
Human-readable failure reason (same value as errorDescription).
Alias of errorMessage.
Timestamp of the last status change (falls back to createdAt).
object
Example
{ "data": [ { "direction": "inbound", "status": "delivered", "finalStatus": "delivered" } ]}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"}The key is missing the sms:read scope, or the Flare API tier is not on your plan.
Inline error shape used by the messaging API and management endpoints.
object
Example
{ "success": false, "error": "Recipient phone number (to) is required"}