Skip to content

List SMS opt-outs

GET
/api/v2/opt-outs
curl --request GET \
--url 'https://api.sipstack.com/api/v2/opt-outs?since=2026-10-01T00%3A00%3A00Z&limit=100' \
--header 'x-api-key: <x-api-key>'

Returns your organization’s SMS opt-out list — one row per suppressed phone number (not per contact), ordered by updated_at ascending. Use it to keep a CRM or your own suppression list in sync. Requires the contacts:read scope and the same Flare API plan and rate limit as the contacts endpoints. Also available at /api/v1/opt-outs.

Pass since to get only numbers added or changed after that timestamp, and page with next_cursor. A number that is opted back in leaves this list, so it never shows up here as a removal — subscribe to the contact.opted_in webhook or read is_opted_out on GET /api/v2/contacts?updated_since= to see opt-ins. The text of the opt-out message is never returned.

since
string format: date-time

ISO-8601 timestamp. Return only numbers added or changed after it. An unparseable date returns 400.

Example
2026-10-01T00:00:00Z
limit
integer
default: 100 >= 1 <= 500
cursor
string

Opaque keyset cursor from a previous response’s next_cursor.

A page of opt-outs, oldest change first.

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

One phone number on your organization’s SMS opt-out list.

object
phone_number

The opted-out number (E.164).

string
method

How the number was opted out.

string
Allowed values: sms web admin crm
opted_out_at

When the number was first added to the list.

string format: date-time
updated_at

When the entry last changed — the field since filters on.

string format: date-time
pagination
object
limit
integer
next_cursor

Pass as cursor to fetch the next page; null on the last page.

string
nullable
Example
{
"success": true,
"data": [
{
"phone_number": "+14165550100",
"method": "sms"
}
],
"pagination": {
"limit": 100
}
}

Invalid since date or cursor.

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

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 contacts:read scope, or the plan does not include Flare API access.

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

Rate limit exceeded.

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

Internal error.

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