Get A/B test results
curl --request GET \
--url https://api.naturalead.ai/api/ab-tests/{id}/results \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.naturalead.ai/api/ab-tests/{id}/results"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.naturalead.ai/api/ab-tests/{id}/results', 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.naturalead.ai/api/ab-tests/{id}/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.naturalead.ai/api/ab-tests/{id}/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.naturalead.ai/api/ab-tests/{id}/results")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.naturalead.ai/api/ab-tests/{id}/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"testId": "<string>",
"status": "draft",
"totalConversations": 123,
"variants": [
{
"agentConfigId": "<string>",
"weight": 123,
"totalConversations": 123,
"qualified": 123,
"disqualified": 123,
"qualificationRate": 123,
"avgMessagesPerConversation": 123,
"agentConfigName": "<string>",
"avgConversationDuration": 123
}
],
"winner": "<string>",
"confidenceLevel": 123
}{
"error": "A/B test not found"
}{
"error": "Failed to process request"
}A/B Testing
Get Test Results
Returns detailed performance results for each variant in the A/B test,
including conversation counts, qualification rates, and statistical
significance indicators. Requires ab_testing:view permission.
GET
/
api
/
ab-tests
/
{id}
/
results
Get A/B test results
curl --request GET \
--url https://api.naturalead.ai/api/ab-tests/{id}/results \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.naturalead.ai/api/ab-tests/{id}/results"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.naturalead.ai/api/ab-tests/{id}/results', 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.naturalead.ai/api/ab-tests/{id}/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.naturalead.ai/api/ab-tests/{id}/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.naturalead.ai/api/ab-tests/{id}/results")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.naturalead.ai/api/ab-tests/{id}/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"testId": "<string>",
"status": "draft",
"totalConversations": 123,
"variants": [
{
"agentConfigId": "<string>",
"weight": 123,
"totalConversations": 123,
"qualified": 123,
"disqualified": 123,
"qualificationRate": 123,
"avgMessagesPerConversation": 123,
"agentConfigName": "<string>",
"avgConversationDuration": 123
}
],
"winner": "<string>",
"confidenceLevel": 123
}{
"error": "A/B test not found"
}{
"error": "Failed to process request"
}Authorizations
Bearer token using an API key (format: nl_live_* or nl_test_*).
Path Parameters
A/B test ID (MongoDB ObjectId)
Example:
"665a1b2c3d4e5f6a7b8c9d0e"
Response
A/B test results
Aggregated results for an A/B test.
A/B test identifier
Available options:
draft, running, paused, completed Total conversations across all variants
Show child attributes
Show child attributes
Agent configuration ID of the winning variant, or null if no statistically significant winner has been determined
Statistical confidence level (0-1) for the winner determination, or null if not yet computed