Update Any Thread Labels
curl --request PATCH \
--url https://api.aisa.one/apis/v1/agentmail/threads/{thread_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"add_labels": [
"<string>"
],
"remove_labels": [
"<string>"
]
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/threads/{thread_id}"
payload = {
"add_labels": ["<string>"],
"remove_labels": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({add_labels: ['<string>'], remove_labels: ['<string>']})
};
fetch('https://api.aisa.one/apis/v1/agentmail/threads/{thread_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.aisa.one/apis/v1/agentmail/threads/{thread_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([
'add_labels' => [
'<string>'
],
'remove_labels' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.aisa.one/apis/v1/agentmail/threads/{thread_id}"
payload := strings.NewReader("{\n \"add_labels\": [\n \"<string>\"\n ],\n \"remove_labels\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.aisa.one/apis/v1/agentmail/threads/{thread_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"add_labels\": [\n \"<string>\"\n ],\n \"remove_labels\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/threads/{thread_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/json'
request.body = "{\n \"add_labels\": [\n \"<string>\"\n ],\n \"remove_labels\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"thread_id": "<string>",
"labels": [
"<string>"
]
}{
"name": "<string>",
"errors": "<unknown>"
}{
"name": "<string>",
"message": "<string>"
}{
"name": "<string>",
"message": "<string>"
}Threads
Update Any Thread Labels
Adds or removes labels on a thread addressed by id alone, returning thread_id and the resulting labels.
PATCH
https://api.aisa.one/apis/v1
/
agentmail
/
threads
/
{thread_id}
Update Any Thread Labels
curl --request PATCH \
--url https://api.aisa.one/apis/v1/agentmail/threads/{thread_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"add_labels": [
"<string>"
],
"remove_labels": [
"<string>"
]
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/threads/{thread_id}"
payload = {
"add_labels": ["<string>"],
"remove_labels": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({add_labels: ['<string>'], remove_labels: ['<string>']})
};
fetch('https://api.aisa.one/apis/v1/agentmail/threads/{thread_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.aisa.one/apis/v1/agentmail/threads/{thread_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([
'add_labels' => [
'<string>'
],
'remove_labels' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.aisa.one/apis/v1/agentmail/threads/{thread_id}"
payload := strings.NewReader("{\n \"add_labels\": [\n \"<string>\"\n ],\n \"remove_labels\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.aisa.one/apis/v1/agentmail/threads/{thread_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"add_labels\": [\n \"<string>\"\n ],\n \"remove_labels\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/threads/{thread_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/json'
request.body = "{\n \"add_labels\": [\n \"<string>\"\n ],\n \"remove_labels\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"thread_id": "<string>",
"labels": [
"<string>"
]
}{
"name": "<string>",
"errors": "<unknown>"
}{
"name": "<string>",
"message": "<string>"
}{
"name": "<string>",
"message": "<string>"
}Adds or removes labels on a thread addressed by id alone, returning
thread_id and the resulting labels. No inbox is named, so it resolves account-wide. Writes to the shared AgentMail workspace: Every AIsa caller shares one AgentMail account, so this reaches inboxes other callers created, and what you write here is visible and editable by the next caller. The scoped twin is patch_agentmail_inbox_thread.
Example
curl -X PATCH "https://api.aisa.one/apis/v1/agentmail/threads/{thread_id}" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY"
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Bearer authentication
Path Parameters
ID of thread.
Body
application/json