Inbound Emails
List Messages
Retrieves inbound email messages received on the authenticated project’s inbound-enabled domains. Supports filtering by domain, sender, recipient, thread, subject search, and date range, with pagination. Blocked/unrouted messages are excluded unless includeBlocked is set.
GET
/
inbound
/
messages
curl --request GET \
--url 'https://api.autosend.com/v1/inbound/messages?page=1&limit=50' \
--header 'Authorization: Bearer as_your-api-key'
import requests
url = "https://api.autosend.com/v1/inbound/messages"
headers = {
"Authorization": "Bearer as_your-api-key"
}
params = {
"page": 1,
"limit": 50
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const params = new URLSearchParams({ page: '1', limit: '50' });
fetch(`https://api.autosend.com/v1/inbound/messages?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer as_your-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/inbound/messages?page=1&limit=50';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer as_your-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/inbound/messages?page=1&limit=50"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer as_your-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListMessages {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/inbound/messages?page=1&limit=50");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer as_your-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
con.disconnect();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
uri = URI('https://api.autosend.com/v1/inbound/messages?page=1&limit=50')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer as_your-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"items": [
{
"id": "60d5ec49f1b2c72d9c8b1234",
"messageId": "<[email protected]>",
"domainName": "support.example.com",
"from": {
"email": "[email protected]",
"name": "Jane Customer"
},
"to": [
{
"email": "[email protected]",
"name": null
}
],
"cc": [],
"subject": "Question about my order",
"status": "PROCESSED",
"attachmentCount": 0,
"receivedAt": "2026-06-20T10:15:30.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"pages": 1
}
}
}
This endpoint uses a standard project API key (
AS_ prefix). Messages are scoped to the project the key belongs to. Blocked and unrouted messages are excluded unless includeBlocked=true is set.curl --request GET \
--url 'https://api.autosend.com/v1/inbound/messages?page=1&limit=50' \
--header 'Authorization: Bearer as_your-api-key'
import requests
url = "https://api.autosend.com/v1/inbound/messages"
headers = {
"Authorization": "Bearer as_your-api-key"
}
params = {
"page": 1,
"limit": 50
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const params = new URLSearchParams({ page: '1', limit: '50' });
fetch(`https://api.autosend.com/v1/inbound/messages?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer as_your-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/inbound/messages?page=1&limit=50';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer as_your-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/inbound/messages?page=1&limit=50"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer as_your-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListMessages {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/inbound/messages?page=1&limit=50");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer as_your-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
con.disconnect();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
uri = URI('https://api.autosend.com/v1/inbound/messages?page=1&limit=50')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer as_your-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"items": [
{
"id": "60d5ec49f1b2c72d9c8b1234",
"messageId": "<[email protected]>",
"domainName": "support.example.com",
"from": {
"email": "[email protected]",
"name": "Jane Customer"
},
"to": [
{
"email": "[email protected]",
"name": null
}
],
"cc": [],
"subject": "Question about my order",
"status": "PROCESSED",
"attachmentCount": 0,
"receivedAt": "2026-06-20T10:15:30.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"pages": 1
}
}
}
Authorizations
Project API key header of the form Bearer
as_<key>. You can also pass the key via the x-api-key header.Query Parameters
Filter by sender email address (exact match, case-insensitive).Example:
"[email protected]"Filter by recipient email address (exact match, case-insensitive).Example:
"[email protected]"Filter to messages belonging to a specific conversation thread .Example:
"60d5ec49f1b2c72d9c8b1234"Case-insensitive substring search against the message subject.Maximum length:
200Return only messages created on or after this timestamp (ISO 8601).Example:
"2026-06-01T00:00:00.000Z"Return only messages created on or before this timestamp (ISO 8601).Example:
"2026-06-30T23:59:59.000Z"Page number (1-based). Defaults to
1.Minimum: 1Number of messages per page. Defaults to
50.Minimum: 1Maximum: 200Response
Messages retrieved successfullyIndicates if the request was successfulExample:
trueShow child attributes
Show child attributes
Array of inbound message summaries, newest first
Show child attributes
Show child attributes
Unique inbound message identifier
RFC 5322
Message-ID header from the original emailDomain the message was received on
Sender address (
email, name)Recipient addresses (
email, name)CC addresses (
email, name)Message subject
Message status:
PROCESSED, PROCESSING, FAILED, BLOCKED_UNVERIFIED, or BLOCKED_UNROUTEDNumber of attachments on the message
Timestamp the message was received (ISO 8601)
Error Responses
Returned when a query parameter fails validation (e.g. a malformed
domainId, invalid email, or out-of-range limit).{
"success": false,
"error": {
"message": "Invalid value",
"path": "limit"
}
}
Returned when the API key is missing or invalid.
{
"success": false,
"error": {
"message": "Invalid or missing API key"
}
}
Was this page helpful?
⌘I
curl --request GET \
--url 'https://api.autosend.com/v1/inbound/messages?page=1&limit=50' \
--header 'Authorization: Bearer as_your-api-key'
import requests
url = "https://api.autosend.com/v1/inbound/messages"
headers = {
"Authorization": "Bearer as_your-api-key"
}
params = {
"page": 1,
"limit": 50
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
const params = new URLSearchParams({ page: '1', limit: '50' });
fetch(`https://api.autosend.com/v1/inbound/messages?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer as_your-api-key'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
<?php
$url = 'https://api.autosend.com/v1/inbound/messages?page=1&limit=50';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer as_your-api-key'
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.autosend.com/v1/inbound/messages?page=1&limit=50"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer as_your-api-key")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ListMessages {
public static void main(String[] args) {
try {
URL url = new URL("https://api.autosend.com/v1/inbound/messages?page=1&limit=50");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer as_your-api-key");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
con.disconnect();
System.out.println(content.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
require 'net/http'
require 'uri'
uri = URI('https://api.autosend.com/v1/inbound/messages?page=1&limit=50')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer as_your-api-key'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"items": [
{
"id": "60d5ec49f1b2c72d9c8b1234",
"messageId": "<[email protected]>",
"domainName": "support.example.com",
"from": {
"email": "[email protected]",
"name": "Jane Customer"
},
"to": [
{
"email": "[email protected]",
"name": null
}
],
"cc": [],
"subject": "Question about my order",
"status": "PROCESSED",
"attachmentCount": 0,
"receivedAt": "2026-06-20T10:15:30.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"pages": 1
}
}
}