API reference
Base URL: https://api.mistral.ai/v1/observability, with Authorization: Bearer $MISTRAL_API_KEY. Access is controlled by your workspace role; see Before you start.
Scorers
Scorers
| Method | Path | Notes |
|---|---|---|
POST | /scorers | Create. Returns 201 with the generated slug. |
GET | /scorers | List. q filters on slug, name, or description. Paginated (page, page_size). |
GET | /scorers/{scorer_slug} | Includes latest_version (version, config, variables). |
PATCH | /scorers/{scorer_slug} | Any of name, description, config. A changed config creates a new version. |
There is no delete. Body fields are described in Scorers.
Live evals (pipelines)
Live evals (pipelines)
| Method | Path | Notes |
|---|---|---|
POST | /pipelines | Create. Returns 201 with pipeline_configs[]. |
GET | /pipelines | List. q filters on name, enabled filters. Paginated (page, page_size). |
GET | /pipelines/{pipeline_id} | |
PUT | /pipelines/{pipeline_id} | Partial: send only the fields to change. Explicit null is rejected, except for description. |
DELETE | /pipelines/{pipeline_id} | 204. Hard delete. |
Body fields and update semantics are described in Live evals.
The response for a live eval:
{
"id": "018f1a2b-…",
"slug": "support-answers-1c2d3e4f",
"name": "Support answers",
"description": "…",
"enabled": true,
"selectors": [{ "source_kind": "span", "filter": "…" }],
"pipeline_configs": [
{
"slug": "helpfulness-1a2b3c4d-7b04d1aa",
"scorer_slug": "helpfulness-1a2b3c4d",
"scorer_version": 3,
"pipeline_kind": "judge-v1",
"sampling": { "type": "probabilistic", "percentage": 20 },
"definition": { "model": "…", "prompt": "…", "result_spec": { "…": "…" }, "mapping": { "…": "…" }, "use_cache": true },
"…": "…"
}
],
"creator_id": "…",
"created_at": "…",
"updated_at": "…"
}Results
Results
All results routes require a workspace role with access to observability traffic and take from and to as query parameters (default: the last hour, maximum: 750 hours).
| Method | Path | Body | Pagination |
|---|---|---|---|
POST | /spans/evaluations/search | search_expression | page_size, cursor |
POST | /spans/evaluations/search/latest | search_expression | page_size, cursor |
POST | /pipeline-results/search | pipeline_config_slugs (1–100), search_expression | page_size, cursor |
POST | /spans/evaluations/aggregate | metric, dimensions, time_dimension, search_expression, order_by, limit | — |
GET | /spans/evaluations/fields | — | — |
GET | /spans/evaluations/fields/{field_name}/options | — | — |
Response shapes are described in Reading results.
Errors
Errors
| Status | When |
|---|---|
| 400 | Invalid search_expression (syntax error or unknown field) or invalid Jinja2 template. |
| 403 | Access denied: your role lacks the permission, your organization isn't on the Enterprise tier or disabled observability, or you used a service account key to create a live eval. Ask your workspace administrator to check your role. |
| 404 | Unknown scorer slug or pipeline id in this workspace. |
| 409 | A live eval with the same name exists in the workspace, or a generated slug collided. Rename the live eval, or retry. |
| 422 | Validation: bad filter syntax, a mapping key that is not a scorer variable, source_kind other than span, a scorer name starting with a digit, a time window over the maximum, or from after to. |