curl -X GET https://api.60db.ai/judge/models \
-H "Authorization: Bearer your-api-key"
const response = await fetch('https://api.60db.ai/judge/models', {
method: 'GET',
headers: {
'Authorization': 'Bearer your-api-key',
},
});
const data = await response.json();
import requests
response = requests.get(
"https://api.60db.ai/judge/models",
headers={
"Authorization": "Bearer your-api-key",
},
)
data = response.json()
{
"success": true,
"data": {
"models": [
{
"name": "jev-latest",
"description": "Alias for the current decision model",
"release_date": "2026-09-01"
},
{
"name": "60db-decision-model-v1",
"description": "Pinned local classifier",
"release_date": "2026-09-01"
},
{
"name": "60db-judge-model-v1",
"description": "Long-form rubric judging",
"release_date": "2026-09-01"
}
],
"cached": true
}
}
Judge
List models
Model names the evaluate endpoint accepts on this deployment
GET
/
judge
/
models
curl -X GET https://api.60db.ai/judge/models \
-H "Authorization: Bearer your-api-key"
const response = await fetch('https://api.60db.ai/judge/models', {
method: 'GET',
headers: {
'Authorization': 'Bearer your-api-key',
},
});
const data = await response.json();
import requests
response = requests.get(
"https://api.60db.ai/judge/models",
headers={
"Authorization": "Bearer your-api-key",
},
)
data = response.json()
{
"success": true,
"data": {
"models": [
{
"name": "jev-latest",
"description": "Alias for the current decision model",
"release_date": "2026-09-01"
},
{
"name": "60db-decision-model-v1",
"description": "Pinned local classifier",
"release_date": "2026-09-01"
},
{
"name": "60db-judge-model-v1",
"description": "Long-form rubric judging",
"release_date": "2026-09-01"
}
],
"cached": true
}
}
The models
POST /judge/evaluate will accept.
Do not hardcode these names. The list is the deployment’s, not a constant — it changes when the judge service changes. Responses are cached for 5 minutes, so polling it to populate a picker is free.
Request
Headers
string
required
Bearer token — your standard 60db API key (
sk_…), or a user JWT. There is no separate Judge credential.Response
array
Each entry has
name, description and release_date. Aliases such as jev-latest resolve server-side to a versioned id, which is what the evaluate response reports back as model.boolean
Whether this response came from the 5-minute cache.
Example
curl -X GET https://api.60db.ai/judge/models \
-H "Authorization: Bearer your-api-key"
const response = await fetch('https://api.60db.ai/judge/models', {
method: 'GET',
headers: {
'Authorization': 'Bearer your-api-key',
},
});
const data = await response.json();
import requests
response = requests.get(
"https://api.60db.ai/judge/models",
headers={
"Authorization": "Bearer your-api-key",
},
)
data = response.json()
{
"success": true,
"data": {
"models": [
{
"name": "jev-latest",
"description": "Alias for the current decision model",
"release_date": "2026-09-01"
},
{
"name": "60db-decision-model-v1",
"description": "Pinned local classifier",
"release_date": "2026-09-01"
},
{
"name": "60db-judge-model-v1",
"description": "Long-form rubric judging",
"release_date": "2026-09-01"
}
],
"cached": true
}
}