Skip to main content

List Segments

Retrieve a paginated list of the segments in your organization. A segment is a dynamic audience: the contacts that currently match a set of rules. Use a segment's id in the segment_ids of a campaign.

Segments are created and edited in the Arsel Dashboard. The API reads them; it does not return or change their rules.

Endpoint​

GET /segments

Headers​

HeaderValueRequired
AuthorizationBearer <your-api-key>Yes

Query Parameters​

ParameterTypeDefaultDescription
limitnumber20Items per page (min: 1, max: 100)
afterstring—Cursor — return items after this id (exclusive).
beforestring—Cursor — return items before this id (exclusive).
searchstring—Search by segment name

Results are returned newest first. See Pagination for cursor details.

Response​

{
"object": "list",
"has_more": false,
"data": [
{
"id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a",
"name": "VIP customers",
"description": "Spent over 1,000 SAR in the last 90 days",
"contact_count": 420,
"counted_at": "2026-03-08T12:00:00.000Z",
"created_at": "2026-03-01T10:00:00.000Z",
"updated_at": "2026-03-02T09:30:00.000Z"
},
{
"id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6b",
"name": "New this week",
"description": null,
"contact_count": null,
"counted_at": null,
"created_at": "2026-03-08T11:55:00.000Z",
"updated_at": "2026-03-08T11:55:00.000Z"
}
]
}

Segment fields​

FieldTypeDescription
idstringThe segment ID
namestringThe segment name
descriptionstring | nullOptional description
contact_countnumber | nullContacts matching the segment when it was last counted. null if it has not been counted yet, or its rules changed since.
counted_atstring | nullWhen contact_count was computed (ISO 8601)
created_atstringWhen the segment was created (ISO 8601)
updated_atstringWhen the segment was last changed (ISO 8601)
Counts are a snapshot

contact_count is not computed on request. Arsel recounts segments in the background, and resolves the audience again when a campaign is sent, so a campaign reaches whoever matches at send time.


Examples​

curl "https://api.arsel.sa/v1/segments?limit=20" \
-H "Authorization: Bearer be_your_api_key"

Error Responses​

{
"status_code": 401,
"name": "unauthorized",
"message": "Invalid or missing API key"
}