AI Chat
Update AI chat session
Renames, pins or archives an AI home chat session; a blank or null title resets to the generated title. Archiving also unpins. Requires ai.chat:write OAuth scope or a personal API key, and the caller must be eligible for home chat.
PATCH
/
v1
/
ai
/
chat
/
sessions
/
{id}
Update AI chat session
curl --request PATCH \
--url https://api.rootly.com/v1/ai/chat/sessions/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/vnd.api+json' \
--data '
{
"title": "<string>",
"pinned": true,
"archived": true
}
'import requests
url = "https://api.rootly.com/v1/ai/chat/sessions/{id}"
payload = {
"title": "<string>",
"pinned": True,
"archived": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/vnd.api+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/vnd.api+json'},
body: JSON.stringify({title: '<string>', pinned: true, archived: true})
};
fetch('https://api.rootly.com/v1/ai/chat/sessions/{id}', 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.rootly.com/v1/ai/chat/sessions/{id}",
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>',
'pinned' => true,
'archived' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/vnd.api+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.rootly.com/v1/ai/chat/sessions/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"pinned\": true,\n \"archived\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/vnd.api+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.rootly.com/v1/ai/chat/sessions/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/vnd.api+json")
.body("{\n \"title\": \"<string>\",\n \"pinned\": true,\n \"archived\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootly.com/v1/ai/chat/sessions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/vnd.api+json'
request.body = "{\n \"title\": \"<string>\",\n \"pinned\": true,\n \"archived\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"generated_title": "<string>",
"pinned": true,
"pinned_at": "2023-11-07T05:31:56Z",
"archived_at": "2023-11-07T05:31:56Z"
}{
"errors": [
{
"title": "<string>",
"status": "<string>"
}
],
"meta": {
"checkpoint_resolved": {
"checkpoint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"replay": "in_progress"
}
}
}{
"errors": [
{
"title": "<string>",
"status": "<string>"
}
],
"meta": {
"checkpoint_resolved": {
"checkpoint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"replay": "in_progress"
}
}
}{
"errors": [
{
"title": "<string>",
"status": "<string>"
}
],
"meta": {
"checkpoint_resolved": {
"checkpoint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"replay": "in_progress"
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Session UUID
Body
application/vnd.api+json
Response
updated session
Session UUID
Session title (user-supplied, generated, or placeholder)
Server-generated title, null when hidden behind the placeholder
Whether the session is pinned (returned by update)
When the session was pinned (returned by update)
When the session was archived (returned by update)
Was this page helpful?
⌘I
Update AI chat session
curl --request PATCH \
--url https://api.rootly.com/v1/ai/chat/sessions/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/vnd.api+json' \
--data '
{
"title": "<string>",
"pinned": true,
"archived": true
}
'import requests
url = "https://api.rootly.com/v1/ai/chat/sessions/{id}"
payload = {
"title": "<string>",
"pinned": True,
"archived": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/vnd.api+json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/vnd.api+json'},
body: JSON.stringify({title: '<string>', pinned: true, archived: true})
};
fetch('https://api.rootly.com/v1/ai/chat/sessions/{id}', 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.rootly.com/v1/ai/chat/sessions/{id}",
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>',
'pinned' => true,
'archived' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/vnd.api+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.rootly.com/v1/ai/chat/sessions/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"pinned\": true,\n \"archived\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/vnd.api+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.rootly.com/v1/ai/chat/sessions/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/vnd.api+json")
.body("{\n \"title\": \"<string>\",\n \"pinned\": true,\n \"archived\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rootly.com/v1/ai/chat/sessions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/vnd.api+json'
request.body = "{\n \"title\": \"<string>\",\n \"pinned\": true,\n \"archived\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"generated_title": "<string>",
"pinned": true,
"pinned_at": "2023-11-07T05:31:56Z",
"archived_at": "2023-11-07T05:31:56Z"
}{
"errors": [
{
"title": "<string>",
"status": "<string>"
}
],
"meta": {
"checkpoint_resolved": {
"checkpoint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"replay": "in_progress"
}
}
}{
"errors": [
{
"title": "<string>",
"status": "<string>"
}
],
"meta": {
"checkpoint_resolved": {
"checkpoint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"replay": "in_progress"
}
}
}{
"errors": [
{
"title": "<string>",
"status": "<string>"
}
],
"meta": {
"checkpoint_resolved": {
"checkpoint_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "pending",
"replay": "in_progress"
}
}
}