curl --request POST \
--url https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore', 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}/runs/{runId}/rescore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/runs/{runId}/rescore"
req, _ := http.NewRequest("POST", 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.post("https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"layerId": "<string>",
"runId": "<string>",
"versionNumber": 123,
"status": "queued",
"llmJudges": 123,
"estimatedCostUsd": 123
}{
"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": "validation_failed",
"code": "validation_failed",
"message": "<string>",
"hint": "<string>",
"details": {}
}{
"error": "validation_failed",
"code": "validation_failed",
"message": "<string>",
"hint": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}{
"error": "validation_failed",
"code": "validation_failed",
"message": "<string>",
"hint": "<string>",
"details": {}
}Rescore a run
Applies the current version’s Judges to the run’s stored outputs as a new score layer, without calling candidates again. Only Judges that are new or whose revision changed are applied again; an unchanged Judge keeps its verdict, and overrides carry forward on it. Built-in and Code Judges are free. Re-called LLM Judges are estimated and billed like a run, and go through the same spend guard: over the monthly cap or the approval threshold the rescore is refused with 402 approval_required.
curl --request POST \
--url https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore', 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}/runs/{runId}/rescore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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}/runs/{runId}/rescore"
req, _ := http.NewRequest("POST", 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.post("https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zelto.ai/v1/benchmarks/{id}/runs/{runId}/rescore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"layerId": "<string>",
"runId": "<string>",
"versionNumber": 123,
"status": "queued",
"llmJudges": 123,
"estimatedCostUsd": 123
}{
"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": "validation_failed",
"code": "validation_failed",
"message": "<string>",
"hint": "<string>",
"details": {}
}{
"error": "validation_failed",
"code": "validation_failed",
"message": "<string>",
"hint": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"code": "<string>",
"hint": "<string>",
"parameter": "<string>",
"unknown": [
"<string>"
],
"valid": [
"<string>"
],
"details": {}
}{
"error": "validation_failed",
"code": "validation_failed",
"message": "<string>",
"hint": "<string>",
"details": {}
}Authorizations
Send Authorization: Bearer YOUR_API_KEY. The key resolves to a single organization.
Response
Successful response.
A queued rescore (a new score layer).
"queued"LLM Judges that are new or changed since the run, so they are called again. Unchanged Judges keep their verdicts.
What Zelto bills for those LLM Judge calls. 0 when only Built-in or Code Judges changed.

