curl --request GET \
--url https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id} \
--header 'Authorization: Bearer <token>' \
--header 'X-Namespace: <api-key>'import requests
url = "https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}"
headers = {
"Authorization": "Bearer <token>",
"X-Namespace": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'X-Namespace': '<api-key>'}
};
fetch('https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}', 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.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}",
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>",
"X-Namespace: <api-key>"
],
]);
$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.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-Namespace", "<api-key>")
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.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}")
.header("Authorization", "Bearer <token>")
.header("X-Namespace", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-Namespace"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"benchmark_id": "<string>",
"benchmark_name": "<string>",
"baseline_retriever_id": "<string>",
"candidate_retriever_ids": [
"<string>"
],
"session_count": 123,
"created_at": "2023-11-07T05:31:56Z",
"session_filter": {
"retriever_ids": [
"<string>"
],
"taxonomy_node_ids": [
"<string>"
],
"time_range": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
},
"min_interactions": 1,
"interaction_types": [
"<string>"
],
"sample_strategy": "random",
"interaction_weights": {
"weights": {}
}
},
"results": [
{
"retriever_id": "<string>",
"retriever_name": "<string>",
"pipeline_hash": "<string>",
"metrics": {
"ndcg_at_k": {},
"mean_rank_clicked": 123,
"recall_at_k": {},
"avg_position_delta": 123,
"items_promoted": 1,
"items_demoted": 1,
"sessions_improved": 1,
"sessions_degraded": 1,
"sessions_neutral": 1,
"mean_rank_purchased": 123
},
"latency": {
"p50_ms": 1,
"p90_ms": 1,
"p99_ms": 1,
"mean_ms": 1,
"stage_latencies": {}
},
"failed_sessions": 1,
"taxonomy_deltas": {},
"error_summary": {}
}
],
"comparison": {
"baseline_retriever_id": "<string>",
"comparisons": [
{
"candidate_retriever_id": "<string>",
"ndcg_delta": {},
"recall_delta": {},
"latency_delta_ms": 123,
"p_value": 123,
"confidence_interval": {
"[0]": 123,
"[1]": 123
},
"taxonomy_wins": [
"<string>"
],
"taxonomy_losses": [
"<string>"
]
}
],
"recommendation": "<string>"
},
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"error_message": "<string>"
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}Get benchmark
Get benchmark status and results by ID
curl --request GET \
--url https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id} \
--header 'Authorization: Bearer <token>' \
--header 'X-Namespace: <api-key>'import requests
url = "https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}"
headers = {
"Authorization": "Bearer <token>",
"X-Namespace": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'X-Namespace': '<api-key>'}
};
fetch('https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}', 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.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}",
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>",
"X-Namespace: <api-key>"
],
]);
$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.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-Namespace", "<api-key>")
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.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}")
.header("Authorization", "Bearer <token>")
.header("X-Namespace", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/benchmarks/{benchmark_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-Namespace"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"benchmark_id": "<string>",
"benchmark_name": "<string>",
"baseline_retriever_id": "<string>",
"candidate_retriever_ids": [
"<string>"
],
"session_count": 123,
"created_at": "2023-11-07T05:31:56Z",
"session_filter": {
"retriever_ids": [
"<string>"
],
"taxonomy_node_ids": [
"<string>"
],
"time_range": {
"start": "2023-11-07T05:31:56Z",
"end": "2023-11-07T05:31:56Z"
},
"min_interactions": 1,
"interaction_types": [
"<string>"
],
"sample_strategy": "random",
"interaction_weights": {
"weights": {}
}
},
"results": [
{
"retriever_id": "<string>",
"retriever_name": "<string>",
"pipeline_hash": "<string>",
"metrics": {
"ndcg_at_k": {},
"mean_rank_clicked": 123,
"recall_at_k": {},
"avg_position_delta": 123,
"items_promoted": 1,
"items_demoted": 1,
"sessions_improved": 1,
"sessions_degraded": 1,
"sessions_neutral": 1,
"mean_rank_purchased": 123
},
"latency": {
"p50_ms": 1,
"p90_ms": 1,
"p99_ms": 1,
"mean_ms": 1,
"stage_latencies": {}
},
"failed_sessions": 1,
"taxonomy_deltas": {},
"error_summary": {}
}
],
"comparison": {
"baseline_retriever_id": "<string>",
"comparisons": [
{
"candidate_retriever_id": "<string>",
"ndcg_delta": {},
"recall_delta": {},
"latency_delta_ms": 123,
"p_value": 123,
"confidence_interval": {
"[0]": 123,
"[1]": 123
},
"taxonomy_wins": [
"<string>"
],
"taxonomy_losses": [
"<string>"
]
}
],
"recommendation": "<string>"
},
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"error_message": "<string>"
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}Authorizations
Mixpeek API key, sent as Authorization: Bearer mxp_sk_.... Create one in Studio under Settings → API Keys, or with an admin key via POST /v1/organizations/users/{user_email}/api-keys. A missing header returns 403; an invalid or revoked key returns 401.
Namespace id (ns_...), not the namespace name. This scopes the request rather than authenticating it, and it is required on every operation marked x-mixpeek-namespace-scoped.
Path Parameters
Response
Successful Response
Response containing benchmark details and results.
Unique benchmark identifier.
Human-readable name.
Baseline retriever ID.
Candidate retriever IDs.
Number of sessions in benchmark.
Current benchmark status.
pending, building_sessions, replaying, computing_metrics, completed, failed Creation timestamp.
Filter criteria used.
Show child attributes
Show child attributes
Results per pipeline (available when completed).
Show child attributes
Show child attributes
Statistical comparison (available when completed).
Show child attributes
Show child attributes
Execution start time.
Completion time.
Error message if failed.
Was this page helpful?

