












Beta Observability Judges Endpoints












Examples
Real world code examples
Get judges with optional filtering and search
GET /v1/observability/judges
200
Successful Response
Playground
Test the endpoints live
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.observability.judges.list(page_size=50, page=1)
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.observability.judges.list(page_size=50, page=1)
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/judges \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/observability/judges \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"judges": {
"count": 87
}
}{
"judges": {
"count": 87
}
}Create a new judge
POST /v1/observability/judges
description
instructions
model_name
name
tools
201
Successful Response
base_revision
created_at
deleted_at
description
down_revision
id
instructions
model_name
name
owner_id
tools
up_revision
updated_at
workspace_id
Playground
Test the endpoints live
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.observability.judges.create(name="<value>", description="border freely down whenever broadly whenever restructure catalyze after", model_name="<value>", output={
"type": "REGRESSION",
"min": 0,
"min_description": "<value>",
"max": 1,
"max_description": "<value>",
}, instructions="<value>", tools=[
"<value 1>",
"<value 2>",
])
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.observability.judges.create(name="<value>", description="border freely down whenever broadly whenever restructure catalyze after", model_name="<value>", output={
"type": "REGRESSION",
"min": 0,
"min_description": "<value>",
"max": 1,
"max_description": "<value>",
}, instructions="<value>", tools=[
"<value 1>",
"<value 2>",
])
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/judges \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"description": "My Judge description.",
"instructions": "Evaluate the response.",
"model_name": "mistral-small-latest",
"name": "My Judge",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"tools": [
"approved"
]
}'curl https://api.mistral.ai/v1/observability/judges \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"description": "My Judge description.",
"instructions": "Evaluate the response.",
"model_name": "mistral-small-latest",
"name": "My Judge",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"tools": [
"approved"
]
}'201
{
"created_at": "2025-12-17T10:25:07.818693Z",
"deleted_at": null,
"description": "My resource description.",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"instructions": "Evaluate the response.",
"model_name": "mistral-small-latest",
"name": "My resource",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"owner_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"tools": [
"approved"
],
"updated_at": "2025-12-17T10:41:03.469341Z",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}{
"created_at": "2025-12-17T10:25:07.818693Z",
"deleted_at": null,
"description": "My resource description.",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"instructions": "Evaluate the response.",
"model_name": "mistral-small-latest",
"name": "My resource",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"owner_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"tools": [
"approved"
],
"updated_at": "2025-12-17T10:41:03.469341Z",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}Get judge by id
GET /v1/observability/judges/{judge_id}
judge_id
200
Successful Response
base_revision
created_at
deleted_at
description
down_revision
id
instructions
model_name
name
owner_id
tools
up_revision
updated_at
workspace_id
Playground
Test the endpoints live
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.observability.judges.fetch(judge_id="19ae5cf8-2ade-4a40-b9d2-730aaebe8429")
# Handle response
print(res)
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
res = mistral.beta.observability.judges.fetch(judge_id="19ae5cf8-2ade-4a40-b9d2-730aaebe8429")
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/judges/{judge_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/observability/judges/{judge_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"created_at": "2025-12-17T10:25:07.818693Z",
"deleted_at": null,
"description": "My resource description.",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"instructions": "Evaluate the response.",
"model_name": "mistral-small-latest",
"name": "My resource",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"owner_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"tools": [
"approved"
],
"updated_at": "2025-12-17T10:41:03.469341Z",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}{
"created_at": "2025-12-17T10:25:07.818693Z",
"deleted_at": null,
"description": "My resource description.",
"id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"instructions": "Evaluate the response.",
"model_name": "mistral-small-latest",
"name": "My resource",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"owner_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"tools": [
"approved"
],
"updated_at": "2025-12-17T10:41:03.469341Z",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}Update a judge
PUT /v1/observability/judges/{judge_id}
judge_id
description
instructions
model_name
name
tools
Playground
Test the endpoints live
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
mistral.beta.observability.judges.update(judge_id="9f28c7db-1fb7-4e1c-b137-d7039561ddb7", name="<value>", description="noteworthy and unless", model_name="<value>", output={
"type": "REGRESSION",
"min": 0,
"min_description": "<value>",
"max": 1,
"max_description": "<value>",
}, instructions="<value>", tools=[])
# Use the SDK ...
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
mistral.beta.observability.judges.update(judge_id="9f28c7db-1fb7-4e1c-b137-d7039561ddb7", name="<value>", description="noteworthy and unless", model_name="<value>", output={
"type": "REGRESSION",
"min": 0,
"min_description": "<value>",
"max": 1,
"max_description": "<value>",
}, instructions="<value>", tools=[])
# Use the SDK ...
curl https://api.mistral.ai/v1/observability/judges/{judge_id} \
-X PUT \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"description": "Checks whether the answer is grounded in the retrieved context.",
"instructions": "Score the response from 1 to 5 based on factual accuracy and faithfulness to the sources.",
"model_name": "mistral-large-latest",
"name": "Faithfulness",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"tools": [
"web_search"
]
}'curl https://api.mistral.ai/v1/observability/judges/{judge_id} \
-X PUT \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"description": "Checks whether the answer is grounded in the retrieved context.",
"instructions": "Score the response from 1 to 5 based on factual accuracy and faithfulness to the sources.",
"model_name": "mistral-large-latest",
"name": "Faithfulness",
"output": {
"options": [
{
"description": "My Judge",
"value": "approved"
}
]
},
"tools": [
"web_search"
]
}'Delete a judge
DELETE /v1/observability/judges/{judge_id}
judge_id
Playground
Test the endpoints live
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
mistral.beta.observability.judges.delete(judge_id="80deecde-e10f-409c-a13a-c242d3760f6e")
# Use the SDK ...
from mistralai.client import Mistral
import os
with Mistral(
api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:
mistral.beta.observability.judges.delete(judge_id="80deecde-e10f-409c-a13a-c242d3760f6e")
# Use the SDK ...
curl https://api.mistral.ai/v1/observability/judges/{judge_id} \
-X DELETE \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json'curl https://api.mistral.ai/v1/observability/judges/{judge_id} \
-X DELETE \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json'Run a saved judge on a conversation
POST /v1/observability/judges/{judge_id}/live-judging
judge_id
messages
properties
200
Successful Response
analysis
answer
Playground
Test the endpoints live
curl https://api.mistral.ai/v1/observability/judges/{judge_id}/live-judging \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"messages": [
[
null
]
]
}'curl https://api.mistral.ai/v1/observability/judges/{judge_id}/live-judging \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{
"messages": [
[
null
]
]
}'200
{
"analysis": "Example analysis.",
"answer": "Example answer."
}{
"analysis": "Example analysis.",
"answer": "Example answer."
}