Skip to main content
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

Authorizations
string | header
required
Project API key header of the form Bearer as_<key>. You can also pass the key via the x-api-key header.

Query Parameters

from
string
Filter by sender email address (exact match, case-insensitive).Example: "[email protected]"
to
string
Filter by recipient email address (exact match, case-insensitive).Example: "[email protected]"
threadId
string
Filter to messages belonging to a specific conversation thread .Example: "60d5ec49f1b2c72d9c8b1234"
Case-insensitive substring search against the message subject.Maximum length: 200
dateFrom
string
Return only messages created on or after this timestamp (ISO 8601).Example: "2026-06-01T00:00:00.000Z"
dateTo
string
Return only messages created on or before this timestamp (ISO 8601).Example: "2026-06-30T23:59:59.000Z"
page
integer
Page number (1-based). Defaults to 1.Minimum: 1
limit
integer
Number of messages per page. Defaults to 50.Minimum: 1Maximum: 200

Response

Messages retrieved successfully
success
boolean
Indicates if the request was successfulExample: true
data
object

Error Responses

400 - Invalid query parameter
object
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"
    }
  
}
401 - Unauthorized
object
Returned when the API key is missing or invalid.
{
  "success": false,
  "error": {
    "message": "Invalid or missing API key"
  }
}