curl --request GET \
--url https://api.sendpost.io/api/v1/account/message/{message_id} \
--header 'X-Account-ApiKey: <api-key>'import requests
url = "https://api.sendpost.io/api/v1/account/message/{message_id}"
headers = {"X-Account-ApiKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Account-ApiKey': '<api-key>'}};
fetch('https://api.sendpost.io/api/v1/account/message/{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.sendpost.io/api/v1/account/message/{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 => [
"X-Account-ApiKey: <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.sendpost.io/api/v1/account/message/{message_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Account-ApiKey", "<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.sendpost.io/api/v1/account/message/{message_id}")
.header("X-Account-ApiKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpost.io/api/v1/account/message/{message_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Account-ApiKey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"subAccountId": 117,
"publicIp": "52.34.11.12",
"emailType": "transactional",
"submittedAt": 1704067200000000000,
"from": {
"email": "notifications@piedpiper.com",
"name": "Pied Piper"
},
"replyTo": {
"email": "support@piedpiper.com",
"name": "Pied Piper Support"
},
"to": {
"email": "customer@example.com",
"name": "Customer",
"cc": [],
"bcc": [],
"customFields": {
"firstName": "Jane"
}
},
"headerTo": {
"email": "customer@example.com",
"name": "Customer"
},
"headerCc": [],
"headerBcc": [],
"attachments": [],
"groups": [
"order-shipped",
"transactional"
],
"ipPool": "transactional",
"headers": {
"X-Campaign-Id": "12345"
},
"subject": "Your order #12345 has been shipped!",
"preText": "Your order is on its way",
"htmlBody": "<h1>Your order has shipped!</h1>",
"textBody": "Your order has shipped!",
"ampBody": "",
"trackOpens": true,
"trackClicks": true
}Get Message
Retrieve complete details about a specific email message, including full event timeline and metadata.
Response Includes:
- Full message details (sender, recipients, subject)
- Complete event timeline (submitted, sent, delivered, opened, clicked)
- Bounce/drop information with reasons
- IP and pool used for sending
- Click and open tracking data
Use Cases:
- Debug why a specific email wasn’t delivered
- Customer support - provide delivery proof
- Audit trail for compliance requirements
- Analyze engagement for specific messages
curl --request GET \
--url https://api.sendpost.io/api/v1/account/message/{message_id} \
--header 'X-Account-ApiKey: <api-key>'import requests
url = "https://api.sendpost.io/api/v1/account/message/{message_id}"
headers = {"X-Account-ApiKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Account-ApiKey': '<api-key>'}};
fetch('https://api.sendpost.io/api/v1/account/message/{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.sendpost.io/api/v1/account/message/{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 => [
"X-Account-ApiKey: <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.sendpost.io/api/v1/account/message/{message_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Account-ApiKey", "<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.sendpost.io/api/v1/account/message/{message_id}")
.header("X-Account-ApiKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpost.io/api/v1/account/message/{message_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Account-ApiKey"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"messageId": "550e8400-e29b-41d4-a716-446655440000",
"subAccountId": 117,
"publicIp": "52.34.11.12",
"emailType": "transactional",
"submittedAt": 1704067200000000000,
"from": {
"email": "notifications@piedpiper.com",
"name": "Pied Piper"
},
"replyTo": {
"email": "support@piedpiper.com",
"name": "Pied Piper Support"
},
"to": {
"email": "customer@example.com",
"name": "Customer",
"cc": [],
"bcc": [],
"customFields": {
"firstName": "Jane"
}
},
"headerTo": {
"email": "customer@example.com",
"name": "Customer"
},
"headerCc": [],
"headerBcc": [],
"attachments": [],
"groups": [
"order-shipped",
"transactional"
],
"ipPool": "transactional",
"headers": {
"X-Campaign-Id": "12345"
},
"subject": "Your order #12345 has been shipped!",
"preText": "Your order is on its way",
"htmlBody": "<h1>Your order has shipped!</h1>",
"textBody": "Your order has shipped!",
"ampBody": "",
"trackOpens": true,
"trackClicks": true
}Authorizations
This api key can be used for all account level operations
Path Parameters
The unique message ID returned when the email was sent.
"msg_01H2X3Y4Z5A6B7C8D9E0F1G2H3"
Response
Complete message details with event history.
A previously submitted email message with its metadata. Use the message lookup API to retrieve details about emails you have sent.
Unique identifier (UUID) for this email message
"550e8400-e29b-41d4-a716-446655440000"
ID of the sub-account that sent this email
117
The public IP address used to send this email
"52.34.11.12"
Classification of the email, e.g. "transactional" or "marketing".
"transactional"
UNIX epoch timestamp in nanoseconds when the email was submitted
1704067200000000000
The sender's email address and display name
Show child attributes
Show child attributes
{
"email": "sender@example.com",
"name": "John Doe"
}
The Reply-To email address and display name
Show child attributes
Show child attributes
{
"email": "sender@example.com",
"name": "John Doe"
}
The primary recipient, including any per-recipient CC/BCC and custom fields
Show child attributes
Show child attributes
{
"email": "jane@example.com",
"name": "Jane Smith",
"cc": [
{
"email": "manager@example.com",
"name": "Manager"
}
],
"customFields": {
"firstName": "Jane",
"companyName": "Acme Corp"
}
}
The address rendered in the visible To header (may differ from the envelope recipient)
Show child attributes
Show child attributes
{
"email": "jane@example.com",
"name": "Jane Smith",
"cc": [
{
"email": "manager@example.com",
"name": "Manager"
}
],
"customFields": {
"firstName": "Jane",
"companyName": "Acme Corp"
}
}
Addresses rendered in the visible Cc header
Show child attributes
Show child attributes
Addresses rendered in the visible Bcc header
Show child attributes
Show child attributes
File attachments included with the email
Show child attributes
Show child attributes
Tags/groups associated with this email
["order-confirmation", "transactional"]
Name of the IP pool used for sending
"transactional"
Custom SMTP headers set on the message
Show child attributes
Show child attributes
{ "X-Campaign-Id": "12345" }
The email subject line
"Your order has been shipped!"
Preheader/preview text shown by many email clients after the subject
"Your order is on its way"
The HTML body of the email
"<h1>Your order has shipped!</h1>"
The plain-text body of the email
"Your order has shipped!"
The AMP for Email body, if provided
""
Whether open tracking was enabled for this email
true
Whether click tracking was enabled for this email
true
Was this page helpful?