A/B Tests
Select A/B Test Winner
Select a campaign winner and deliver it to the remaining audience
POST
/
api
/
v1
/
ab-tests
/
{abTestId}
/
select-winner
Select A/B Test Winner
curl --request POST \
--url https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"variantId": "<string>"
}
'import requests
url = "https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner"
payload = { "variantId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({variantId: '<string>'})
};
fetch('https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'variantId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner"
payload := strings.NewReader("{\n \"variantId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"variantId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"variantId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"abTest": {
"id": "ab_abc123",
"status": "winner_selected",
"winningVariantId": "var_b"
}
}
{
"success": false,
"error": "Another winner was selected at the same time"
}
Select a variant as the winner of a campaign A/B test currently in the
The API key must have both
testing phase. Selection immediately queues winner delivery for the remaining
audience. Repeating the same selection safely repairs an interrupted queue
operation; selecting a different winner returns a conflict.
Request
string
required
Campaign A/B test ID.
string
required
Variant ID to select as the winner.
curl -X POST "https://api.sequenzy.com/api/v1/ab-tests/ab_abc123/select-winner" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"variantId":"var_b"}'
ab_tests:write and campaigns:send scopes.
Responses
{
"success": true,
"abTest": {
"id": "ab_abc123",
"status": "winner_selected",
"winningVariantId": "var_b"
}
}
{
"success": false,
"error": "Another winner was selected at the same time"
}
⌘I
Select A/B Test Winner
curl --request POST \
--url https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"variantId": "<string>"
}
'import requests
url = "https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner"
payload = { "variantId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({variantId: '<string>'})
};
fetch('https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'variantId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner"
payload := strings.NewReader("{\n \"variantId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"variantId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/ab-tests/{abTestId}/select-winner")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"variantId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"abTest": {
"id": "ab_abc123",
"status": "winner_selected",
"winningVariantId": "var_b"
}
}
{
"success": false,
"error": "Another winner was selected at the same time"
}