POST /api/split.php
Use this endpoint to create and launch a A/B test to a list of subscribers. Content of each section can be provided through existing template, remote URL or HTML.
Request parameters
Note! Either template_id, html or html_raw parameter must be provided (among other required parameters) to create and launch an A/B test.
| Parameter | Value |
| splits | A list of sections, which will be part of the A/B test. See also “Structure of the parameter splits”. Required. |
| list | List(s) of subscribers to send the A/B test to. Value can be either an ID or list of IDs. Required. |
| size | Deprecated. A percentage taken from unique subscribers, contained in lists obtained from the parameter list, which is divided equally between all the sections specified in the splits parameter.Required. |
| condition | Deprecated. Winning condition, which will be used to select the best-performing section. Possible values are openrate, clicks, views and unsubscribed.Default: clicks |
| win_at | Deprecated. Due date to send out the A/B test to the rest of the list with the best-performing split options. Formatted as YYYY-MM-DD HH:MM:SS, and presented in Europe/Tallinn timezone.Required. |
| save_as_draft | Disable A/B test launch. Default: 0 |
Structure of the parameter splits
Note! Either template_id, html or html_raw parameter must be provided (among other required parameters) to create and launch an A/B test.
| Parameter | Value |
| subject | Email subject. Required. |
| from | From email address. Required. |
| from_name | From name. |
| template_id | Template ID. |
| html | Link to HTML content. Needs to be in a publicly accessible URL. |
| html_raw | HTML content. |
| html_raw | Due date of the section. If no value is set, the section will be scheduled for immediate delivery with a 5-minute “grace” period. Note! Due date must not be later than parameter win_at.Formatted as YYYY-MM-DD HH:MM:SS, and presented in Europe/Tallinn timezone. |
If the URL provided to parameter html response is other than HTTP/1.1 200, the request will fail.
Plain-text content will be generated from HTML content.
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 | ID of the created A/B test. |
Examples
Launching an A/B test
$ curl -X POST -u "${USERNAME}:${PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"splits":[{"subject": "Offers of the week - test A", "from": "offers@domain.tld", "html": "https://domain.tld/path/to/contentA.html"}, {"subject": "Offers of the week - test B", "from": "offers@domain.tld", "html": "https://domain.tld/path/to/contentB.html"}], "list": [10, 11], "condition": "clicks", "win_at": "2021-05-17 17:00:00", "size": 10}' \
"https://${SUBDOMAIN}.sendsmaily.net/api/split.php"
(JavaScript/JSON)
{
"code": 101,
"message": "OK",
"id": 1
}
Scheduling an A/B test
$ curl -X POST -u "${USERNAME}:${PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"splits":[{"subject": "Offers of the week - test A", "from": "offers@domain.tld", "html": "https://domain.tld/path/to/contentA.html", "due": "2021-05-17 16:30:00"}, {"subject": "Offers of the week - test B", "from": "offers@domain.tld", "html": "https://domain.tld/path/to/contentB.html", "due": "2021-05 17 16:35:00"}], "list": [10, 11], "condition": "clicks", "win_at": "2021-05-17 17:00:00", "size": 10}' \
"https://${SUBDOMAIN}.sendsmaily.net/api/split.php"
(JavaScript/JSON)
{
"code": 101,
"message": "OK",
"id": 2
}
Creating A/B test as a draft
$ curl -X POST -u "${USERNAME}:${PASSWORD}" \
-H "Content-Type: application/json" \
-d '{"splits":[{"subject": "Offers of the week - test A", "from": "offers@domain.tld", "html": "https://domain.tld/path/to/contentA.html", "due": "2021-05-17 16:30:00"}, {"subject": "Offers of the week - test B", "from": "offers@domain.tld", "html": "https://domain.tld/path/to/contentB.html", "due": "2021-05 17 16:35:00"}], "list": [10, 11], "condition": "clicks", "win_at": "2021-05-17 17:00:00", "size": 10, "save_as_draft": 1}' \
"https://${SUBDOMAIN}.sendsmaily.net/api/split.php"
(JavaScript/JSON)
{
"code": 101,
"message": "OK",
"id": 4
}