Tree BG 1
Tree
Tree
TreeLeaves
TreeLeaves
Cat IdleGrassGrassRockRock

Beta Observability Campaigns Endpoints

(beta) Create and manage evaluation campaigns.

Get all campaigns

GET /v1/observability/campaigns

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.campaigns.list(page_size=50, page=1)

    # Handle response
    print(res)

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

200

{
  "campaigns": {
    "count": 87
  }
}

Create and start a new campaign

POST /v1/observability/campaigns

201

Successful Response

created_at
*date-time
deleted_at
*date-time|null
description
*string
id
*string
max_nb_events
*integer
name
*string
owner_id
*string
search_params
*FilterPayload
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.campaigns.create(search_params={
        "filters": {
            "field": "<value>",
            "op": "lt",
            "value": "<value>",
        },
    }, judge_id="9b501b9f-3525-44a7-a51a-5352679be9ed", name="<value>", description="shakily triangular scotch requirement whether once oh", max_nb_events=232889)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/campaigns \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "description": "ipsum eiusmod",
  "judge_id": "consequat do",
  "max_nb_events": 87,
  "name": "reprehenderit ut dolore",
  "search_params": {
    "filters": null
  }
}'

201

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

Get campaign by id

GET /v1/observability/campaigns/{campaign_id}

200

Successful Response

created_at
*date-time
deleted_at
*date-time|null
description
*string
id
*string
max_nb_events
*integer
name
*string
owner_id
*string
search_params
*FilterPayload
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.campaigns.fetch(campaign_id="fd7945d6-00e2-4852-9054-bcbb968d7f98")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/campaigns/{campaign_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",
  "judge": {
    "created_at": "2025-10-07T20:56:01.974Z",
    "deleted_at": null,
    "description": "reprehenderit ut dolore",
    "id": "occaecat dolor sit",
    "instructions": "nostrud",
    "model_name": "aute aliqua aute commodo",
    "name": "irure",
    "output": {
      "options": [
        {
          "description": "dolor",
          "value": "sunt"
        }
      ]
    },
    "owner_id": "nisi minim commodo irure minim",
    "tools": [
      "do do sint mollit"
    ],
    "updated_at": "2025-10-07T20:56:01.974Z",
    "workspace_id": "occaecat"
  },
  "max_nb_events": 87,
  "name": "fugiat",
  "owner_id": "non nisi proident Lorem",
  "search_params": {
    "filters": null
  },
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "nostrud anim"
}

Delete a campaign

DELETE /v1/observability/campaigns/{campaign_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.campaigns.delete(campaign_id="90e07b45-8cf7-4081-8558-a786779e039d")

    # Use the SDK ...

curl https://api.mistral.ai/v1/observability/campaigns/{campaign_id} \
 -X DELETE \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json'

Get campaign status by campaign id

GET /v1/observability/campaigns/{campaign_id}/status

200

Successful Response

status
*"RUNNING"|"COMPLETED"|"FAILED"|"CANCELED"|"TERMINATED"|"CONTINUED_AS_NEW"|"TIMED_OUT"|"UNKNOWN"

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.campaigns.fetch_status(campaign_id="4b1dd9a5-8dc9-48e1-bd11-29443e959902")

    # Handle response
    print(res)

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

200

{
  "status": "RUNNING"
}

Get event ids that were selected by the given campaign

GET /v1/observability/campaigns/{campaign_id}/selected-events

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.campaigns.list_events(campaign_id="305b5e46-a650-4d8a-8b5b-d23ef90ec831", page_size=50, page=1)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/campaigns/{campaign_id}/selected-events \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "completion_events": {
    "count": 87
  }
}