Emails
Update an email draft
Updates the fields supplied on an existing email draft and, if scheduleAt is set, schedules it for sending. The contact and sender account are kept from the existing draft.
PUT
/
emails
/
{id}
Update an email draft
curl --request PUT \
--url https://api.seamless.ai/api/client/v2/emails/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "Updated subject",
"body": "Updated body content...",
"to": "prospect@example.com",
"cc": "manager@example.com",
"bcc": "archive@acme.com",
"scheduleAt": "2026-07-01T15:00:00.000Z"
}
'import requests
url = "https://api.seamless.ai/api/client/v2/emails/{id}"
payload = {
"subject": "Updated subject",
"body": "Updated body content...",
"to": "prospect@example.com",
"cc": "manager@example.com",
"bcc": "archive@acme.com",
"scheduleAt": "2026-07-01T15:00:00.000Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subject: 'Updated subject',
body: JSON.stringify('Updated body content...'),
to: 'prospect@example.com',
cc: 'manager@example.com',
bcc: 'archive@acme.com',
scheduleAt: '2026-07-01T15:00:00.000Z'
})
};
fetch('https://api.seamless.ai/api/client/v2/emails/{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.seamless.ai/api/client/v2/emails/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'subject' => 'Updated subject',
'body' => 'Updated body content...',
'to' => 'prospect@example.com',
'cc' => 'manager@example.com',
'bcc' => 'archive@acme.com',
'scheduleAt' => '2026-07-01T15:00:00.000Z'
]),
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.seamless.ai/api/client/v2/emails/{id}"
payload := strings.NewReader("{\n \"subject\": \"Updated subject\",\n \"body\": \"Updated body content...\",\n \"to\": \"prospect@example.com\",\n \"cc\": \"manager@example.com\",\n \"bcc\": \"archive@acme.com\",\n \"scheduleAt\": \"2026-07-01T15:00:00.000Z\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.seamless.ai/api/client/v2/emails/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"Updated subject\",\n \"body\": \"Updated body content...\",\n \"to\": \"prospect@example.com\",\n \"cc\": \"manager@example.com\",\n \"bcc\": \"archive@acme.com\",\n \"scheduleAt\": \"2026-07-01T15:00:00.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.seamless.ai/api/client/v2/emails/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subject\": \"Updated subject\",\n \"body\": \"Updated body content...\",\n \"to\": \"prospect@example.com\",\n \"cc\": \"manager@example.com\",\n \"bcc\": \"archive@acme.com\",\n \"scheduleAt\": \"2026-07-01T15:00:00.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"emailId": "90001",
"contactId": "12345",
"from": "rep@acme.com",
"to": "prospect@example.com",
"cc": "manager@example.com",
"bcc": "archive@acme.com",
"subject": "Quick question about your team",
"body": "<string>",
"status": "TODO",
"scheduledAt": "2023-11-07T05:31:56Z",
"sentAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}Authorizations
OAuth2ApiKeyAuth
Body
application/json
Was this page helpful?
⌘I
Update an email draft
curl --request PUT \
--url https://api.seamless.ai/api/client/v2/emails/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"subject": "Updated subject",
"body": "Updated body content...",
"to": "prospect@example.com",
"cc": "manager@example.com",
"bcc": "archive@acme.com",
"scheduleAt": "2026-07-01T15:00:00.000Z"
}
'import requests
url = "https://api.seamless.ai/api/client/v2/emails/{id}"
payload = {
"subject": "Updated subject",
"body": "Updated body content...",
"to": "prospect@example.com",
"cc": "manager@example.com",
"bcc": "archive@acme.com",
"scheduleAt": "2026-07-01T15:00:00.000Z"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subject: 'Updated subject',
body: JSON.stringify('Updated body content...'),
to: 'prospect@example.com',
cc: 'manager@example.com',
bcc: 'archive@acme.com',
scheduleAt: '2026-07-01T15:00:00.000Z'
})
};
fetch('https://api.seamless.ai/api/client/v2/emails/{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.seamless.ai/api/client/v2/emails/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'subject' => 'Updated subject',
'body' => 'Updated body content...',
'to' => 'prospect@example.com',
'cc' => 'manager@example.com',
'bcc' => 'archive@acme.com',
'scheduleAt' => '2026-07-01T15:00:00.000Z'
]),
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.seamless.ai/api/client/v2/emails/{id}"
payload := strings.NewReader("{\n \"subject\": \"Updated subject\",\n \"body\": \"Updated body content...\",\n \"to\": \"prospect@example.com\",\n \"cc\": \"manager@example.com\",\n \"bcc\": \"archive@acme.com\",\n \"scheduleAt\": \"2026-07-01T15:00:00.000Z\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.seamless.ai/api/client/v2/emails/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"Updated subject\",\n \"body\": \"Updated body content...\",\n \"to\": \"prospect@example.com\",\n \"cc\": \"manager@example.com\",\n \"bcc\": \"archive@acme.com\",\n \"scheduleAt\": \"2026-07-01T15:00:00.000Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.seamless.ai/api/client/v2/emails/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subject\": \"Updated subject\",\n \"body\": \"Updated body content...\",\n \"to\": \"prospect@example.com\",\n \"cc\": \"manager@example.com\",\n \"bcc\": \"archive@acme.com\",\n \"scheduleAt\": \"2026-07-01T15:00:00.000Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"emailId": "90001",
"contactId": "12345",
"from": "rep@acme.com",
"to": "prospect@example.com",
"cc": "manager@example.com",
"bcc": "archive@acme.com",
"subject": "Quick question about your team",
"body": "<string>",
"status": "TODO",
"scheduledAt": "2023-11-07T05:31:56Z",
"sentAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}{
"msg": "<string>",
"code": "<string>"
}