Tree BG 1
Tree
Tree
TreeLeaves
TreeLeaves
Cat IdleGrassGrassRockRock

Beta Observability Datasets Endpoints

(beta) Create, update, import, and export datasets.

List existing datasets

GET /v1/observability/datasets

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

    # Handle response
    print(res)

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

200

{
  "datasets": {
    "count": 87
  }
}

Create a new empty dataset

POST /v1/observability/datasets

201

Successful Response

created_at
*date-time
deleted_at
*date-time|null
description
*string
id
*string
name
*string
owner_id
*string
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.datasets.create(name="<value>", description="citizen whoever sustenance necessary vibrant openly")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "description": "ipsum eiusmod",
  "name": "consequat do"
}'

201

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "deleted_at": null,
  "description": "ipsum eiusmod",
  "id": "consequat do",
  "name": "reprehenderit ut dolore",
  "owner_id": "occaecat dolor sit",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "nostrud"
}

Get dataset by id

GET /v1/observability/datasets/{dataset_id}

200

Successful Response

created_at
*date-time
deleted_at
*date-time|null
description
*string
id
*string
name
*string
owner_id
*string
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.datasets.fetch(dataset_id="036fa362-e080-4fa5-beff-a334a70efb58")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_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",
  "name": "reprehenderit ut dolore",
  "owner_id": "occaecat dolor sit",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "nostrud"
}

Delete a dataset

DELETE /v1/observability/datasets/{dataset_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.datasets.delete(dataset_id="baf961a3-bb8e-4085-89ef-de9c5d8c4e77")

    # Use the SDK ...

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

Patch dataset

PATCH /v1/observability/datasets/{dataset_id}

200

Successful Response

created_at
*date-time
deleted_at
*date-time|null
description
*string
id
*string
name
*string
owner_id
*string
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.datasets.update(dataset_id="95be9afc-fc05-44a6-af9f-2362de1224f9")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id} \
 -X PATCH \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{}'

200

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "deleted_at": null,
  "description": "ipsum eiusmod",
  "id": "consequat do",
  "name": "reprehenderit ut dolore",
  "owner_id": "occaecat dolor sit",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "nostrud"
}

List existing records in the dataset

GET /v1/observability/datasets/{dataset_id}/records

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.datasets.list_records(dataset_id="444d2a88-e636-4bc0-ab6c-919bedaed112", page_size=50, page=1)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/records \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "records": {
    "count": 87
  }
}

Add a conversation to the dataset

POST /v1/observability/datasets/{dataset_id}/records

201

Successful Response

created_at
*date-time
dataset_id
*string
deleted_at
*date-time|null
id
*string
properties
*map<any>
source
*"EXPLORER"|"UPLOADED_FILE"|"DIRECT_INPUT"|"PLAYGROUND"
updated_at
*date-time

Playground

Test the endpoints live

from mistralai.client import Mistral, models
import os


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

    res = mistral.beta.observability.datasets.create_record(dataset_id="4c54ed13-1459-44e1-8696-1a6df06f7177", payload=models.ConversationPayload(
        messages=[
            {
                "key": "<value>",
            },
            {
                "key": "<value>",
                "key1": "<value>",
            },
        ],
    ), properties={
        "key": "<value>",
        "key1": "<value>",
        "key2": "<value>",
    })

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/records \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "payload": {
    "messages": [
      [
        null
      ]
    ]
  },
  "properties": [
    null
  ]
}'

201

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "dataset_id": "ipsum eiusmod",
  "deleted_at": null,
  "id": "consequat do",
  "payload": {
    "messages": [
      [
        null
      ]
    ]
  },
  "properties": [
    null
  ],
  "source": "EXPLORER",
  "updated_at": "2025-10-07T20:56:01.974Z"
}

Populate the dataset with a campaign

POST /v1/observability/datasets/{dataset_id}/imports/from-campaign

202

Successful Response

created_at
*date-time
creator_id
*string
dataset_id
*string
deleted_at
*date-time|null
id
*string
message
string|null
progress
integer|null
status
*"RUNNING"|"COMPLETED"|"FAILED"|"CANCELED"|"TERMINATED"|"CONTINUED_AS_NEW"|"TIMED_OUT"|"UNKNOWN"
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.datasets.import_from_campaign(dataset_id="306b5f31-e31c-4e06-9220-e3008c61bf1b", campaign_id="71a2e42d-7414-4fe6-89cb-44a2122b6f6b")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/imports/from-campaign \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "campaign_id": "ipsum eiusmod"
}'

202

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "creator_id": "ipsum eiusmod",
  "dataset_id": "consequat do",
  "deleted_at": null,
  "id": "reprehenderit ut dolore",
  "status": "RUNNING",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "occaecat dolor sit"
}

Populate the dataset with samples from the explorer

POST /v1/observability/datasets/{dataset_id}/imports/from-explorer

202

Successful Response

created_at
*date-time
creator_id
*string
dataset_id
*string
deleted_at
*date-time|null
id
*string
message
string|null
progress
integer|null
status
*"RUNNING"|"COMPLETED"|"FAILED"|"CANCELED"|"TERMINATED"|"CONTINUED_AS_NEW"|"TIMED_OUT"|"UNKNOWN"
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.datasets.import_from_explorer(dataset_id="ee1930e9-54f7-4c68-aa8a-40fe5d2a3485", completion_event_ids=[
        "<value 1>",
        "<value 2>",
        "<value 3>",
    ])

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/imports/from-explorer \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "completion_event_ids": [
    "ipsum eiusmod"
  ]
}'

202

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "creator_id": "ipsum eiusmod",
  "dataset_id": "consequat do",
  "deleted_at": null,
  "id": "reprehenderit ut dolore",
  "status": "RUNNING",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "occaecat dolor sit"
}

Populate the dataset with samples from an uploaded file

POST /v1/observability/datasets/{dataset_id}/imports/from-file

202

Successful Response

created_at
*date-time
creator_id
*string
dataset_id
*string
deleted_at
*date-time|null
id
*string
message
string|null
progress
integer|null
status
*"RUNNING"|"COMPLETED"|"FAILED"|"CANCELED"|"TERMINATED"|"CONTINUED_AS_NEW"|"TIMED_OUT"|"UNKNOWN"
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.datasets.import_from_file(dataset_id="1c96c925-cc58-4529-863d-9fe66a6f1924", file_id="<id>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/imports/from-file \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "file_id": "ipsum eiusmod"
}'

202

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "creator_id": "ipsum eiusmod",
  "dataset_id": "consequat do",
  "deleted_at": null,
  "id": "reprehenderit ut dolore",
  "status": "RUNNING",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "occaecat dolor sit"
}

Populate the dataset with samples from the playground

POST /v1/observability/datasets/{dataset_id}/imports/from-playground

202

Successful Response

created_at
*date-time
creator_id
*string
dataset_id
*string
deleted_at
*date-time|null
id
*string
message
string|null
progress
integer|null
status
*"RUNNING"|"COMPLETED"|"FAILED"|"CANCELED"|"TERMINATED"|"CONTINUED_AS_NEW"|"TIMED_OUT"|"UNKNOWN"
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.datasets.import_from_playground(dataset_id="5cb42584-5fcf-4837-997a-6a67c5e6900d", conversation_ids=[])

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/imports/from-playground \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "conversation_ids": [
    "ipsum eiusmod"
  ]
}'

202

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "creator_id": "ipsum eiusmod",
  "dataset_id": "consequat do",
  "deleted_at": null,
  "id": "reprehenderit ut dolore",
  "status": "RUNNING",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "occaecat dolor sit"
}

Populate the dataset with samples from another dataset

POST /v1/observability/datasets/{dataset_id}/imports/from-dataset

202

Successful Response

created_at
*date-time
creator_id
*string
dataset_id
*string
deleted_at
*date-time|null
id
*string
message
string|null
progress
integer|null
status
*"RUNNING"|"COMPLETED"|"FAILED"|"CANCELED"|"TERMINATED"|"CONTINUED_AS_NEW"|"TIMED_OUT"|"UNKNOWN"
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.datasets.import_from_dataset_records(dataset_id="ada96a08-d724-4e5c-9111-aaf1bdb7d588", dataset_record_ids=[
        "58fe798a-537b-4c61-9efc-d1d96d5d264a",
        "cfa1d197-deda-456e-906b-dd84dccfcd17",
    ])

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/imports/from-dataset \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "dataset_record_ids": [
    "ipsum eiusmod"
  ]
}'

202

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "creator_id": "ipsum eiusmod",
  "dataset_id": "consequat do",
  "deleted_at": null,
  "id": "reprehenderit ut dolore",
  "status": "RUNNING",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "occaecat dolor sit"
}

Export to the Files API and retrieve presigned URL to download the resulting JSONL file

GET /v1/observability/datasets/{dataset_id}/exports/to-jsonl

200

Successful Response

file_url
*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.datasets.export_to_jsonl(dataset_id="d521add6-d909-4a69-a460-cb880d87b773")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/exports/to-jsonl \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "file_url": "ipsum eiusmod"
}

Get status of a dataset import task

GET /v1/observability/datasets/{dataset_id}/tasks/{task_id}

200

Successful Response

created_at
*date-time
creator_id
*string
dataset_id
*string
deleted_at
*date-time|null
id
*string
message
string|null
progress
integer|null
status
*"RUNNING"|"COMPLETED"|"FAILED"|"CANCELED"|"TERMINATED"|"CONTINUED_AS_NEW"|"TIMED_OUT"|"UNKNOWN"
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.datasets.fetch_task(dataset_id="b64b504e-58a2-4d52-979b-e2634b301235", task_id="1713cde2-dea1-410d-851e-8cea964ffa14")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/tasks/{task_id} \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "created_at": "2025-10-07T20:56:01.974Z",
  "creator_id": "ipsum eiusmod",
  "dataset_id": "consequat do",
  "deleted_at": null,
  "id": "reprehenderit ut dolore",
  "status": "RUNNING",
  "updated_at": "2025-10-07T20:56:01.974Z",
  "workspace_id": "occaecat dolor sit"
}

List import tasks for the given dataset

GET /v1/observability/datasets/{dataset_id}/tasks

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.datasets.list_tasks(dataset_id="29903443-7f9c-42a6-9b6b-fc5cbef4191a", page_size=50, page=1)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/observability/datasets/{dataset_id}/tasks \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "tasks": {
    "count": 87
  }
}