curl --request GET \
--url https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/{evaluation_id} \
--header 'Authorization: Bearer <token>' \
--header 'X-Namespace: <api-key>'import requests
url = "https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_id}")
.header("Authorization", "Bearer <token>")
.header("X-Namespace", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/{evaluation_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{
"evaluation_id": "<string>",
"retriever_id": "<string>",
"dataset_id": "<string>",
"dataset_name": "<string>",
"config": {
"k_values": [
1,
5,
10,
20
],
"metrics": [
"precision",
"recall",
"f1",
"map",
"ndcg",
"mrr"
]
},
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"namespace_id": "<string>",
"internal_id": "<string>",
"query_count": 123,
"completed_at": "2023-11-07T05:31:56Z",
"overall_metrics": {},
"metrics_by_k": {},
"total_queries": 123,
"evaluated_queries": 123,
"skipped_queries": 123,
"error_message": "<string>",
"query_results": [
{
"query_id": "<string>",
"status": "<string>",
"error": "<string>",
"retrieved_count": 123
}
],
"baseline_evaluation_id": "<string>",
"weight_set_id": "<string>",
"verdict": {
"passed": true,
"reason": "<string>",
"primary_metric": "<string>",
"compared_metrics": 0,
"regressed_metrics": [
"<string>"
],
"skipped_metrics": [
"<string>"
],
"per_metric": {}
}
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}Get evaluation results
Retrieve evaluation results with all calculated metrics
curl --request GET \
--url https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/{evaluation_id} \
--header 'Authorization: Bearer <token>' \
--header 'X-Namespace: <api-key>'import requests
url = "https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_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/{retriever_id}/evaluations/{evaluation_id}")
.header("Authorization", "Bearer <token>")
.header("X-Namespace", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/{evaluation_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{
"evaluation_id": "<string>",
"retriever_id": "<string>",
"dataset_id": "<string>",
"dataset_name": "<string>",
"config": {
"k_values": [
1,
5,
10,
20
],
"metrics": [
"precision",
"recall",
"f1",
"map",
"ndcg",
"mrr"
]
},
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"namespace_id": "<string>",
"internal_id": "<string>",
"query_count": 123,
"completed_at": "2023-11-07T05:31:56Z",
"overall_metrics": {},
"metrics_by_k": {},
"total_queries": 123,
"evaluated_queries": 123,
"skipped_queries": 123,
"error_message": "<string>",
"query_results": [
{
"query_id": "<string>",
"status": "<string>",
"error": "<string>",
"retrieved_count": 123
}
],
"baseline_evaluation_id": "<string>",
"weight_set_id": "<string>",
"verdict": {
"passed": true,
"reason": "<string>",
"primary_metric": "<string>",
"compared_metrics": 0,
"regressed_metrics": [
"<string>"
],
"skipped_metrics": [
"<string>"
],
"per_metric": {}
}
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"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, malformed, unknown, revoked, inactive or expired key returns 401; a key without the permission, scope or plan an operation needs returns 403.
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.
Response
Successful Response
Complete evaluation record with results.
Unique evaluation identifier
ID of retriever being evaluated
ID of dataset used for evaluation
Name of dataset
Evaluation configuration
Show child attributes
Show child attributes
Current status
pending, in_progress, completed, failed When evaluation was created
Last update timestamp
Namespace ID
Internal organization ID
Number of queries evaluated
When evaluation completed
Aggregated metrics across all queries
Show child attributes
Show child attributes
Metrics broken down by K value (keys are string K values like '5', '10', '20')
Show child attributes
Show child attributes
Total queries in the dataset for this run (= evaluated_queries + skipped_queries).
Number of queries that produced metrics. May be < total_queries when some queries were skipped (skip-and-continue on empty/failing input).
Number of queries skipped during evaluation (empty query_input or a per-query execution failure) — these did not fail the whole eval.
Error message if failed
Per-query outcomes: which branch each attempted query took and the actual error for skips, so an all-skipped run is actionable from the record without worker-log access.
Show child attributes
Show child attributes
For a trained weight set's evaluation: the evaluation of the live configuration on the same dataset that this run was gated against.
For a trained weight set's evaluation: the weight set this run scored. When the verdict passed, the stage's learning_config.shipped_weight_set carries the same id.
For a trained weight set's evaluation: the gate verdict against baseline_evaluation_id, with both scores for every metric. A refused set keeps the live configuration.
Show child attributes
Show child attributes
Was this page helpful?

