Tree BG 1
Tree
Tree
TreeLeaves
TreeLeaves
Cat IdleGrassGrassRockRock

Beta Observability Judges Endpoints

(beta) Create, update, and manage judges for evaluating chat completions.

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)

curl https://api.mistral.ai/v1/observability/judges \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "judges": {
    "count": 87
  }
}

Create a new judge

POST /v1/observability/judges

201

Successful Response

base_revision
string|null
created_at
*date-time
deleted_at
*date-time|null
description
*string
down_revision
string|null
id
*string
instructions
*string
model_name
*string
name
*string
owner_id
*string
tools
*array<string>
up_revision
string|null
updated_at
*date-time
workspace_id
*string

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)

curl https://api.mistral.ai/v1/observability/judges \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "description": "ipsum eiusmod",
  "instructions": "consequat do",
  "model_name": "reprehenderit ut dolore",
  "name": "occaecat dolor sit",
  "output": {
    "options": [
      {
        "description": "nostrud",
        "value": "aute aliqua aute commodo"
      }
    ]
  },
  "tools": [
    "irure"
  ]
}'

201

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "deleted_at": null,
  "description": "ipsum eiusmod",
  "id": "consequat do",
  "instructions": "reprehenderit ut dolore",
  "model_name": "occaecat dolor sit",
  "name": "nostrud",
  "output": {
    "options": [
      {
        "description": "aute aliqua aute commodo",
        "value": "irure"
      }
    ]
  },
  "owner_id": "dolor",
  "tools": [
    "sunt"
  ],
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "nisi minim commodo irure minim"
}

Get judge by id

GET /v1/observability/judges/{judge_id}

200

Successful Response

base_revision
string|null
created_at
*date-time
deleted_at
*date-time|null
description
*string
down_revision
string|null
id
*string
instructions
*string
model_name
*string
name
*string
owner_id
*string
tools
*array<string>
up_revision
string|null
updated_at
*date-time
workspace_id
*string

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)

curl https://api.mistral.ai/v1/observability/judges/{judge_id} \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "deleted_at": null,
  "description": "ipsum eiusmod",
  "id": "consequat do",
  "instructions": "reprehenderit ut dolore",
  "model_name": "occaecat dolor sit",
  "name": "nostrud",
  "output": {
    "options": [
      {
        "description": "aute aliqua aute commodo",
        "value": "irure"
      }
    ]
  },
  "owner_id": "dolor",
  "tools": [
    "sunt"
  ],
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "nisi minim commodo irure minim"
}

Update a judge

PUT /v1/observability/judges/{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.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": "ipsum eiusmod",
  "instructions": "consequat do",
  "model_name": "reprehenderit ut dolore",
  "name": "occaecat dolor sit",
  "output": {
    "options": [
      {
        "description": "nostrud",
        "value": "aute aliqua aute commodo"
      }
    ]
  },
  "tools": [
    "irure"
  ]
}'

Delete a judge

DELETE /v1/observability/judges/{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 ...

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

200

Successful Response

analysis
*string
answer
*string|number

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
    ]
  ]
}'

200

{
  "analysis": "ipsum eiusmod",
  "answer": "consequat do"
}