---
title: "Update a pipeline"
method: PUT
path: "/v1/observability/pipelines/{pipeline_id}"
tags: ["beta.observability.evaluations"]
---

# Update a pipeline

`PUT /v1/observability/pipelines/{pipeline_id}`

## Request

- Base URL: `https://api.mistral.ai`
- URL: `https://api.mistral.ai/v1/observability/pipelines/{pipeline_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/mistral/apis/mistral-ai-api/docs/v1/observability/pipelines/:pipeline_id/put.ts> (a function with typed inputs; its response is checked against the schema)

Update a pipeline

## Path parameters

- `pipeline_id` string, uuid, required

## Request body

- UpdatePipelineRequest
  - `name` string
  - `description` string, nullable
  - `selectors` PipelineConfigSelector[]
    - `source_kind` 'span' | 'log' | 'metric', required
    - `filter` string, nullable
  - `definitions` LlmJudgeReference[]
    - `slug` string, required
    - `mapping` object
    - `sampling` union
      - ProbabilisticSampling
        - `type` 'probabilistic'
        - `percentage` number, required
      - AttributeHashSampling
        - `type` 'attribute_hash'
        - `attribute` string, required
        - `percentage` number, required
  - `enabled` boolean

## Response `200`

Successful Response

- Pipeline: Pipeline response schema. Pipelines are hard-deleted — no deleted_at field.
  - `id` string, uuid, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `workspace_id` string, uuid, required
  - `name` string, required
  - `slug` string, required
  - `description` string, nullable, required
  - `selectors` PipelineConfigSelector[], required
    - `source_kind` 'span' | 'log' | 'metric', required
    - `filter` string, nullable
  - `enabled` boolean, required
  - `creator_id` string, uuid, nullable, required
  - `pipeline_configs` PipelineConfig[], required
    - `id` string, uuid, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `deleted_at` string, date-time, nullable, required
    - `scope` 'workspace' | 'shared', required
    - `workspace_id` string, uuid, required
    - `name` string, required
    - `slug` string, required
    - `pipeline_kind` 'detection-v1' | 'moderation-v1' | 'judge-v1' | 'export-v1', required
    - `selectors` PipelineConfigSelector[], required
      - `source_kind` 'span' | 'log' | 'metric', required
      - `filter` string, nullable
    - `sampling` union
      - ProbabilisticSampling
        - `type` 'probabilistic'
        - `percentage` number, required
      - AttributeHashSampling
        - `type` 'attribute_hash'
        - `attribute` string, required
        - `percentage` number, required
    - `enabled` boolean, required
    - `definition` union, required
      - DetectionDefinitionV1
        - `target_attributes` string[], required
        - `patterns` DetectionPattern[], required
          - `name` string, required
          - `regex` string, required
          - `category` string, required
          - `confidence` string, required
      - ModerationDefinitionV1
        - `model` string
        - `target_attributes` string[]
      - JudgeDefinitionV1: The fully materialized LLM judge behavior stored in a pipeline config.
        - `model` string, required
        - `prompt` string, required
        - `temperature` number, nullable
        - `top_p` number, nullable
        - `max_tokens` integer, nullable
        - `random_seed` integer, nullable
        - `result_spec` union, required
          - EvaluationBooleanResultSpec
            - `type` 'boolean'
          - EvaluationCategoricalResultSpec
            - `type` 'categorical'
            - `labels` string[], required
          - EvaluationNumericResultSpec
            - `type` 'numeric'
            - `min` number, required
            - `max` number, required
        - `mapping` object
        - `use_cache` boolean
      - ExportDefinitionV1
        - `destination` OTLPDestination, required
          - `protocol` string, required
          - `endpoint` string, required
          - `insecure` boolean
          - `headers` object
    - `scorer_slug` string, nullable
    - `scorer_version` integer, nullable

## Other responses

- `400`: Bad Request - Invalid request parameters or data
- `404`: Not Found - Resource does not exist
- `408`: Request Timeout - Operation timed out
- `409`: Conflict - Resource conflict
- `422`: Unprocessable Entity - Validation error

## Changes

- **2026-10-15** `f42449e21ee5`: 2 info
  - added the optional property `pipeline_configs/items/scorer_slug` to the response with the `200` status
  - added the optional property `pipeline_configs/items/scorer_version` to the response with the `200` status
- **2026-10-12** `6c349f3bdef6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mistral/apis/mistral-ai-api/changes/v1/observability/pipelines/:pipeline_id/put.md)

---

[API](https://skmtc.dev/mistral/apis/mistral-ai-api.md) - [All operations](https://skmtc.dev/mistral/apis/mistral-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mistral/apis/mistral-ai-api/revisions/08a585fb75bc?raw)
