curl --request POST \
--url https://melso.ai/api/runs/{runId}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://melso.ai/api/runs/{runId}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://melso.ai/api/runs/{runId}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://melso.ai/api/runs/{runId}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://melso.ai/api/runs/{runId}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://melso.ai/api/runs/{runId}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://melso.ai/api/runs/{runId}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"execution_owner_id": "<string>",
"worker_id": "<string>",
"task_id": "<string>",
"workspace_id": "<string>",
"status": "<string>",
"dispatched_at": "<string>",
"started_at": "<string>",
"completed_at": "<string>",
"result": "<unknown>",
"error": "<string>",
"attempt": 123,
"max_attempts": 123,
"created_at": "<string>",
"delivered_message_ids": [
"<string>"
],
"kind": "<string>",
"access": {
"method": "<string>",
"reason": "<string>",
"account_id": "<string>",
"provider": "<string>",
"label": "<string>",
"email": "<string>"
},
"model": "<string>",
"thinking_level": "<string>",
"service_tier": "<string>",
"execution_receipt": {
"harness": "<string>",
"model": "<string>",
"thinking_level": "<string>",
"service_tier": "<string>",
"worker_id": "<string>"
},
"failure_reason": "<string>",
"parent_run_id": "<string>",
"work_dir": "<string>",
"relative_work_dir": "<string>",
"branch_name": "<string>",
"trigger_message_id": "<string>",
"coalesced_message_ids": [
"<string>"
],
"trigger_summary": "<string>",
"automation_invocation_id": "<string>",
"interaction_continuation": {
"type": "<string>",
"request_id": "<string>",
"kind": "<string>",
"status": "<string>",
"source_run_id": "<string>",
"title": "<string>",
"message": "<string>",
"payload": "<unknown>",
"response": "<unknown>",
"audit_text": "<string>",
"response_actor_type": "<string>",
"response_actor_id": "<string>",
"resolved_at": "<string>",
"resume_provider": "<string>",
"resume_session_id": "<string>",
"tool_call_id": "<string>",
"tool_name": "<string>",
"tool_result": "<unknown>"
},
"attribution": {
"source": "<string>",
"precise": true,
"initiator": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"avatar_url": "<string>"
},
"originator": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"avatar_url": "<string>"
},
"evidence": {
"kind": "<string>",
"ref_id": "<string>"
},
"automation_version_id": "<string>",
"delegated_from_run_id": "<string>",
"retry_of_run_id": "<string>",
"rerun_of_run_id": "<string>"
},
"usage": [
{
"model": "<string>",
"input_tokens": 123,
"output_tokens": 123,
"cache_read_tokens": 123,
"cache_write_tokens": 123,
"provider": "<string>",
"cost_usd_ticks": 123
}
],
"billed": {
"model_usd_ticks": "<string>",
"estimated": true
},
"cancelled_input": {
"task_id": "<string>",
"message_id": "<string>",
"content": "<string>",
"restore_to_input": true,
"attachments": [
{
"id": "<string>",
"workspace_id": "<string>",
"task_id": "<string>",
"message_id": "<string>",
"run_id": "<string>",
"uploader_type": "<string>",
"uploader_id": "<string>",
"filename": "<string>",
"url": "<string>",
"download_url": "<string>",
"markdown_url": "<string>",
"content_type": "<string>",
"size_bytes": 123,
"created_at": "<string>",
"attachment_download_url": "<string>"
}
]
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Cancel run
Workspace member with access to this resource.
Request: Path: Run UUID. Query parameters, not a JSON body: optional task_id=<Task UUID> rejects a Run from another Task; cancelling a queued follow-up uses expected_status=queued plus task_id and queue_action=edit|remove.
Response: RunResponse plus optional cancelled_input:{task_id:UUID,message_id:UUID,content:string,restore_to_input:boolean,attachments:object[]}. Cancelling a Run that already ended returns it unchanged.
Status: 200; 400 invalid query parameters; 404 unknown Run; 409 mismatched Task or a follow-up that is no longer queued. Authentication and resource-access errors follow Overview.
curl --request POST \
--url https://melso.ai/api/runs/{runId}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "https://melso.ai/api/runs/{runId}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://melso.ai/api/runs/{runId}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://melso.ai/api/runs/{runId}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://melso.ai/api/runs/{runId}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://melso.ai/api/runs/{runId}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://melso.ai/api/runs/{runId}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"execution_owner_id": "<string>",
"worker_id": "<string>",
"task_id": "<string>",
"workspace_id": "<string>",
"status": "<string>",
"dispatched_at": "<string>",
"started_at": "<string>",
"completed_at": "<string>",
"result": "<unknown>",
"error": "<string>",
"attempt": 123,
"max_attempts": 123,
"created_at": "<string>",
"delivered_message_ids": [
"<string>"
],
"kind": "<string>",
"access": {
"method": "<string>",
"reason": "<string>",
"account_id": "<string>",
"provider": "<string>",
"label": "<string>",
"email": "<string>"
},
"model": "<string>",
"thinking_level": "<string>",
"service_tier": "<string>",
"execution_receipt": {
"harness": "<string>",
"model": "<string>",
"thinking_level": "<string>",
"service_tier": "<string>",
"worker_id": "<string>"
},
"failure_reason": "<string>",
"parent_run_id": "<string>",
"work_dir": "<string>",
"relative_work_dir": "<string>",
"branch_name": "<string>",
"trigger_message_id": "<string>",
"coalesced_message_ids": [
"<string>"
],
"trigger_summary": "<string>",
"automation_invocation_id": "<string>",
"interaction_continuation": {
"type": "<string>",
"request_id": "<string>",
"kind": "<string>",
"status": "<string>",
"source_run_id": "<string>",
"title": "<string>",
"message": "<string>",
"payload": "<unknown>",
"response": "<unknown>",
"audit_text": "<string>",
"response_actor_type": "<string>",
"response_actor_id": "<string>",
"resolved_at": "<string>",
"resume_provider": "<string>",
"resume_session_id": "<string>",
"tool_call_id": "<string>",
"tool_name": "<string>",
"tool_result": "<unknown>"
},
"attribution": {
"source": "<string>",
"precise": true,
"initiator": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"avatar_url": "<string>"
},
"originator": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"avatar_url": "<string>"
},
"evidence": {
"kind": "<string>",
"ref_id": "<string>"
},
"automation_version_id": "<string>",
"delegated_from_run_id": "<string>",
"retry_of_run_id": "<string>",
"rerun_of_run_id": "<string>"
},
"usage": [
{
"model": "<string>",
"input_tokens": 123,
"output_tokens": 123,
"cache_read_tokens": 123,
"cache_write_tokens": 123,
"provider": "<string>",
"cost_usd_ticks": 123
}
],
"billed": {
"model_usd_ticks": "<string>",
"estimated": true
},
"cancelled_input": {
"task_id": "<string>",
"message_id": "<string>",
"content": "<string>",
"restore_to_input": true,
"attachments": [
{
"id": "<string>",
"workspace_id": "<string>",
"task_id": "<string>",
"message_id": "<string>",
"run_id": "<string>",
"uploader_type": "<string>",
"uploader_id": "<string>",
"filename": "<string>",
"url": "<string>",
"download_url": "<string>",
"markdown_url": "<string>",
"content_type": "<string>",
"size_bytes": 123,
"created_at": "<string>",
"attachment_download_url": "<string>"
}
]
}
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Authorizations
Company API key (mwk_) or personal access token (mel_). A PAT requires X-Workspace-ID on company-scoped routes. An API key implies its own company.
Headers
Company UUID for a personal token on company-scoped operations. A company API key already binds its company.
Path Parameters
runId from the corresponding authorized response.
Query Parameters
Optional expected_status filter or control; see the operation contract.
Optional queue_action filter or control; see the operation contract.
Optional task_id filter or control; see the operation contract.
Response
RunResponse plus optional cancelled_input:{task_id:UUID,message_id:UUID,content:string,restore_to_input:boolean,attachments:object[]}. Cancelling a Run that already ended returns it unchanged.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes