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 }