curl --request POST \
--url https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"labels": [
"<string>"
],
"reply_to": [
"<string>"
],
"to": [
"<string>"
],
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"subject": "<string>",
"text": "<string>",
"html": "<string>",
"attachments": [
{
"filename": "<string>",
"content_type": "<string>",
"content_id": "<string>",
"content": "<string>",
"url": "<string>"
}
],
"in_reply_to": "<string>",
"send_at": "2023-11-07T05:31:56Z",
"client_id": "<string>"
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts"
payload = {
"labels": ["<string>"],
"reply_to": ["<string>"],
"to": ["<string>"],
"cc": ["<string>"],
"bcc": ["<string>"],
"subject": "<string>",
"text": "<string>",
"html": "<string>",
"attachments": [
{
"filename": "<string>",
"content_type": "<string>",
"content_id": "<string>",
"content": "<string>",
"url": "<string>"
}
],
"in_reply_to": "<string>",
"send_at": "2023-11-07T05:31:56Z",
"client_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
labels: ['<string>'],
reply_to: ['<string>'],
to: ['<string>'],
cc: ['<string>'],
bcc: ['<string>'],
subject: '<string>',
text: '<string>',
html: '<string>',
attachments: [
{
filename: '<string>',
content_type: '<string>',
content_id: '<string>',
content: '<string>',
url: '<string>'
}
],
in_reply_to: '<string>',
send_at: '2023-11-07T05:31:56Z',
client_id: '<string>'
})
};
fetch('https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts', 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/inboxes/{inbox_id}/drafts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'labels' => [
'<string>'
],
'reply_to' => [
'<string>'
],
'to' => [
'<string>'
],
'cc' => [
'<string>'
],
'bcc' => [
'<string>'
],
'subject' => '<string>',
'text' => '<string>',
'html' => '<string>',
'attachments' => [
[
'filename' => '<string>',
'content_type' => '<string>',
'content_id' => '<string>',
'content' => '<string>',
'url' => '<string>'
]
],
'in_reply_to' => '<string>',
'send_at' => '2023-11-07T05:31:56Z',
'client_id' => '<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/inboxes/{inbox_id}/drafts"
payload := strings.NewReader("{\n \"labels\": [\n \"<string>\"\n ],\n \"reply_to\": [\n \"<string>\"\n ],\n \"to\": [\n \"<string>\"\n ],\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"subject\": \"<string>\",\n \"text\": \"<string>\",\n \"html\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"content_type\": \"<string>\",\n \"content_id\": \"<string>\",\n \"content\": \"<string>\",\n \"url\": \"<string>\"\n }\n ],\n \"in_reply_to\": \"<string>\",\n \"send_at\": \"2023-11-07T05:31:56Z\",\n \"client_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"labels\": [\n \"<string>\"\n ],\n \"reply_to\": [\n \"<string>\"\n ],\n \"to\": [\n \"<string>\"\n ],\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"subject\": \"<string>\",\n \"text\": \"<string>\",\n \"html\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"content_type\": \"<string>\",\n \"content_id\": \"<string>\",\n \"content\": \"<string>\",\n \"url\": \"<string>\"\n }\n ],\n \"in_reply_to\": \"<string>\",\n \"send_at\": \"2023-11-07T05:31:56Z\",\n \"client_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"labels\": [\n \"<string>\"\n ],\n \"reply_to\": [\n \"<string>\"\n ],\n \"to\": [\n \"<string>\"\n ],\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"subject\": \"<string>\",\n \"text\": \"<string>\",\n \"html\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"content_type\": \"<string>\",\n \"content_id\": \"<string>\",\n \"content\": \"<string>\",\n \"url\": \"<string>\"\n }\n ],\n \"in_reply_to\": \"<string>\",\n \"send_at\": \"2023-11-07T05:31:56Z\",\n \"client_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"inbox_id": "<string>",
"draft_id": "<string>",
"labels": [
"<string>"
],
"updated_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"client_id": "<string>",
"reply_to": [
"<string>"
],
"to": [
"<string>"
],
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"subject": "<string>",
"preview": "<string>",
"text": "<string>",
"html": "<string>",
"attachments": [
{
"attachment_id": "<string>",
"size": 123,
"filename": "<string>",
"content_type": "<string>",
"content_disposition": "inline",
"content_id": "<string>"
}
],
"in_reply_to": "<string>",
"references": [
"<string>"
],
"send_status": "scheduled",
"send_at": "2023-11-07T05:31:56Z"
}{
"name": "<string>",
"message": "<string>"
}Create Draft
Composes a draft in one inbox without sending it.
curl --request POST \
--url https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"labels": [
"<string>"
],
"reply_to": [
"<string>"
],
"to": [
"<string>"
],
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"subject": "<string>",
"text": "<string>",
"html": "<string>",
"attachments": [
{
"filename": "<string>",
"content_type": "<string>",
"content_id": "<string>",
"content": "<string>",
"url": "<string>"
}
],
"in_reply_to": "<string>",
"send_at": "2023-11-07T05:31:56Z",
"client_id": "<string>"
}
'import requests
url = "https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts"
payload = {
"labels": ["<string>"],
"reply_to": ["<string>"],
"to": ["<string>"],
"cc": ["<string>"],
"bcc": ["<string>"],
"subject": "<string>",
"text": "<string>",
"html": "<string>",
"attachments": [
{
"filename": "<string>",
"content_type": "<string>",
"content_id": "<string>",
"content": "<string>",
"url": "<string>"
}
],
"in_reply_to": "<string>",
"send_at": "2023-11-07T05:31:56Z",
"client_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
labels: ['<string>'],
reply_to: ['<string>'],
to: ['<string>'],
cc: ['<string>'],
bcc: ['<string>'],
subject: '<string>',
text: '<string>',
html: '<string>',
attachments: [
{
filename: '<string>',
content_type: '<string>',
content_id: '<string>',
content: '<string>',
url: '<string>'
}
],
in_reply_to: '<string>',
send_at: '2023-11-07T05:31:56Z',
client_id: '<string>'
})
};
fetch('https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts', 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/inboxes/{inbox_id}/drafts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'labels' => [
'<string>'
],
'reply_to' => [
'<string>'
],
'to' => [
'<string>'
],
'cc' => [
'<string>'
],
'bcc' => [
'<string>'
],
'subject' => '<string>',
'text' => '<string>',
'html' => '<string>',
'attachments' => [
[
'filename' => '<string>',
'content_type' => '<string>',
'content_id' => '<string>',
'content' => '<string>',
'url' => '<string>'
]
],
'in_reply_to' => '<string>',
'send_at' => '2023-11-07T05:31:56Z',
'client_id' => '<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/inboxes/{inbox_id}/drafts"
payload := strings.NewReader("{\n \"labels\": [\n \"<string>\"\n ],\n \"reply_to\": [\n \"<string>\"\n ],\n \"to\": [\n \"<string>\"\n ],\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"subject\": \"<string>\",\n \"text\": \"<string>\",\n \"html\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"content_type\": \"<string>\",\n \"content_id\": \"<string>\",\n \"content\": \"<string>\",\n \"url\": \"<string>\"\n }\n ],\n \"in_reply_to\": \"<string>\",\n \"send_at\": \"2023-11-07T05:31:56Z\",\n \"client_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"labels\": [\n \"<string>\"\n ],\n \"reply_to\": [\n \"<string>\"\n ],\n \"to\": [\n \"<string>\"\n ],\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"subject\": \"<string>\",\n \"text\": \"<string>\",\n \"html\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"content_type\": \"<string>\",\n \"content_id\": \"<string>\",\n \"content\": \"<string>\",\n \"url\": \"<string>\"\n }\n ],\n \"in_reply_to\": \"<string>\",\n \"send_at\": \"2023-11-07T05:31:56Z\",\n \"client_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"labels\": [\n \"<string>\"\n ],\n \"reply_to\": [\n \"<string>\"\n ],\n \"to\": [\n \"<string>\"\n ],\n \"cc\": [\n \"<string>\"\n ],\n \"bcc\": [\n \"<string>\"\n ],\n \"subject\": \"<string>\",\n \"text\": \"<string>\",\n \"html\": \"<string>\",\n \"attachments\": [\n {\n \"filename\": \"<string>\",\n \"content_type\": \"<string>\",\n \"content_id\": \"<string>\",\n \"content\": \"<string>\",\n \"url\": \"<string>\"\n }\n ],\n \"in_reply_to\": \"<string>\",\n \"send_at\": \"2023-11-07T05:31:56Z\",\n \"client_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"inbox_id": "<string>",
"draft_id": "<string>",
"labels": [
"<string>"
],
"updated_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"client_id": "<string>",
"reply_to": [
"<string>"
],
"to": [
"<string>"
],
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"subject": "<string>",
"preview": "<string>",
"text": "<string>",
"html": "<string>",
"attachments": [
{
"attachment_id": "<string>",
"size": 123,
"filename": "<string>",
"content_type": "<string>",
"content_disposition": "inline",
"content_id": "<string>"
}
],
"in_reply_to": "<string>",
"references": [
"<string>"
],
"send_status": "scheduled",
"send_at": "2023-11-07T05:31:56Z"
}{
"name": "<string>",
"message": "<string>"
}to, cc, bcc, subject, text, html, labels, attachments, and in_reply_to / references to thread it. Returns the full draft including draft_id. Nothing leaves the account until you call post_agentmail_inbox_draft_send, which makes this the safe way to stage outbound mail for review. 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.
Example
curl -X POST "https://api.aisa.one/apis/v1/agentmail/inboxes/{inbox_id}/drafts" \
-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
The ID of the inbox.
Body
Labels of draft.
Reply-to addresses. In format username@domain.com or Display Name <username@domain.com>.
Addresses of recipients. In format username@domain.com or Display Name <username@domain.com>.
Addresses of CC recipients. In format username@domain.com or Display Name <username@domain.com>.
Addresses of BCC recipients. In format username@domain.com or Display Name <username@domain.com>.
Subject of draft.
Plain text body of draft.
HTML body of draft.
Attachments to include in draft.
Show child attributes
Show child attributes
ID of message being replied to.
Time at which to schedule send draft.
Client ID of draft.
Response
Response with status 200
The ID of the inbox.
ID of draft.
Labels of draft.
Time at which draft was last updated.
Time at which draft was created.
Client ID of draft.
Reply-to addresses. In format username@domain.com or Display Name <username@domain.com>.
Addresses of recipients. In format username@domain.com or Display Name <username@domain.com>.
Addresses of CC recipients. In format username@domain.com or Display Name <username@domain.com>.
Addresses of BCC recipients. In format username@domain.com or Display Name <username@domain.com>.
Subject of draft.
Text preview of draft.
Plain text body of draft.
HTML body of draft.
Attachments in draft.
Show child attributes
Show child attributes
ID of message being replied to.
IDs of previous messages in thread.
Schedule send status of draft.
scheduled, sending, failed Time at which to schedule send draft.