












Beta Observability Traces Endpoints
(beta) Observability API - traces.












Examples
Real world code examples
Search traces
POST /v1/observability/traces/search#
Search traces
search_expression#
200
Successful Response
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.search({
tracesRequest: {},
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.search({
tracesRequest: {},
});
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.traces.search(page_size=50)
# 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.traces.search(page_size=50)
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/traces/search \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'curl https://api.mistral.ai/v1/observability/traces/search \
-X POST \
-H 'Authorization: Bearer YOUR_APIKEY_HERE' \
-H 'Content-Type: application/json' \
-d '{}'200
{
"traces": {}
}{
"traces": {}
}Get trace field definitions
GET /v1/observability/traces/fields#
Get trace field definitions
200
Successful Response
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getTraceFields();
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getTraceFields();
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.traces.get_trace_fields()
# 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.traces.get_trace_fields()
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/traces/fields \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/observability/traces/fields \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"field_definitions": [
{
"label": "approved",
"name": "My resource",
"supported_operators": [
"eq"
],
"type": "ENUM"
}
]
}{
"field_definitions": [
{
"label": "approved",
"name": "My resource",
"supported_operators": [
"eq"
],
"type": "ENUM"
}
]
}Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getTraceById({
traceId: "<id>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getTraceById({
traceId: "<id>",
});
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.traces.get_trace_by_id(trace_id="<id>")
# 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.traces.get_trace_by_id(trace_id="<id>")
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/traces/{trace_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/observability/traces/{trace_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"agent_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"agent_name": "support-assistant",
"cache_creation_input_tokens": 87,
"cache_read_input_tokens": 14,
"conversation_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"customer_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"duration_ns": 56,
"end_time": "2025-12-17T10:25:07.818693Z",
"environment": "nostrud",
"error_count": 91,
"evaluation_count": 32,
"first_turn_last_input_message": "aute aliqua aute commodo",
"first_turn_last_output_message": "irure",
"gen_ai_span_count": 78,
"input_tokens": 5,
"last_turn_last_input_message": "dolor",
"last_turn_last_output_message": "sunt",
"llm_call_count": 69,
"models_used": [
"nisi minim commodo irure minim"
],
"organization_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"output_tokens": 41,
"retrieval_count": 18,
"root_span_id": "occaecat",
"root_span_name": "fugiat",
"service_name": "workflow-worker",
"span_count": 74,
"start_time": "2025-12-17T10:25:07.818693Z",
"status_code": "Error",
"tool_call_count": 29,
"tools_used": [
"nostrud anim"
],
"trace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"user_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"workflow_name": "support-workflow",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}{
"agent_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"agent_name": "support-assistant",
"cache_creation_input_tokens": 87,
"cache_read_input_tokens": 14,
"conversation_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"customer_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"duration_ns": 56,
"end_time": "2025-12-17T10:25:07.818693Z",
"environment": "nostrud",
"error_count": 91,
"evaluation_count": 32,
"first_turn_last_input_message": "aute aliqua aute commodo",
"first_turn_last_output_message": "irure",
"gen_ai_span_count": 78,
"input_tokens": 5,
"last_turn_last_input_message": "dolor",
"last_turn_last_output_message": "sunt",
"llm_call_count": 69,
"models_used": [
"nisi minim commodo irure minim"
],
"organization_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"output_tokens": 41,
"retrieval_count": 18,
"root_span_id": "occaecat",
"root_span_name": "fugiat",
"service_name": "workflow-worker",
"span_count": 74,
"start_time": "2025-12-17T10:25:07.818693Z",
"status_code": "Error",
"tool_call_count": 29,
"tools_used": [
"nostrud anim"
],
"trace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"user_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"workflow_name": "support-workflow",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getTraceSpans({
traceId: "<id>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getTraceSpans({
traceId: "<id>",
});
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.traces.get_trace_spans(trace_id="<id>", page_size=50)
# 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.traces.get_trace_spans(trace_id="<id>", page_size=50)
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/traces/{trace_id}/spans \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/observability/traces/{trace_id}/spans \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"spans": {}
}{
"spans": {}
}Get options for a trace field
GET /v1/observability/traces/fields/{field_name}/options#
Get options for a trace field
200
Successful Response
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.fetchOptions({
fieldName: "<value>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.fetchOptions({
fieldName: "<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.traces.fetch_options(field_name="<value>")
# 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.traces.fetch_options(field_name="<value>")
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/traces/fields/{field_name}/options \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/observability/traces/fields/{field_name}/options \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"options": null
}{
"options": null
}Get span by id
GET /v1/observability/traces/{trace_id}/spans/{span_id}#
Get span by id
200
Successful Response
Playground
Test the endpoints live
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getSpanById({
traceId: "<id>",
spanId: "<id>",
});
console.log(result);
}
run();
import { Mistral } from "@mistralai/mistralai";
const mistral = new Mistral({
apiKey: "MISTRAL_API_KEY",
});
async function run() {
const result = await mistral.beta.observability.traces.getSpanById({
traceId: "<id>",
spanId: "<id>",
});
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.traces.get_span_by_id(trace_id="<id>", span_id="<id>")
# 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.traces.get_span_by_id(trace_id="<id>", span_id="<id>")
# Handle response
print(res)
curl https://api.mistral.ai/v1/observability/traces/{trace_id}/spans/{span_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'curl https://api.mistral.ai/v1/observability/traces/{trace_id}/spans/{span_id} \
-X GET \
-H 'Authorization: Bearer YOUR_APIKEY_HERE'200
{
"agent_description": "ipsum eiusmod",
"agent_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"agent_name": "support-assistant",
"agent_version": "occaecat dolor sit",
"conversation_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"customer_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"data_source_id": "irure",
"duration_ns": 87,
"end_time": "2025-12-17T10:25:07.818693Z",
"error_type": "dolor",
"input_messages": "sunt",
"operation_name": "nisi minim commodo irure minim",
"organization_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"output_messages": "occaecat",
"output_type": "fugiat",
"parent_span_id": "non nisi proident Lorem",
"prompt_name": "nostrud anim",
"provider_name": "exercitation aliqua sint",
"request_choice_count": 14,
"request_encoding_formats": [
"ut sint"
],
"request_frequency_penalty": null,
"request_max_tokens": 56,
"request_model": "dolor voluptate eu",
"request_presence_penalty": null,
"request_seed": 91,
"request_stop_sequences": [
"quis minim non magna quis"
],
"request_temperature": null,
"request_top_k": null,
"request_top_p": null,
"resource_attributes": [
"et voluptate"
],
"response_finish_reasons": [
"commodo labore aliqua ad"
],
"response_id": "elit culpa est non",
"response_model": "dolore aliqua eu",
"scope_name": "proident",
"scope_version": "anim eiusmod labore",
"service_name": "workflow-worker",
"span_attributes": [
"voluptate aliquip"
],
"span_id": "et excepteur dolore commodo id",
"span_kind": "in consectetur excepteur sint",
"span_name": "sunt amet",
"start_time": "2025-12-17T10:25:07.818693Z",
"status_code": "Error",
"status_message": "duis ea",
"system_instructions": "nisi laborum",
"tool_call_arguments": "cupidatat nulla velit",
"tool_call_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"tool_call_result": "velit qui velit ullamco",
"tool_definitions": "ad do deserunt exercitation",
"tool_name": "search",
"tool_type": "velit laboris fugiat",
"trace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"trace_state": "cillum culpa aute minim",
"usage_cache_creation_input_tokens": 32,
"usage_cache_read_input_tokens": 78,
"usage_input_tokens": 5,
"usage_output_tokens": 69,
"user_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"workflow_name": "support-workflow",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}{
"agent_description": "ipsum eiusmod",
"agent_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"agent_name": "support-assistant",
"agent_version": "occaecat dolor sit",
"conversation_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"customer_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"data_source_id": "irure",
"duration_ns": 87,
"end_time": "2025-12-17T10:25:07.818693Z",
"error_type": "dolor",
"input_messages": "sunt",
"operation_name": "nisi minim commodo irure minim",
"organization_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"output_messages": "occaecat",
"output_type": "fugiat",
"parent_span_id": "non nisi proident Lorem",
"prompt_name": "nostrud anim",
"provider_name": "exercitation aliqua sint",
"request_choice_count": 14,
"request_encoding_formats": [
"ut sint"
],
"request_frequency_penalty": null,
"request_max_tokens": 56,
"request_model": "dolor voluptate eu",
"request_presence_penalty": null,
"request_seed": 91,
"request_stop_sequences": [
"quis minim non magna quis"
],
"request_temperature": null,
"request_top_k": null,
"request_top_p": null,
"resource_attributes": [
"et voluptate"
],
"response_finish_reasons": [
"commodo labore aliqua ad"
],
"response_id": "elit culpa est non",
"response_model": "dolore aliqua eu",
"scope_name": "proident",
"scope_version": "anim eiusmod labore",
"service_name": "workflow-worker",
"span_attributes": [
"voluptate aliquip"
],
"span_id": "et excepteur dolore commodo id",
"span_kind": "in consectetur excepteur sint",
"span_name": "sunt amet",
"start_time": "2025-12-17T10:25:07.818693Z",
"status_code": "Error",
"status_message": "duis ea",
"system_instructions": "nisi laborum",
"tool_call_arguments": "cupidatat nulla velit",
"tool_call_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"tool_call_result": "velit qui velit ullamco",
"tool_definitions": "ad do deserunt exercitation",
"tool_name": "search",
"tool_type": "velit laboris fugiat",
"trace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
"trace_state": "cillum culpa aute minim",
"usage_cache_creation_input_tokens": 32,
"usage_cache_read_input_tokens": 78,
"usage_input_tokens": 5,
"usage_output_tokens": 69,
"user_id": "9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce",
"workflow_name": "support-workflow",
"workspace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
}