Guides & Tutorials

Create or update a segment

POST /api/list.php

This endpoint is used to create or update a user-made segment of an organization’s subscribers.

Request parameters

Parameter Value
id Segment ID.

Note! Only specify this parameter when updating a segment.
name Name of the segment.

Required.
filter_type Parameter to specify the inclusion of conditions.

Possible values:
ALL - subscriber data must conform to all the segmentation rules;
ANY - subscriber data must conform with at least one of the specified segmentation rules.

Required.
filter_data List of segmentation rules.

See “Structure of a segmentation rule” for more information.

Required.

Response parameters

All possible response codes and their descriptions can be found in the “Response codes” page.

Parameter Value
code Response code.
message Human-readable response message.
id Created or updated segment ID.

Structure of a segmentation rule

[field, [operator, value]]

For example: ["email", ["EndsWith", "@domain.tld"]]

Possible operators – Equal, NotEqual, BeginsWith, Contains, DoesNotContain, EndsWith, LessThan, LessThanEqual, GreaterThanEqual and GreaterThan.

Examples

Create a segment

$ curl -X POST -u "${USERNAME}:${PASSWORD}" \
  -H "Content-Type: application/json" \
  -d '{"name": "Women", "filter_type": "ALL", "filter_data": [["gender", ["Equal", "women"]]]}' \
  "https://${SUBDOMAIN}.sendsmaily.net/api/list.php"

(JavaScript/JSON)

{
  "code": 101,
  "message": "OK",
  "id": 1,
}

Update a segment

$ curl -X POST -u "${USERNAME}:${PASSWORD}" \
  -H "Content-Type: application/json" \
  -d '{"id": 2, "name": "Men 40+", "filter_type": "ALL", "filter_data": [["gender", ["Equal", "men"]], ["age", ["GreaterThanEqual", "40"]]]}' \
  "https://${SUBDOMAIN}.sendsmaily.net/api/list.php"

(JavaScript/JSON)

{
  "code": 101,
  "message": "OK",
  "id": 2,
}