Get a draft
curl --request GET \
--url https://{dsn}/api/v1/drafts/{draft_id} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://{dsn}/api/v1/drafts/{draft_id}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://{dsn}/api/v1/drafts/{draft_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://{dsn}/api/v1/drafts/{draft_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{dsn}/api/v1/drafts/{draft_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{dsn}/api/v1/drafts/{draft_id}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{dsn}/api/v1/drafts/{draft_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "Email",
"id": "<string>",
"account_id": "<string>",
"provider_id": "<string>",
"message_id": "<string>",
"thread_id": "<string>",
"date": "2023-11-07T05:31:56Z",
"subject": "<string>",
"snippet": "<string>",
"body": "<string>",
"body_plain": "<string>",
"from_attendee": {
"identifier": "jsmith@example.com",
"display_name": "<string>"
},
"to_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"cc_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"bcc_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"reply_to_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"in_reply_to": {
"message_id": "<string>",
"id": "<string>"
},
"references": [
"<string>"
],
"folders": [
"<string>"
],
"folder_ids": [
"<string>"
],
"role": "INBOX",
"unread": true,
"starred": true,
"has_attachments": true,
"attachments": [
{
"id": "<string>",
"name": "<string>",
"extension": "<string>",
"size": 123,
"mime": "<string>",
"cid": "<string>",
"inline": true
}
],
"size": 123,
"origin": "api",
"tracking_id": "<string>",
"draft_id": "<string>",
"headers": [
{
"name": "<string>",
"value": "<string>"
}
]
}{
"status": 401,
"type": "errors/unauthorized",
"title": "Unauthorized",
"detail": "missing or invalid API key"
}{
"status": 404,
"type": "errors/not_found",
"title": "Not found",
"detail": "email email_94a0d77db739407e932c3b97fef44aac not found"
}Drafts
Get a draft
One draft (an email object with object “Draft”).
GET
/
drafts
/
{draft_id}
Get a draft
curl --request GET \
--url https://{dsn}/api/v1/drafts/{draft_id} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://{dsn}/api/v1/drafts/{draft_id}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://{dsn}/api/v1/drafts/{draft_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://{dsn}/api/v1/drafts/{draft_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{dsn}/api/v1/drafts/{draft_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{dsn}/api/v1/drafts/{draft_id}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{dsn}/api/v1/drafts/{draft_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"object": "Email",
"id": "<string>",
"account_id": "<string>",
"provider_id": "<string>",
"message_id": "<string>",
"thread_id": "<string>",
"date": "2023-11-07T05:31:56Z",
"subject": "<string>",
"snippet": "<string>",
"body": "<string>",
"body_plain": "<string>",
"from_attendee": {
"identifier": "jsmith@example.com",
"display_name": "<string>"
},
"to_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"cc_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"bcc_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"reply_to_attendees": [
{
"identifier": "jsmith@example.com",
"display_name": "<string>"
}
],
"in_reply_to": {
"message_id": "<string>",
"id": "<string>"
},
"references": [
"<string>"
],
"folders": [
"<string>"
],
"folder_ids": [
"<string>"
],
"role": "INBOX",
"unread": true,
"starred": true,
"has_attachments": true,
"attachments": [
{
"id": "<string>",
"name": "<string>",
"extension": "<string>",
"size": 123,
"mime": "<string>",
"cid": "<string>",
"inline": true
}
],
"size": 123,
"origin": "api",
"tracking_id": "<string>",
"draft_id": "<string>",
"headers": [
{
"name": "<string>",
"value": "<string>"
}
]
}{
"status": 401,
"type": "errors/unauthorized",
"title": "Unauthorized",
"detail": "missing or invalid API key"
}{
"status": 404,
"type": "errors/not_found",
"title": "Not found",
"detail": "email email_94a0d77db739407e932c3b97fef44aac not found"
}Authorizations
Your access token, from your dashboard under API keys.
Path Parameters
The drf_… id from creation, or the synced draft's email_… id.
Query Parameters
The draft's account. Needed only right after creating it, before it has synced.
Response
The draft.
Available options:
Email, Draft email_…; stays the same when the email moves.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Available options:
INBOX, SENT, DRAFTS, TRASH, SPAM, ARCHIVE, ALL, IMPORTANT, STARRED, UNKNOWN Show child attributes
Show child attributes
api: sent through this API.
Available options:
api, external Open/click tracking of this email (trk_…).
Drafts only.
Show child attributes
Show child attributes