curl --request GET \
--url https://api.zelto.ai/v1/benchmarks/{id}/cases \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zelto.ai/v1/benchmarks/{id}/cases"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zelto.ai/v1/benchmarks/{id}/cases', 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.zelto.ai/v1/benchmarks/{id}/cases",
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.zelto.ai/v1/benchmarks/{id}/cases"
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.zelto.ai/v1/benchmarks/{id}/cases")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zelto.ai/v1/benchmarks/{id}/cases")
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{
"data": [
{
"id": "<string>",
"revision": 123,
"type": "turn",
"title": "<string>",
"checkGroupId": "<string>",
"source": "production",
"sourceConversationId": "<string>",
"sourceAgent": {
"id": "<string>",
"name": "<string>"
},
"tags": [
"<string>"
],
"language": "<string>",
"retired": true,
"draft": true,
"preview": "<string>",
"sourceAgentVersionLabel": "<string>",
"referenceUnverified": true,
"unpublished": true,
"skippedJudgeIds": [
"<string>"
],
"judgeParamOverrides": {},
"addedInVersion": 123,
"retiredInVersion": 123,
"toolExpectation": {
"expect": "call",
"calls": [
{
"tool": "<string>",
"arguments": {}
}
],
"ordered": true,
"forbiddenTools": [
"<string>"
],
"noExtraArguments": true,
"replyAt": 5
},
"replyExpectation": {
"check": "reference",
"text": "<string>",
"idealReply": "<string>"
},
"traceSource": {
"kind": "trace",
"traceId": "<string>",
"spanId": "<string>",
"turns": "transcript"
},
"status": "ready",
"contentPurged": true,
"contentDeleted": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}
],
"nextCursor": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}List cases
The benchmark’s working set of cases (labels and a short preview; content: get one case).
curl --request GET \
--url https://api.zelto.ai/v1/benchmarks/{id}/cases \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zelto.ai/v1/benchmarks/{id}/cases"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zelto.ai/v1/benchmarks/{id}/cases', 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.zelto.ai/v1/benchmarks/{id}/cases",
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.zelto.ai/v1/benchmarks/{id}/cases"
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.zelto.ai/v1/benchmarks/{id}/cases")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zelto.ai/v1/benchmarks/{id}/cases")
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{
"data": [
{
"id": "<string>",
"revision": 123,
"type": "turn",
"title": "<string>",
"checkGroupId": "<string>",
"source": "production",
"sourceConversationId": "<string>",
"sourceAgent": {
"id": "<string>",
"name": "<string>"
},
"tags": [
"<string>"
],
"language": "<string>",
"retired": true,
"draft": true,
"preview": "<string>",
"sourceAgentVersionLabel": "<string>",
"referenceUnverified": true,
"unpublished": true,
"skippedJudgeIds": [
"<string>"
],
"judgeParamOverrides": {},
"addedInVersion": 123,
"retiredInVersion": 123,
"toolExpectation": {
"expect": "call",
"calls": [
{
"tool": "<string>",
"arguments": {}
}
],
"ordered": true,
"forbiddenTools": [
"<string>"
],
"noExtraArguments": true,
"replyAt": 5
},
"replyExpectation": {
"check": "reference",
"text": "<string>",
"idealReply": "<string>"
},
"traceSource": {
"kind": "trace",
"traceId": "<string>",
"spanId": "<string>",
"turns": "transcript"
},
"status": "ready",
"contentPurged": true,
"contentDeleted": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}
],
"nextCursor": "<string>"
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}Authorizations
Send Authorization: Bearer YOUR_API_KEY. The key resolves to a single organization.
Path Parameters
Benchmark id.
Query Parameters
Also list retired cases.
Keep cases carrying any of these tags.
40turn, conversation, audio Only cases in this group.
Items per page. Default 50, max 200 (larger values are clamped to 200). Must be a positive integer; anything else is rejected with a 400 invalid_parameter.
1 <= x <= 200Opaque pagination cursor. Pass the nextCursor returned by the previous page, unchanged. A cursor this API did not issue is rejected with a 400 invalid_parameter. List endpoints also answer 400 unknown_query_parameter (listing the valid names) for any query parameter they do not accept, so a misspelled filter such as agent_id is never silently ignored.

