Create an evaluation
curl --request POST \
--url https://distillation.training.wandb.ai/v1/evals \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spec": {
"type": "h2h_judge",
"judge_model_ref": "<string>",
"judge_prompt": "You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.",
"reference_conversation_count": 0
},
"participants": [
{
"kind": "original"
}
],
"sample_size": 123,
"reference": {
"kind": "original"
}
}
'import requests
url = "https://distillation.training.wandb.ai/v1/evals"
payload = {
"name": "<string>",
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spec": {
"type": "h2h_judge",
"judge_model_ref": "<string>",
"judge_prompt": "You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.",
"reference_conversation_count": 0
},
"participants": [{ "kind": "original" }],
"sample_size": 123,
"reference": { "kind": "original" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
dataset_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
spec: {
type: 'h2h_judge',
judge_model_ref: '<string>',
judge_prompt: 'You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.',
reference_conversation_count: 0
},
participants: [{kind: 'original'}],
sample_size: 123,
reference: {kind: 'original'}
})
};
fetch('https://distillation.training.wandb.ai/v1/evals', 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://distillation.training.wandb.ai/v1/evals",
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([
'name' => '<string>',
'dataset_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'spec' => [
'type' => 'h2h_judge',
'judge_model_ref' => '<string>',
'judge_prompt' => 'You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.',
'reference_conversation_count' => 0
],
'participants' => [
[
'kind' => 'original'
]
],
'sample_size' => 123,
'reference' => [
'kind' => 'original'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://distillation.training.wandb.ai/v1/evals"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"dataset_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"spec\": {\n \"type\": \"h2h_judge\",\n \"judge_model_ref\": \"<string>\",\n \"judge_prompt\": \"You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.\",\n \"reference_conversation_count\": 0\n },\n \"participants\": [\n {\n \"kind\": \"original\"\n }\n ],\n \"sample_size\": 123,\n \"reference\": {\n \"kind\": \"original\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://distillation.training.wandb.ai/v1/evals")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"dataset_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"spec\": {\n \"type\": \"h2h_judge\",\n \"judge_model_ref\": \"<string>\",\n \"judge_prompt\": \"You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.\",\n \"reference_conversation_count\": 0\n },\n \"participants\": [\n {\n \"kind\": \"original\"\n }\n ],\n \"sample_size\": 123,\n \"reference\": {\n \"kind\": \"original\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://distillation.training.wandb.ai/v1/evals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"dataset_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"spec\": {\n \"type\": \"h2h_judge\",\n \"judge_model_ref\": \"<string>\",\n \"judge_prompt\": \"You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.\",\n \"reference_conversation_count\": 0\n },\n \"participants\": [\n {\n \"kind\": \"original\"\n }\n ],\n \"sample_size\": 123,\n \"reference\": {\n \"kind\": \"original\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"spec": {
"type": "h2h_judge",
"judge_model_ref": "openai/gpt-5.6-sol",
"judge_prompt": "<string>"
},
"participants": [
{
"kind": "original"
}
],
"sample_size": 123,
"status": "queued",
"progress": {
"total": 123,
"queued": 123,
"running": 123,
"completed": 123,
"failed": 123
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"reference": {
"kind": "original"
},
"results": {},
"failure_summary": {}
}{
"error": {
"message": "Task 'missing' not found in entity 'your-team'",
"type": "not_found"
}
}Create an evaluation
POST
/
evals
Create an evaluation
curl --request POST \
--url https://distillation.training.wandb.ai/v1/evals \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spec": {
"type": "h2h_judge",
"judge_model_ref": "<string>",
"judge_prompt": "You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.",
"reference_conversation_count": 0
},
"participants": [
{
"kind": "original"
}
],
"sample_size": 123,
"reference": {
"kind": "original"
}
}
'import requests
url = "https://distillation.training.wandb.ai/v1/evals"
payload = {
"name": "<string>",
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"spec": {
"type": "h2h_judge",
"judge_model_ref": "<string>",
"judge_prompt": "You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.",
"reference_conversation_count": 0
},
"participants": [{ "kind": "original" }],
"sample_size": 123,
"reference": { "kind": "original" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
dataset_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
spec: {
type: 'h2h_judge',
judge_model_ref: '<string>',
judge_prompt: 'You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.',
reference_conversation_count: 0
},
participants: [{kind: 'original'}],
sample_size: 123,
reference: {kind: 'original'}
})
};
fetch('https://distillation.training.wandb.ai/v1/evals', 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://distillation.training.wandb.ai/v1/evals",
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([
'name' => '<string>',
'dataset_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'spec' => [
'type' => 'h2h_judge',
'judge_model_ref' => '<string>',
'judge_prompt' => 'You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.',
'reference_conversation_count' => 0
],
'participants' => [
[
'kind' => 'original'
]
],
'sample_size' => 123,
'reference' => [
'kind' => 'original'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://distillation.training.wandb.ai/v1/evals"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"dataset_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"spec\": {\n \"type\": \"h2h_judge\",\n \"judge_model_ref\": \"<string>\",\n \"judge_prompt\": \"You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.\",\n \"reference_conversation_count\": 0\n },\n \"participants\": [\n {\n \"kind\": \"original\"\n }\n ],\n \"sample_size\": 123,\n \"reference\": {\n \"kind\": \"original\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://distillation.training.wandb.ai/v1/evals")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"dataset_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"spec\": {\n \"type\": \"h2h_judge\",\n \"judge_model_ref\": \"<string>\",\n \"judge_prompt\": \"You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.\",\n \"reference_conversation_count\": 0\n },\n \"participants\": [\n {\n \"kind\": \"original\"\n }\n ],\n \"sample_size\": 123,\n \"reference\": {\n \"kind\": \"original\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://distillation.training.wandb.ai/v1/evals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"dataset_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"spec\": {\n \"type\": \"h2h_judge\",\n \"judge_model_ref\": \"<string>\",\n \"judge_prompt\": \"You are an intelligent and fair judge of chatbots. Evaluate the following two responses and choose which one is better. If the outputs are of similar quality, you can mark them as a tie.\",\n \"reference_conversation_count\": 0\n },\n \"participants\": [\n {\n \"kind\": \"original\"\n }\n ],\n \"sample_size\": 123,\n \"reference\": {\n \"kind\": \"original\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"spec": {
"type": "h2h_judge",
"judge_model_ref": "openai/gpt-5.6-sol",
"judge_prompt": "<string>"
},
"participants": [
{
"kind": "original"
}
],
"sample_size": 123,
"status": "queued",
"progress": {
"total": 123,
"queued": 123,
"running": 123,
"completed": 123,
"failed": 123
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"reference": {
"kind": "original"
},
"results": {},
"failure_summary": {}
}{
"error": {
"message": "Task 'missing' not found in entity 'your-team'",
"type": "not_found"
}
}Authorizations
A personal or service-account W&B API key.
Headers
Accessible personal or team entity. Omit to use the API key's default entity.
Body
application/json
A short, scannable evaluation name. Prefer 2-5 words and avoid embedding the dataset name, every compared model, or configuration details.
Required string length:
1 - 128Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Minimum array length:
1- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Show child attributes
Show child attributes
Required range:
x <= 9007199254740991- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Response
Evaluation cases were queued.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Available options:
queued, running, completed, failed, stale Show child attributes
Show child attributes
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Last modified on August 25, 2026
Was this page helpful?
⌘I