curl --request GET \
--url https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity",
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://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity"
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))
}{
"items": [
{
"id": "01a08b36-69bc-7c05-9a76-ecd5bd5425a0",
"timestamp_created": "2026-09-10T12:06:34.172Z",
"activity_type": "reply",
"job_type": 1,
"lead_email": "john@example.com",
"thread_id": "3c-zuFiJhv7cqJE5IoKkg6Pzh9",
"requires_hitl": false,
"action_pending": true,
"sending_status": 1,
"error_code": "SEND_FAILED",
"is_followup": false,
"followup_number": 1,
"estimated_time_saved_seconds": 30,
"information_requested": "Please confirm your availability.",
"recovery_method": "calendly_meeting",
"revenue_recovered": 500
}
],
"next_starting_after": "01a08b36-bfea-7bb9-b2ef-04078fe2e14c",
"has_more": true
}{
"statusCode": 400,
"error": "Bad Request",
"message": "body must have required property 'name'"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}List AI Inbox Manager activity
Get the paginated unified activity feed (replies, follow-ups and no-show recoveries) for an AI Inbox Manager, newest first.
Requires one of the following scopes: ai_inbox_manager_analytics:read, ai_agents:all, all:read, all:all
curl --request GET \
--url https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.get("https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity",
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://api.instantly.ai/api/v2/ai-agents/inbox-manager/{id}/analytics/activity"
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))
}{
"items": [
{
"id": "01a08b36-69bc-7c05-9a76-ecd5bd5425a0",
"timestamp_created": "2026-09-10T12:06:34.172Z",
"activity_type": "reply",
"job_type": 1,
"lead_email": "john@example.com",
"thread_id": "3c-zuFiJhv7cqJE5IoKkg6Pzh9",
"requires_hitl": false,
"action_pending": true,
"sending_status": 1,
"error_code": "SEND_FAILED",
"is_followup": false,
"followup_number": 1,
"estimated_time_saved_seconds": 30,
"information_requested": "Please confirm your availability.",
"recovery_method": "calendly_meeting",
"revenue_recovered": 500
}
],
"next_starting_after": "01a08b36-bfea-7bb9-b2ef-04078fe2e14c",
"has_more": true
}{
"statusCode": 400,
"error": "Bad Request",
"message": "body must have required property 'name'"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Missing Authorization header"
}{
"statusCode": 402,
"error": "Payment Required",
"message": "Workspace does not have an active paid plan"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Resource not found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Rate limit exceeded"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
AI Inbox Manager ID
"0195b1a5-3b1d-7b6e-9c1a-2f7a4b0c1d2e"
Query Parameters
Pagination cursor (ID of the last item from the previous page)
"01a08b36-bfea-7bb9-b2ef-040685eb7e1b"
Number of items to return
1 <= x <= 10025
Filter by action pending status: true for to-do items, false for done items. Cannot be combined with activity_type=recovery — recoveries have no pending action.
true
Filter by activity type
reply, followup, recovery "reply"
Filter by work type: 1 = inbox reply, 2 = inbox follow-up, 3 = no-show follow-up. Cannot be combined with activity_type.
1, 2, 3 1
Response
The unified activity feed for the agent