curl --request GET \
--url https://api.qonversion.io/v4/experiments/summary \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qonversion.io/v4/experiments/summary"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.qonversion.io/v4/experiments/summary', 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.qonversion.io/v4/experiments/summary",
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;
}require 'uri'
require 'net/http'
url = URI("https://api.qonversion.io/v4/experiments/summary")
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_bodypackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.qonversion.io/v4/experiments/summary"
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.qonversion.io/v4/experiments/summary")
.header("Authorization", "Bearer <token>")
.asString();{
"total_count": 1,
"items": [
{
"uid": "a6a360a2-41ed-4964-b45a-ea1b0c3e3386",
"experiment_id": 210,
"project_id": 789,
"name": "Paywall layout A/B",
"alias_id": "paywall_layout_ab",
"desc": "Compare two paywall layouts on iOS onboarding",
"segment_percent": 100,
"primary_metric": "subscription-cancellation",
"goal_direction": "decrease",
"goal_value": 4,
"context_key": "",
"context_specific": false,
"status": "finished",
"finished_at": 1712246400,
"created_at": 1709654400,
"updated_at": 1777051834,
"groups": [
{
"uid": "df0ab472",
"experiment_group_id": 407,
"experiment_id": 210,
"project_id": 789,
"name": "Control group",
"control": 1,
"weight": 1,
"created_at": 1709654400,
"updated_at": 1709654400
},
{
"uid": "3c458035",
"experiment_group_id": 408,
"experiment_id": 210,
"project_id": 789,
"name": "Test variant",
"control": 0,
"weight": 1,
"remote_config_uid": "25561136-dc1b-4625-9a05-0550d1a04508",
"created_at": 1709654400,
"updated_at": 1709655000,
"remote_config": {
"remote_config_uid": "25561136-dc1b-4625-9a05-0550d1a04508",
"project_id": 789,
"payload": {
"headline": "Unlock Pro",
"cta": "Start free trial"
},
"created_at": 1709654400,
"updated_at": 0
}
}
]
}
]
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}Get experiments analytics summary
Returns aggregated analytics summary for experiments.
curl --request GET \
--url https://api.qonversion.io/v4/experiments/summary \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.qonversion.io/v4/experiments/summary"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.qonversion.io/v4/experiments/summary', 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.qonversion.io/v4/experiments/summary",
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;
}require 'uri'
require 'net/http'
url = URI("https://api.qonversion.io/v4/experiments/summary")
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_bodypackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.qonversion.io/v4/experiments/summary"
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.qonversion.io/v4/experiments/summary")
.header("Authorization", "Bearer <token>")
.asString();{
"total_count": 1,
"items": [
{
"uid": "a6a360a2-41ed-4964-b45a-ea1b0c3e3386",
"experiment_id": 210,
"project_id": 789,
"name": "Paywall layout A/B",
"alias_id": "paywall_layout_ab",
"desc": "Compare two paywall layouts on iOS onboarding",
"segment_percent": 100,
"primary_metric": "subscription-cancellation",
"goal_direction": "decrease",
"goal_value": 4,
"context_key": "",
"context_specific": false,
"status": "finished",
"finished_at": 1712246400,
"created_at": 1709654400,
"updated_at": 1777051834,
"groups": [
{
"uid": "df0ab472",
"experiment_group_id": 407,
"experiment_id": 210,
"project_id": 789,
"name": "Control group",
"control": 1,
"weight": 1,
"created_at": 1709654400,
"updated_at": 1709654400
},
{
"uid": "3c458035",
"experiment_group_id": 408,
"experiment_id": 210,
"project_id": 789,
"name": "Test variant",
"control": 0,
"weight": 1,
"remote_config_uid": "25561136-dc1b-4625-9a05-0550d1a04508",
"created_at": 1709654400,
"updated_at": 1709655000,
"remote_config": {
"remote_config_uid": "25561136-dc1b-4625-9a05-0550d1a04508",
"project_id": 789,
"payload": {
"headline": "Unlock Pro",
"cta": "Start free trial"
},
"created_at": 1709654400,
"updated_at": 0
}
}
]
}
]
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}{
"error": {
"type": "request",
"code": "<string>",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"reason": "unsupported_parameter"
}
]
}
}Authorizations
Bearer authentication using the project Secret Key (prefixed with sk_), used exactly as shown in the dashboard. Endpoints that support sandbox data take an explicit environment field or parameter. All v4 public endpoints require the Secret Key — see Authentication. Never expose the Secret Key in client-side code.
Query Parameters
Start of the time range (ISO 8601).
End of the time range (ISO 8601).
Filter by environment.
Metric to summarize.
Currency code (ISO 4217).
Aggregation unit (e.g. day, week, month).
Day of week that a week starts on (e.g. monday, sunday).
Maximum number of series to return.
One experiment UID. Either this parameter or filter[experiment_uid][] is required.
1–50 experiment UIDs. Either this parameter or filter[experiment_uid] is required.
1 - 50 elementsResponse
Analytics summary data.
Experiments summary payload. items contains one entry per experiment matched by filter[experiment_uid][], with nested groups carrying the group metadata (control flag, weight, bound remote config).