curl --request POST \
--url https://api.galtea.ai/evaluatorModels/test-generation-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"evaluatorModelName": "gpt-5-nano",
"judgeGenerationSettings": {
"temperature": 0.3,
"topP": 0.9,
"maxOutputTokens": 512,
"reasoningEffort": "low"
}
}
'import requests
url = "https://api.galtea.ai/evaluatorModels/test-generation-settings"
payload = {
"evaluatorModelName": "gpt-5-nano",
"judgeGenerationSettings": {
"temperature": 0.3,
"topP": 0.9,
"maxOutputTokens": 512,
"reasoningEffort": "low"
}
}
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({
evaluatorModelName: 'gpt-5-nano',
judgeGenerationSettings: {temperature: 0.3, topP: 0.9, maxOutputTokens: 512, reasoningEffort: 'low'}
})
};
fetch('https://api.galtea.ai/evaluatorModels/test-generation-settings', 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.galtea.ai/evaluatorModels/test-generation-settings",
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([
'evaluatorModelName' => 'gpt-5-nano',
'judgeGenerationSettings' => [
'temperature' => 0.3,
'topP' => 0.9,
'maxOutputTokens' => 512,
'reasoningEffort' => 'low'
]
]),
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://api.galtea.ai/evaluatorModels/test-generation-settings"
payload := strings.NewReader("{\n \"evaluatorModelName\": \"gpt-5-nano\",\n \"judgeGenerationSettings\": {\n \"temperature\": 0.3,\n \"topP\": 0.9,\n \"maxOutputTokens\": 512,\n \"reasoningEffort\": \"low\"\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://api.galtea.ai/evaluatorModels/test-generation-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"evaluatorModelName\": \"gpt-5-nano\",\n \"judgeGenerationSettings\": {\n \"temperature\": 0.3,\n \"topP\": 0.9,\n \"maxOutputTokens\": 512,\n \"reasoningEffort\": \"low\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/evaluatorModels/test-generation-settings")
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 \"evaluatorModelName\": \"gpt-5-nano\",\n \"judgeGenerationSettings\": {\n \"temperature\": 0.3,\n \"topP\": 0.9,\n \"maxOutputTokens\": 512,\n \"reasoningEffort\": \"low\"\n }\n}"
response = http.request(request)
puts response.read_body{
"outcome": "accepted",
"error": "temperature: range: 0..1"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}Check judge generation settings against the model
Sends one small completion to the given judge model with the given generation settings, so a rejected value surfaces while a metric is being configured rather than after an evaluation has run. The gateway publishes which settings a model takes but never their legal values, so the provider is the only judge of them. Persists nothing and consumes no credits.
curl --request POST \
--url https://api.galtea.ai/evaluatorModels/test-generation-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"evaluatorModelName": "gpt-5-nano",
"judgeGenerationSettings": {
"temperature": 0.3,
"topP": 0.9,
"maxOutputTokens": 512,
"reasoningEffort": "low"
}
}
'import requests
url = "https://api.galtea.ai/evaluatorModels/test-generation-settings"
payload = {
"evaluatorModelName": "gpt-5-nano",
"judgeGenerationSettings": {
"temperature": 0.3,
"topP": 0.9,
"maxOutputTokens": 512,
"reasoningEffort": "low"
}
}
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({
evaluatorModelName: 'gpt-5-nano',
judgeGenerationSettings: {temperature: 0.3, topP: 0.9, maxOutputTokens: 512, reasoningEffort: 'low'}
})
};
fetch('https://api.galtea.ai/evaluatorModels/test-generation-settings', 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.galtea.ai/evaluatorModels/test-generation-settings",
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([
'evaluatorModelName' => 'gpt-5-nano',
'judgeGenerationSettings' => [
'temperature' => 0.3,
'topP' => 0.9,
'maxOutputTokens' => 512,
'reasoningEffort' => 'low'
]
]),
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://api.galtea.ai/evaluatorModels/test-generation-settings"
payload := strings.NewReader("{\n \"evaluatorModelName\": \"gpt-5-nano\",\n \"judgeGenerationSettings\": {\n \"temperature\": 0.3,\n \"topP\": 0.9,\n \"maxOutputTokens\": 512,\n \"reasoningEffort\": \"low\"\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://api.galtea.ai/evaluatorModels/test-generation-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"evaluatorModelName\": \"gpt-5-nano\",\n \"judgeGenerationSettings\": {\n \"temperature\": 0.3,\n \"topP\": 0.9,\n \"maxOutputTokens\": 512,\n \"reasoningEffort\": \"low\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/evaluatorModels/test-generation-settings")
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 \"evaluatorModelName\": \"gpt-5-nano\",\n \"judgeGenerationSettings\": {\n \"temperature\": 0.3,\n \"topP\": 0.9,\n \"maxOutputTokens\": 512,\n \"reasoningEffort\": \"low\"\n }\n}"
response = http.request(request)
puts response.read_body{
"outcome": "accepted",
"error": "temperature: range: 0..1"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}Authorizations
API key authorization. Pass your API key in the Authorization header as a Bearer token. Both new (gsk_*) and legacy (gsk-) API keys are accepted, e.g. Authorization: Bearer gsk_... or Authorization: Bearer gsk-....
Body
Response
The probe ran. outcome says whether the provider accepted the settings, refused one, or never answered.
What the call established. accepted means the provider took the values; a setting a model does not support is discarded silently and still counts as accepted, so this never reports that a value changed the judge behaviour. refused means the provider was reached and rejected a value. unreachable means the provider never answered, so nothing was learned about the values and the call is worth repeating.
accepted, refused, unreachable "accepted"
The provider's own refusal message, naming the parameter and its limit. Set only on refused: an unreachable outcome carries no message, because the failure is ours and says nothing about the values that were sent.
"temperature: range: 0..1"