curl -X PATCH https://api.60db.ai/judge/rubrics/{id} \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated after the Q3 rubric review"
}'
const response = await fetch('https://api.60db.ai/judge/rubrics/{id}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer your-api-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"description": "Updated after the Q3 rubric review"
}),
});
const data = await response.json();
import requests
response = requests.patch(
"https://api.60db.ai/judge/rubrics/{id}",
headers={
"Authorization": "Bearer your-api-key",
"Content-Type": "application/json",
},
json={
"description": "Updated after the Q3 rubric review"
},
)
data = response.json()
{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-4789-abcd-ef0123456789",
"name": "Docs sample 22592",
"description": "updated",
"model": "jev-latest",
"questions": {
"tone": {
"type": "choice",
"criteria": {
"unknown": "Unclear",
"dismissive": "Brushes off",
"professional": "Calm"
}
}
},
"question_count": 1,
"shared": false,
"is_mine": true,
"created_at": "2026-09-28T13:19:50.210Z",
"updated_at": "2026-09-28T13:19:50.340Z"
}
}
Judge
Update rubric
Patch a saved rubric — only the fields you send change
PATCH
/
judge
/
rubrics
/
{id}
curl -X PATCH https://api.60db.ai/judge/rubrics/{id} \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated after the Q3 rubric review"
}'
const response = await fetch('https://api.60db.ai/judge/rubrics/{id}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer your-api-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"description": "Updated after the Q3 rubric review"
}),
});
const data = await response.json();
import requests
response = requests.patch(
"https://api.60db.ai/judge/rubrics/{id}",
headers={
"Authorization": "Bearer your-api-key",
"Content-Type": "application/json",
},
json={
"description": "Updated after the Q3 rubric review"
},
)
data = response.json()
{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-4789-abcd-ef0123456789",
"name": "Docs sample 22592",
"description": "updated",
"model": "jev-latest",
"questions": {
"tone": {
"type": "choice",
"criteria": {
"unknown": "Unclear",
"dismissive": "Brushes off",
"professional": "Calm"
}
}
},
"question_count": 1,
"shared": false,
"is_mine": true,
"created_at": "2026-09-28T13:19:50.210Z",
"updated_at": "2026-09-28T13:19:50.340Z"
}
}
Update a rubric in place. Only the fields present in the body are touched — omitting
model leaves the stored model alone rather than resetting it to a default.
Request
Headers
Bearer token — your standard 60db API key (
sk_…), or a user JWT. There is no separate Judge credential.Path parameters
Body
At least one field is required.Response
Errors
| Status | Meaning |
|---|---|
400 | Empty body, or invalid questions. |
403 | Not your rubric (and you are not owner/admin), or shared: true without the right role. |
404 | No such rubric. |
409 | The new name is already taken. |
Example
curl -X PATCH https://api.60db.ai/judge/rubrics/{id} \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"description": "Updated after the Q3 rubric review"
}'
const response = await fetch('https://api.60db.ai/judge/rubrics/{id}', {
method: 'PATCH',
headers: {
'Authorization': 'Bearer your-api-key',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"description": "Updated after the Q3 rubric review"
}),
});
const data = await response.json();
import requests
response = requests.patch(
"https://api.60db.ai/judge/rubrics/{id}",
headers={
"Authorization": "Bearer your-api-key",
"Content-Type": "application/json",
},
json={
"description": "Updated after the Q3 rubric review"
},
)
data = response.json()
{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-4789-abcd-ef0123456789",
"name": "Docs sample 22592",
"description": "updated",
"model": "jev-latest",
"questions": {
"tone": {
"type": "choice",
"criteria": {
"unknown": "Unclear",
"dismissive": "Brushes off",
"professional": "Calm"
}
}
},
"question_count": 1,
"shared": false,
"is_mine": true,
"created_at": "2026-09-28T13:19:50.210Z",
"updated_at": "2026-09-28T13:19:50.340Z"
}
}