Get Message
curl --request GET \
--url https://api.decodahealth.com/email/messages/{message_id} \
--header 'API-KEY: <api-key>' \
--header 'TENANT: <api-key>'import requests
url = "https://api.decodahealth.com/email/messages/{message_id}"
headers = {
"TENANT": "<api-key>",
"API-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {TENANT: '<api-key>', 'API-KEY': '<api-key>'}};
fetch('https://api.decodahealth.com/email/messages/{message_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.decodahealth.com/email/messages/{message_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 => [
"API-KEY: <api-key>",
"TENANT: <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://api.decodahealth.com/email/messages/{message_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("TENANT", "<api-key>")
req.Header.Add("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://api.decodahealth.com/email/messages/{message_id}")
.header("TENANT", "<api-key>")
.header("API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/email/messages/{message_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["TENANT"] = '<api-key>'
request["API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"threadId": "<string>",
"subject": "<string>",
"bodyText": "<string>",
"bodyHtml": "<string>",
"snippet": "<string>",
"status": "DRAFT",
"direction": "INBOUND",
"sentDate": "2023-11-07T05:31:56Z",
"deliveredDate": "2023-11-07T05:31:56Z",
"isRead": true,
"isStarred": true,
"isDraft": true,
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"messageType": "CUSTOM",
"draftKind": "NEW",
"sentBy": {
"id": "<string>",
"name": "<string>"
},
"participants": [],
"attachments": [],
"openCount": 0,
"uniqueOpenCount": 0,
"clickCount": 0,
"uniqueClickCount": 0,
"firstOpenedDate": "2023-11-07T05:31:56Z",
"lastOpenedDate": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Email
Get Message
Get a single email message with full details.
GET
/
email
/
messages
/
{message_id}
Get Message
curl --request GET \
--url https://api.decodahealth.com/email/messages/{message_id} \
--header 'API-KEY: <api-key>' \
--header 'TENANT: <api-key>'import requests
url = "https://api.decodahealth.com/email/messages/{message_id}"
headers = {
"TENANT": "<api-key>",
"API-KEY": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {TENANT: '<api-key>', 'API-KEY': '<api-key>'}};
fetch('https://api.decodahealth.com/email/messages/{message_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.decodahealth.com/email/messages/{message_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 => [
"API-KEY: <api-key>",
"TENANT: <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://api.decodahealth.com/email/messages/{message_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("TENANT", "<api-key>")
req.Header.Add("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://api.decodahealth.com/email/messages/{message_id}")
.header("TENANT", "<api-key>")
.header("API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/email/messages/{message_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["TENANT"] = '<api-key>'
request["API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"threadId": "<string>",
"subject": "<string>",
"bodyText": "<string>",
"bodyHtml": "<string>",
"snippet": "<string>",
"status": "DRAFT",
"direction": "INBOUND",
"sentDate": "2023-11-07T05:31:56Z",
"deliveredDate": "2023-11-07T05:31:56Z",
"isRead": true,
"isStarred": true,
"isDraft": true,
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z",
"messageType": "CUSTOM",
"draftKind": "NEW",
"sentBy": {
"id": "<string>",
"name": "<string>"
},
"participants": [],
"attachments": [],
"openCount": 0,
"uniqueOpenCount": 0,
"clickCount": 0,
"uniqueClickCount": 0,
"firstOpenedDate": "2023-11-07T05:31:56Z",
"lastOpenedDate": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
The tenant you are making this request on behalf of
Your api key
Path Parameters
Response
Successful Response
Email message in API responses.
Status of an email message through its lifecycle.
Available options:
DRAFT, QUEUED, SENDING, SENT, DELIVERED, RECEIVED, FAILED, BOUNCED, COMPLAINED Direction of an email message.
Available options:
INBOUND, OUTBOUND Type of email message.
Available options:
CUSTOM, INVOICE, TENANT_CREATED, PROVIDER_INVITE, PURCHASE_ORDER, RECEIPT, NOTIFICATION, WEBHOOK_FAILED, FORM, BLAST, OUTREACH How a draft was composed, so it resumes in the matching composer.
Only meaningful for DRAFT-status messages (NULL otherwise). REPLY/FORWARD drafts live inside an existing thread; a FORWARD draft must reopen in the forward composer (new thread, no in-reply-to) rather than as a reply.
Available options:
NEW, REPLY, FORWARD The staff member who sent an email, for internal attribution.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes

