Update Session
curl --request PATCH \
--url https://api.example.com/api/sessions/{sessionId} \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"status": "<string>"
}
'import requests
url = "https://api.example.com/api/sessions/{sessionId}"
payload = {
"title": "<string>",
"status": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', status: '<string>'})
};
fetch('https://api.example.com/api/sessions/{sessionId}', 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://api.example.com/api/sessions/{sessionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'status' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/sessions/{sessionId}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"status\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/sessions/{sessionId}")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"status\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/sessions/{sessionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"status\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"session": {}
}Sessions
Update Session
Update a session’s title or status.
PATCH
/
api
/
sessions
/
{sessionId}
Update Session
curl --request PATCH \
--url https://api.example.com/api/sessions/{sessionId} \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"status": "<string>"
}
'import requests
url = "https://api.example.com/api/sessions/{sessionId}"
payload = {
"title": "<string>",
"status": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', status: '<string>'})
};
fetch('https://api.example.com/api/sessions/{sessionId}', 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://api.example.com/api/sessions/{sessionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'status' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/sessions/{sessionId}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"status\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.example.com/api/sessions/{sessionId}")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"status\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/sessions/{sessionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"status\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"session": {}
}Authentication
Requires an API key.Path parameters
string
required
The ID of the session to update.
Query parameters
string
The ID of the workspace the session belongs to. Optional when using an API key.
Request body
All fields are optional — only include the fields you want to update.string
New title for the session.
string
New status. One of
active, completed, or failed.Response
object
The updated session object. See List Sessions for the full schema.
Example
curl -X PATCH "https://magnet.run/api/sessions/cm3abc123def" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Signup form validation (email + password)"
}'
const response = await fetch('https://magnet.run/api/sessions/cm3abc123def', {
method: 'PATCH',
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Signup form validation (email + password)',
}),
});
const { session } = await response.json();
Response
{
"session": {
"id": "cm3abc123def",
"title": "Signup form validation (email + password)",
"status": "completed",
"createdAt": "2026-02-10T14:30:00.000Z",
"updatedAt": "2026-02-11T09:15:00.000Z",
"model": "claude-opus-4-6",
"author": {
"id": "user_123",
"name": "Alice Chen"
},
"metadata": {
"repository": "acme/web-app",
"prNumber": 42,
"prUrl": "https://github.com/acme/web-app/pull/42",
"prStatus": "open"
},
"messageCount": 12
}
}
Errors
| Status | Description |
|---|---|
400 | Invalid request body |
401 | Invalid or missing authentication |
403 | No access to the specified workspace |
404 | Session not found |
500 | Server error |
⌘I