Download OpenAPI Spec
Tree BG 1
Tree
Tree
TreeLeaves
TreeLeaves
Cat IdleGrassGrassRockRock

Workflows Executions Endpoints

Workflows API - executions.

Get Workflow Execution

GET /v1/workflows/executions/{execution_id}

Get Workflow Execution

200

Successful Response

deployment_name
string|null

The name of the deployment that ran this execution

end_time
*date-time|null

The end time of the workflow execution, if available

execution_id
*string

The ID of the workflow execution

parent_execution_id
string|null

The parent execution ID of the workflow execution

result
*any|null

The result of the workflow execution, if available

root_execution_id
*string

The root execution ID of the workflow execution

run_id
string|null

The unique run identifier (database UUID)

start_time
*date-time

The start time of the workflow execution

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

The status of the workflow execution

total_duration_ms
integer|null

The total duration of the trace in milliseconds

user_id
string|null

The ID of the user who triggered the execution

workflow_id
string|null

The ID of the workflow

workflow_name
*string

The name of the workflow

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.workflows.executions.getWorkflowExecution({
    executionId: "<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.workflows.executions.get_workflow_execution(execution_id="<id>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id} \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "end_time": null,
  "execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "result": null,
  "root_execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "start_time": "2025-12-17T10:25:07.818693Z",
  "status": "RUNNING",
  "workflow_name": "support-workflow"
}

Get Workflow Execution History

GET /v1/workflows/executions/{execution_id}/history

Get Workflow Execution History

200

Response Type
any

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.workflows.executions.getWorkflowExecutionHistory({
    executionId: "<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.workflows.executions.get_workflow_execution_history(execution_id="<id>", decode_payloads=True)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/history \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

null

Signal Workflow Execution

POST /v1/workflows/executions/{execution_id}/signals

Signal Workflow Execution

202

Successful Response

message
string

Default Value: "Signal accepted"

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.workflows.executions.signalWorkflowExecution({
    executionId: "<id>",
    signalInvocationBody: {
      name: "<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.workflows.executions.signal_workflow_execution(execution_id="<id>", name="<value>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/signals \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "name": "approve"
}'

202

{}

Query Workflow Execution

POST /v1/workflows/executions/{execution_id}/queries

Query Workflow Execution

200

Successful Response

query_name
*string
result
*any

The result of the Query workflow call

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.workflows.executions.queryWorkflowExecution({
    executionId: "<id>",
    queryInvocationBody: {
      name: "<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.workflows.executions.query_workflow_execution(execution_id="<id>", name="<value>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/queries \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "name": "get_progress"
}'

200

{
  "query_name": "status",
  "result": null
}

Terminate Workflow Execution

POST /v1/workflows/executions/{execution_id}/terminate

Terminate Workflow Execution

Playground

Test the endpoints live

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  await mistral.workflows.executions.terminateWorkflowExecution({
    executionId: "<id>",
  });


}

run();
from mistralai.client import Mistral
import os


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

    mistral.workflows.executions.terminate_workflow_execution(execution_id="<id>")

    # Use the SDK ...

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/terminate \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json'

Batch Terminate Workflow Executions

POST /v1/workflows/executions/terminate

Batch Terminate Workflow Executions

200

Successful Response

Mapping of execution_id to result with status and optional error message

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.workflows.executions.batchTerminateWorkflowExecutions({
    executionIds: [
      "<value 1>",
      "<value 2>",
    ],
  });

  console.log(result);
}

run();
from mistralai.client import Mistral
import os


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

    res = mistral.workflows.executions.batch_terminate_workflow_executions(execution_ids=[
        "<value 1>",
        "<value 2>",
    ])

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/terminate \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "execution_ids": [
    "approved"
  ]
}'

200

{}

Cancel Workflow Execution

POST /v1/workflows/executions/{execution_id}/cancel

Cancel Workflow Execution

Playground

Test the endpoints live

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  await mistral.workflows.executions.cancelWorkflowExecution({
    executionId: "<id>",
  });


}

run();
from mistralai.client import Mistral
import os


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

    mistral.workflows.executions.cancel_workflow_execution(execution_id="<id>")

    # Use the SDK ...

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/cancel \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json'

Batch Cancel Workflow Executions

POST /v1/workflows/executions/cancel

Batch Cancel Workflow Executions

200

Successful Response

Mapping of execution_id to result with status and optional error message

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.workflows.executions.batchCancelWorkflowExecutions({
    executionIds: [],
  });

  console.log(result);
}

run();
from mistralai.client import Mistral
import os


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

    res = mistral.workflows.executions.batch_cancel_workflow_executions(execution_ids=[])

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/cancel \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "execution_ids": [
    "approved"
  ]
}'

200

{}

Reset Workflow

POST /v1/workflows/executions/{execution_id}/reset

Reset Workflow

Playground

Test the endpoints live

import { Mistral } from "@mistralai/mistralai";

const mistral = new Mistral({
  apiKey: "MISTRAL_API_KEY",
});

async function run() {
  await mistral.workflows.executions.resetWorkflow({
    executionId: "<id>",
    resetInvocationBody: {
      eventId: 24149,
    },
  });


}

run();
from mistralai.client import Mistral
import os


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

    mistral.workflows.executions.reset_workflow(execution_id="<id>", event_id=24149, exclude_signals=False, exclude_updates=False)

    # Use the SDK ...

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/reset \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "event_id": 87
}'

Update Workflow Execution

POST /v1/workflows/executions/{execution_id}/updates

Update Workflow Execution

200

Successful Response

result
*any

The result of the Update workflow call

update_name
*string

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.workflows.executions.updateWorkflowExecution({
    executionId: "<id>",
    updateInvocationBody: {
      name: "<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.workflows.executions.update_workflow_execution(execution_id="<id>", name="<value>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/updates \
 -X POST \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE' \
 -H 'Content-Type: application/json' \
 -d '{
  "name": "status_update"
}'

200

{
  "result": null,
  "update_name": "status_update"
}

Get Workflow Execution Trace Info

GET /v1/workflows/executions/{execution_id}/trace/info

Get Workflow Execution Trace Info

200

Successful Response

has_trace_data
boolean

Default Value: false

Whether trace data is available in the trace backend for this execution

otel_trace_id
string|null

The ID of the trace, if available

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.workflows.executions.getWorkflowExecutionTraceInfo({
    executionId: "<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.workflows.executions.get_workflow_execution_trace_info(execution_id="<id>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/info \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{}

Get Workflow Execution Trace Otel

GET /v1/workflows/executions/{execution_id}/trace/otel

Get Workflow Execution Trace Otel

200

Successful Response

data_source
*string

The data source of the trace

deployment_name
string|null

The name of the deployment that ran this execution

end_time
*date-time|null

The end time of the workflow execution, if available

execution_id
*string

The ID of the workflow execution

otel_trace_data
TempoGetTraceResponse|null

Trace response in OpenTelemetry format.

This is the unified trace format used across all trace providers (Tempo, ClickHouse, etc.). Regardless of the underlying backend, all trace data is normalized to this Tempo-compatible OpenTelemetry format to ensure consistency in the API response structure.

otel_trace_id
string|null

The ID of the trace

parent_execution_id
string|null

The parent execution ID of the workflow execution

result
*any|null

The result of the workflow execution, if available

root_execution_id
*string

The root execution ID of the workflow execution

run_id
string|null

The unique run identifier (database UUID)

start_time
*date-time

The start time of the workflow execution

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

The status of the workflow execution

total_duration_ms
integer|null

The total duration of the trace in milliseconds

user_id
string|null

The ID of the user who triggered the execution

workflow_id
string|null

The ID of the workflow

workflow_name
*string

The name of the workflow

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.workflows.executions.getWorkflowExecutionTraceOtel({
    executionId: "<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.workflows.executions.get_workflow_execution_trace_otel(execution_id="<id>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/otel \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "data_source": "workflow-trace",
  "end_time": null,
  "execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "result": null,
  "root_execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "start_time": "2025-12-17T10:25:07.818693Z",
  "status": "RUNNING",
  "workflow_name": "support-workflow"
}

Get Workflow Execution Trace Summary

GET /v1/workflows/executions/{execution_id}/trace/summary

Get Workflow Execution Trace Summary

200

Successful Response

deployment_name
string|null

The name of the deployment that ran this execution

end_time
*date-time|null

The end time of the workflow execution, if available

execution_id
*string

The ID of the workflow execution

parent_execution_id
string|null

The parent execution ID of the workflow execution

result
*any|null

The result of the workflow execution, if available

root_execution_id
*string

The root execution ID of the workflow execution

run_id
string|null

The unique run identifier (database UUID)

The root span of the trace

start_time
*date-time

The start time of the workflow execution

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

The status of the workflow execution

total_duration_ms
integer|null

The total duration of the trace in milliseconds

user_id
string|null

The ID of the user who triggered the execution

workflow_id
string|null

The ID of the workflow

workflow_name
*string

The name of the workflow

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.workflows.executions.getWorkflowExecutionTraceSummary({
    executionId: "<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.workflows.executions.get_workflow_execution_trace_summary(execution_id="<id>")

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/summary \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "end_time": null,
  "execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "result": null,
  "root_execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "start_time": "2025-12-17T10:25:07.818693Z",
  "status": "RUNNING",
  "workflow_name": "support-workflow"
}

Get Workflow Execution Trace Events

GET /v1/workflows/executions/{execution_id}/trace/events

Get Workflow Execution Trace Events

200

Successful Response

deployment_name
string|null

The name of the deployment that ran this execution

end_time
*date-time|null

The end time of the workflow execution, if available

The events of the workflow execution

execution_id
*string

The ID of the workflow execution

parent_execution_id
string|null

The parent execution ID of the workflow execution

result
*any|null

The result of the workflow execution, if available

root_execution_id
*string

The root execution ID of the workflow execution

run_id
string|null

The unique run identifier (database UUID)

start_time
*date-time

The start time of the workflow execution

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

The status of the workflow execution

total_duration_ms
integer|null

The total duration of the trace in milliseconds

user_id
string|null

The ID of the user who triggered the execution

workflow_id
string|null

The ID of the workflow

workflow_name
*string

The name of the workflow

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.workflows.executions.getWorkflowExecutionTraceEvents({
    executionId: "<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.workflows.executions.get_workflow_execution_trace_events(execution_id="<id>", merge_same_id_events=False, include_internal_events=False)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/events \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "end_time": null,
  "execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "result": null,
  "root_execution_id": "019b2bd7-96e7-7219-8c0b-45a73da50088",
  "start_time": "2025-12-17T10:25:07.818693Z",
  "status": "RUNNING",
  "workflow_name": "support-workflow"
}

Stream

GET /v1/workflows/executions/{execution_id}/stream

Stream

200

Stream of Server-Sent Events (SSE)

ResponseBody

{object}

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.workflows.executions.stream({
    executionId: "<id>",
  });

  for await (const event of result) {
    console.log(event);
  }
}

run();
from mistralai.client import Mistral
import os


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

    res = mistral.workflows.executions.stream(execution_id="<id>")

    with res as event_stream:
        for event in event_stream:
            # handle event
            print(event, flush=True)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/stream \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

null

Get Workflow Execution Logs

GET /v1/workflows/executions/{execution_id}/logs

Retrieve logs for a workflow execution.

Use after/before/order on the first request to set the time range and sort order; for the next pages pass the cursor from the previous response (it remembers the range and order).

200

Successful Response

next_cursor
string|null

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.workflows.executions.getWorkflowExecutionLogs({
    executionId: "<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.workflows.executions.get_workflow_execution_logs(execution_id="<id>", order="asc", limit=50)

    # Handle response
    print(res)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/logs \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

{
  "results": [
    {
      "body": "ipsum eiusmod",
      "log_attributes": [
        "consequat do"
      ],
      "severity_text": "reprehenderit ut dolore",
      "span_id": "occaecat dolor sit",
      "timestamp": "2025-12-17T10:25:07.818693Z",
      "trace_id": "019b2bd7-96e7-7219-8c0b-45a73da50088"
    }
  ]
}

Stream Workflow Execution Logs

GET /v1/workflows/executions/{execution_id}/logs/stream

Stream logs for a workflow execution via SSE.

Resume cursor comes from the Last-Event-ID header or last_event_id query param (header wins) and takes precedence over after; omit all to tail from the execution start.

200

Stream of Server-Sent Events (SSE): log events carry an ExecutionLogRecord; error events carry a StreamError payload.

ResponseBody

{object}

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.workflows.executions.streamWorkflowExecutionLogs({
    executionId: "<id>",
  });

  for await (const event of result) {
    console.log(event);
  }
}

run();
from mistralai.client import Mistral
import os


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

    res = mistral.workflows.executions.stream_workflow_execution_logs(execution_id="<id>")

    with res as event_stream:
        for event in event_stream:
            # handle event
            print(event, flush=True)

curl https://api.mistral.ai/v1/workflows/executions/{execution_id}/logs/stream \
 -X GET \
 -H 'Authorization: Bearer YOUR_APIKEY_HERE'

200

null