Update and reconcile an evaluation
curl --request PUT \
--url https://distillation.training.wandb.ai/v1/evals/{evalId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"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"
}
],
"reference": {
"kind": "original"
},
"sample_size": 123
}
'import requests
url = "https://distillation.training.wandb.ai/v1/evals/{evalId}"
payload = {
"name": "<string>",
"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" }],
"reference": { "kind": "original" },
"sample_size": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
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'}],
reference: {kind: 'original'},
sample_size: 123
})
};
fetch('https://distillation.training.wandb.ai/v1/evals/{evalId}', 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/{evalId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'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'
]
],
'reference' => [
'kind' => 'original'
],
'sample_size' => 123
]),
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/{evalId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\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 \"reference\": {\n \"kind\": \"original\"\n },\n \"sample_size\": 123\n}")
req, _ := http.NewRequest("PUT", 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.put("https://distillation.training.wandb.ai/v1/evals/{evalId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\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 \"reference\": {\n \"kind\": \"original\"\n },\n \"sample_size\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://distillation.training.wandb.ai/v1/evals/{evalId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\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 \"reference\": {\n \"kind\": \"original\"\n },\n \"sample_size\": 123\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"
}
}Update and reconcile an evaluation
Preserves unchanged completed cases and queues only added or invalidated work.
PUT
/
evals
/
{evalId}
Update and reconcile an evaluation
curl --request PUT \
--url https://distillation.training.wandb.ai/v1/evals/{evalId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"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"
}
],
"reference": {
"kind": "original"
},
"sample_size": 123
}
'import requests
url = "https://distillation.training.wandb.ai/v1/evals/{evalId}"
payload = {
"name": "<string>",
"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" }],
"reference": { "kind": "original" },
"sample_size": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
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'}],
reference: {kind: 'original'},
sample_size: 123
})
};
fetch('https://distillation.training.wandb.ai/v1/evals/{evalId}', 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/{evalId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'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'
]
],
'reference' => [
'kind' => 'original'
],
'sample_size' => 123
]),
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/{evalId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\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 \"reference\": {\n \"kind\": \"original\"\n },\n \"sample_size\": 123\n}")
req, _ := http.NewRequest("PUT", 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.put("https://distillation.training.wandb.ai/v1/evals/{evalId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\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 \"reference\": {\n \"kind\": \"original\"\n },\n \"sample_size\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://distillation.training.wandb.ai/v1/evals/{evalId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\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 \"reference\": {\n \"kind\": \"original\"\n },\n \"sample_size\": 123\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.
Path Parameters
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 - 128- 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
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Required range:
x <= 9007199254740991Response
Updated evaluation with a reconciled case batch.
- 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