La spec OpenAPI
Tree BG 1
Tree
Tree
TreeLeaves
TreeLeaves
Cat IdleGrassGrassRockRock

Événements de complétion de chat bêta

API d'observabilité (beta) - événements Chat completion.

Récupérer les événements de complétion de chat

POST /v1/observability/chat-completion-events/search#

Récupérer les événements de Chat completion

200

Réponse réussie

Playground

Testez les endpoints en direct

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  const result = await mistral.beta.observability.chatCompletionEvents.search({
    searchChatCompletionEventsRequest: {
      searchParams: {
        filters: null,
      },
    },
  });

  console.log(result);
}

run();
from mistralai.client import Mistral
import os


with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.observability.chat_completion_events.search(search_params={
        "filters": None,
    }, page_size=50)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/chat-completion-events/search \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "search_params": {
    "filters": null
  }
}'

200

{
  "completion_events": {}
}

Alternative à /search qui ne retourne que les identifiants et peut en retourner plusieurs à la fois

POST /v1/observability/chat-completion-events/search-ids#

Alternative à /search qui retourne uniquement les ID et qui peut retourner plusieurs ID en une seule fois

200

Réponse réussie

completion_event_ids#
*array<string>

Playground

Testez les endpoints en direct

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  const result = await mistral.beta.observability.chatCompletionEvents.searchIds({
    searchParams: {
      filters: {
        field: "<value>",
        op: "lt",
        value: "<value>",
      },
    },
  });

  console.log(result);
}

run();
from mistralai.client import Mistral
import os


with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.observability.chat_completion_events.search_ids(search_params={
        "filters": {
            "field": "<value>",
            "op": "lt",
            "value": "<value>",
        },
    })

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/chat-completion-events/search-ids \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "search_params": {
    "filters": null
  }
}'

200

{
  "completion_event_ids": [
    "approved"
  ]
}

Récupérer un événement de complétion de chat

GET /v1/observability/chat-completion-events/{event_id}#

Récupérer un événement de Chat completion

200

Réponse réussie

chat_transcription_events#
*array<ChatTranscriptionEvent>
correlation_id#
*string
created_at#
*date-time
enabled_tools#
*array<map<any>>
event_id#
*string
extra_fields#
*map<boolean|integer|number|string|date-time|array<string>|map<string>|null>
nb_input_tokens#
*integer
nb_messages#
*integer
nb_output_tokens#
*integer
request_messages#
*array<map<any>>
response_messages#
*array<map<any>>

Playground

Testez les endpoints en direct

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  const result = await mistral.beta.observability.chatCompletionEvents.fetch({
    eventId: "e79bf81b-b37f-425e-9dff-071a54592e44",
  });

  console.log(result);
}

run();
from mistralai.client import Mistral
import os


with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.observability.chat_completion_events.fetch(event_id="e79bf81b-b37f-425e-9dff-071a54592e44")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/chat-completion-events/{event_id} \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "chat_transcription_events": [
    {
      "audio_url": "https://example.com/audio.wav",
      "model": "mistral-small-latest",
      "response_message": [
        null
      ]
    }
  ],
  "correlation_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "created_at": "2025-12-17T10:25:07.818693Z",
  "enabled_tools": [
    [
      null
    ]
  ],
  "event_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "extra_fields": [
    null
  ],
  "nb_input_tokens": 87,
  "nb_messages": 14,
  "nb_output_tokens": 56,
  "request_messages": [
    [
      null
    ]
  ],
  "response_messages": [
    [
      null
    ]
  ]
}

Récupérer des événements de complétion de chat similaires

GET /v1/observability/chat-completion-events/{event_id}/similar-events#

Récupérer des événements de Chat completion similaires

200

Réponse réussie

Playground

Testez les endpoints en direct

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  const result = await mistral.beta.observability.chatCompletionEvents.fetchSimilarEvents({
    eventId: "b7be6e08-d068-45fc-b77a-966232e92fd6",
  });

  console.log(result);
}

run();
from mistralai.client import Mistral
import os


with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.observability.chat_completion_events.fetch_similar_events(event_id="b7be6e08-d068-45fc-b77a-966232e92fd6")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/chat-completion-events/{event_id}/similar-events \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "completion_events": {}
}

Exécuter un juge sur un événement en fonction des options données

POST /v1/observability/chat-completion-events/{event_id}/live-judging#

Exécuter Judge sur un événement en fonction des options fournies

200

Réponse réussie

analysis#
*string
answer#
*string|number

Playground

Testez les endpoints en direct

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  const result = await mistral.beta.observability.chatCompletionEvents.judge({
    eventId: "dfcd5582-1373-4de5-af51-987464da561c",
    judgeChatCompletionEventRequest: {
      judgeDefinition: {
        name: "<value>",
        description: "total plain self-confidence candid hungrily partial astride cruelly brr",
        modelName: "<value>",
        output: {
          type: "CLASSIFICATION",
          options: [
            {
              value: "<value>",
              description: "indeed insolence delightfully following",
            },
          ],
        },
        instructions: "<value>",
        tools: [],
      },
    },
  });

  console.log(result);
}

run();
from mistralai.client import Mistral
import os


with Mistral(
    api_key=os.getenv("MISTRAL_API_KEY", ""),
) as mistral:

    res = mistral.beta.observability.chat_completion_events.judge(event_id="dfcd5582-1373-4de5-af51-987464da561c", judge_definition={
        "name": "<value>",
        "description": "total plain self-confidence candid hungrily partial astride cruelly brr",
        "model_name": "<value>",
        "output": {
            "type": "CLASSIFICATION",
            "options": [
                {
                    "value": "<value>",
                    "description": "indeed insolence delightfully following",
                },
            ],
        },
        "instructions": "<value>",
        "tools": [],
    })

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/chat-completion-events/{event_id}/live-judging \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "judge_definition": {
    "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"
    ]
  }
}'

200

{
  "analysis": "Example analysis.",
  "answer": "Example answer."
}