curl --request POST \
--url https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Namespace: <api-key>' \
--data '
{
"dataset_name": "<string>",
"min_interactions": 5,
"lookback_days": 30,
"positive_interaction_types": [
"<string>"
]
}
'import requests
url = "https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions"
payload = {
"dataset_name": "<string>",
"min_interactions": 5,
"lookback_days": 30,
"positive_interaction_types": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"X-Namespace": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-Namespace': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
dataset_name: '<string>',
min_interactions: 5,
lookback_days: 30,
positive_interaction_types: ['<string>']
})
};
fetch('https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions', 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/generate-from-interactions",
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([
'dataset_name' => '<string>',
'min_interactions' => 5,
'lookback_days' => 30,
'positive_interaction_types' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions"
payload := strings.NewReader("{\n \"dataset_name\": \"<string>\",\n \"min_interactions\": 5,\n \"lookback_days\": 30,\n \"positive_interaction_types\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-Namespace", "<api-key>")
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.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions")
.header("Authorization", "Bearer <token>")
.header("X-Namespace", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"dataset_name\": \"<string>\",\n \"min_interactions\": 5,\n \"lookback_days\": 30,\n \"positive_interaction_types\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-Namespace"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"dataset_name\": \"<string>\",\n \"min_interactions\": 5,\n \"lookback_days\": 30,\n \"positive_interaction_types\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"dataset_id": "<string>",
"dataset_name": "<string>",
"queries": [
{
"query_id": "<string>",
"query_input": {},
"relevant_documents": [
"<string>"
],
"relevance_scores": {}
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"namespace_id": "<string>",
"internal_id": "<string>",
"query_count": 123,
"description": "<string>",
"metadata": {}
}{
"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
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}Generate evaluation dataset from interactions
Auto-generate a ground truth evaluation dataset by mining user interactions for this retriever. Queries with sufficient positive interactions (click, purchase, bookmark, etc.) are used to infer relevance labels, creating a dataset suitable for offline evaluation.
curl --request POST \
--url https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Namespace: <api-key>' \
--data '
{
"dataset_name": "<string>",
"min_interactions": 5,
"lookback_days": 30,
"positive_interaction_types": [
"<string>"
]
}
'import requests
url = "https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions"
payload = {
"dataset_name": "<string>",
"min_interactions": 5,
"lookback_days": 30,
"positive_interaction_types": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"X-Namespace": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-Namespace': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
dataset_name: '<string>',
min_interactions: 5,
lookback_days: 30,
positive_interaction_types: ['<string>']
})
};
fetch('https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions', 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/generate-from-interactions",
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([
'dataset_name' => '<string>',
'min_interactions' => 5,
'lookback_days' => 30,
'positive_interaction_types' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions"
payload := strings.NewReader("{\n \"dataset_name\": \"<string>\",\n \"min_interactions\": 5,\n \"lookback_days\": 30,\n \"positive_interaction_types\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-Namespace", "<api-key>")
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.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions")
.header("Authorization", "Bearer <token>")
.header("X-Namespace", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"dataset_name\": \"<string>\",\n \"min_interactions\": 5,\n \"lookback_days\": 30,\n \"positive_interaction_types\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/{retriever_id}/evaluations/generate-from-interactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-Namespace"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"dataset_name\": \"<string>\",\n \"min_interactions\": 5,\n \"lookback_days\": 30,\n \"positive_interaction_types\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"dataset_id": "<string>",
"dataset_name": "<string>",
"queries": [
{
"query_id": "<string>",
"query_input": {},
"relevant_documents": [
"<string>"
],
"relevance_scores": {}
}
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"namespace_id": "<string>",
"internal_id": "<string>",
"query_count": 123,
"description": "<string>",
"metadata": {}
}{
"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
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"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 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
Body
Request to auto-generate an evaluation dataset from user interactions.
Name for the generated dataset. If omitted, defaults to 'auto_{retriever_id}_{date}'.
Minimum number of positive interactions a query must have to be included in the dataset. Queries with fewer interactions are excluded as low-confidence ground truth.
x >= 1How many days of interaction history to consider.
1 <= x <= 365Interaction types considered positive signals. Defaults to: click, purchase, positive_feedback, bookmark, share.
Response
Successful Response
Complete evaluation dataset with metadata.
An evaluation dataset is a collection of queries with ground truth relevance labels, used to measure retriever quality.
Unique dataset identifier
Human-readable dataset name
List of queries with ground truth
Show child attributes
Show child attributes
When dataset was created
Last update timestamp
Namespace this dataset belongs to
Internal organization ID
Number of queries in dataset
Dataset description
Additional metadata (e.g., labeling instructions, version info)
Was this page helpful?

