List email and SMS messages
curl --request GET \
--url https://service.abundly.ai/workspaceapi/agents/{agentId}/messages \
--header 'Authorization: Bearer <token>'import requests
url = "https://service.abundly.ai/workspaceapi/agents/{agentId}/messages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://service.abundly.ai/workspaceapi/agents/{agentId}/messages', 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://service.abundly.ai/workspaceapi/agents/{agentId}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://service.abundly.ai/workspaceapi/agents/{agentId}/messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://service.abundly.ai/workspaceapi/agents/{agentId}/messages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/agents/{agentId}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"entries": [
{
"id": "<string>",
"agentId": "<string>",
"customerId": "<string>",
"direction": "<string>",
"channel": "<string>",
"from": "<string>",
"to": [
"<string>"
],
"body": "<string>",
"createdAt": "<string>",
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"subject": "<string>",
"status": "<string>",
"attachments": [
{
"filename": "<string>",
"fileUrl": "<string>",
"mimeType": "<string>",
"documentId": "<string>"
}
],
"relatedActivityLogEntryId": "<string>"
}
],
"totalCount": 123,
"page": 123,
"pageSize": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}API Reference
List email and SMS messages
External messages sent to or by the agent. totalCount reflects the active filter, so it changes as you narrow by direction, channel or date.
GET
/
workspaceapi
/
agents
/
{agentId}
/
messages
List email and SMS messages
curl --request GET \
--url https://service.abundly.ai/workspaceapi/agents/{agentId}/messages \
--header 'Authorization: Bearer <token>'import requests
url = "https://service.abundly.ai/workspaceapi/agents/{agentId}/messages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://service.abundly.ai/workspaceapi/agents/{agentId}/messages', 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://service.abundly.ai/workspaceapi/agents/{agentId}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://service.abundly.ai/workspaceapi/agents/{agentId}/messages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://service.abundly.ai/workspaceapi/agents/{agentId}/messages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/agents/{agentId}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"entries": [
{
"id": "<string>",
"agentId": "<string>",
"customerId": "<string>",
"direction": "<string>",
"channel": "<string>",
"from": "<string>",
"to": [
"<string>"
],
"body": "<string>",
"createdAt": "<string>",
"cc": [
"<string>"
],
"bcc": [
"<string>"
],
"subject": "<string>",
"status": "<string>",
"attachments": [
{
"filename": "<string>",
"fileUrl": "<string>",
"mimeType": "<string>",
"documentId": "<string>"
}
],
"relatedActivityLogEntryId": "<string>"
}
],
"totalCount": 123,
"page": 123,
"pageSize": 123
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Workspace API key (wk_). GET endpoints require the Workspace read API scope, POST endpoints the Workspace write API scope.
Path Parameters
The agent id.
Query Parameters
Page size (default 50).
Required range:
1 <= x <= 200Page number (default 1).
Required range:
x >= 1Available options:
inbound, outbound Available options:
email, sms ISO date string — only messages after this.
ISO date string — only messages before this.

