Segment API
- Table of Contents
- Remote Lists
- Warning – Not all Clauses are Supported
- Get a List of Stored Segments
- Create New Segment
- Retrieve a Single Segment
- Update a Segment
- Delete a Segment
Remote Lists
This API is not available on Remote Lists.
API calls to these endpoints will return an error message if attempted on a Remote List.
Warning – Not all Clauses are Supported
Only the clauses listed in the Segment Definition are
supported by this API. Other clauses will cause an invalid_request
error to be returned.
Get a List of Stored Segments
Get a list of the basic details of all segments available to the requesting API key’s organization.
URL
Get a list of stored segments on the current organization:
GET /ga/api/v2/segments
Get a list of stored segments on the requested mailing list:
GET /ga/api/v2/mailing_lists/:mailing_list_id/segments
Request Parameters
name string |
Filter all segmentation criterias with that exact name (case insensitive). |
name_contains string |
Filter all segmentation criterias that contain that name (case insensitive). |
Response
The response will be a JSON array where each element contains the following keys.
This endpoint returns paginated records with a default page size of 2000
.
id integer |
The |
mailing_list_id integer |
The |
name string |
The name of the segment. |
description string |
A text description of this segment. |
Example
GET /ga/api/v2/mailing_lists/8/segments
HTTP/1.1 200 OK
{
"success": true,
"data": [
{
"id": 8,
"mailing_list_id": 8,
"name": "Active Subscribers",
"description": "All of the following criteria ... (Status is Active)"
},
{
"id": 9,
"mailing_list_id": 8,
"name": "In Other List",
"description": "All of the following criteria ... (Subscriber is active in the mailing list \"Other Mailing List Name\")"
},
{
"id": 10,
"mailing_list_id": 8,
"name": "Active / In Other List",
"description": "All of the following criteria ... (Status is Active) (Subscriber is active in the mailing list \"Other Mailing List Name\")"
}
],
"error_code": null,
"error_message": null
}
Create New Segment
Create new segment using the Segment Definition.
URL
POST /ga/api/v2/mailing_lists/:mailing_list_id/segments
Request Parameters
mailing_list_id integer |
The mailing list to which this segment will be attached. |
include_sql boolean, default: |
Turn this option on to include in the response the actual SQL query |
Request Payload
segmentation_criteria array of hashes
|
Response
segmentation_criteria hash
|
Example
POST /ga/api/v2/mailing_lists/25/segments
{
"segmentation_criteria": {
"name": "Not in the other list",
"clause": [
{
"type": "in_mailing_list",
"operator": "is not in",
"mailing_list_id": 26
}
]
}
}
HTTP/1.1 200 OK
{
"success": true,
"data": {
"id": 21,
"mailing_list_id": 25,
"name": "Not in the other list",
"description": "All of the following criteria ... (Subscriber is not in the mailing list \"Other Mailing List Name\")",
"clause": [
{
"type": "in_mailing_list",
"operator": "is not in",
"mailing_list_id": 26,
"mailing_list": {
"id": 26,
"name": "Other Mailing List Name"
}
}
]
},
"error_code": null,
"error_message": null
}
Retrieve a Single Segment
Get all details of a single segment.
URL
GET /ga/api/v2/segments/:id
Request Parameters
id integer |
The |
Response
segmentation_criteria hash
|
Example
GET /ga/api/v2/mailing_lists/42/segments/25
HTTP/1.1 200 OK
{
"success": true,
"data": {
"id": 25,
"mailing_list_id": 42,
"name": "In Other List",
"description": "All of the following criteria ... (Subscriber is active in the mailing list \"Other Mailing List Name\")",
"clause": [
{
"type": "in_mailing_list",
"operator": "is active in",
"mailing_list_id": 43,
"mailing_list": {
"id": 43,
"name": "Other Mailing List Name"
}
}
]
},
"error_code": null,
"error_message": null
}
Update a Segment
Update an existing segment using the Segment Definition.
URL
PUT /ga/api/v2/segments/:id
Request Parameters
id integer |
The |
Request Payload
segmentation_criteria array of hashes
|
Response
segmentation_criteria hash
|
Example
PUT /ga/api/v2/mailing_lists/48/segments/29
{
"segmentation_criteria": {
"name": "Renamed segment",
"clause": [
{
"type": "in_mailing_list",
"operator": "is in",
"mailing_list_id": 49
}
]
}
}
HTTP/1.1 200 OK
{
"success": true,
"data": {
"id": 29,
"mailing_list_id": 48,
"name": "Renamed segment",
"description": "All of the following criteria ... (Subscriber is in the mailing list \"Other Mailing List Name\")",
"clause": [
{
"type": "in_mailing_list",
"operator": "is in",
"mailing_list_id": 49,
"mailing_list": {
"id": 49,
"name": "Other Mailing List Name"
}
}
]
},
"error_code": null,
"error_message": null
}
Delete a Segment
Delete a segment that is no longer in use.
If the segment is still being used by an unfinished campaign or autoresponder,
a validation_failed
error will be returned.
URL
DELETE /ga/api/v2/segments/:id
Request Parameters
id integer |
The |
Response
An empty successful response to this request indicates that the segment was successfully deleted.
Example
DELETE /ga/api/v2/mailing_lists/55/segments/33
HTTP/1.1 200 OK
{
"success": true,
"data": null,
"error_code": null,
"error_message": null
}