curl -X GET "https://api.foxreach.io/api/v1/inbox/threads?page=1&pageSize=20&category=interested" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
threads = client.inbox.list_threads(is_read=False, page_size=20)
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const threads = await client.inbox.listThreads({ isRead: false, pageSize: 20 });
{
"data": [
{
"id": "rpl_abc123",
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "Re: Quick question about your product",
"bodyPreview": "Hi, thanks for reaching out! I'd love to learn more about...",
"category": "interested",
"isRead": false,
"isStarred": false,
"receivedAt": "2025-01-20T14:30:00",
"leadId": "cld_xyz789",
"campaignId": "cmp_def456"
}
],
"meta": {
"page": 1,
"pageSize": 20,
"total": 1,
"totalPages": 1
}
}
Inbox
List Threads
Retrieve a paginated list of inbox reply threads.
GET
/
api
/
v1
/
inbox
/
threads
curl -X GET "https://api.foxreach.io/api/v1/inbox/threads?page=1&pageSize=20&category=interested" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
threads = client.inbox.list_threads(is_read=False, page_size=20)
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const threads = await client.inbox.listThreads({ isRead: false, pageSize: 20 });
{
"data": [
{
"id": "rpl_abc123",
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "Re: Quick question about your product",
"bodyPreview": "Hi, thanks for reaching out! I'd love to learn more about...",
"category": "interested",
"isRead": false,
"isStarred": false,
"receivedAt": "2025-01-20T14:30:00",
"leadId": "cld_xyz789",
"campaignId": "cmp_def456"
}
],
"meta": {
"page": 1,
"pageSize": 20,
"total": 1,
"totalPages": 1
}
}
Query Parameters
integer
default:"1"
Page number (starts at 1).
integer
default:"20"
Number of threads per page (1-100).
string
Filter by AI category:
interested, not_interested, out_of_office, uncategorized, unknown, or bounce.string
Search across sender email, subject, and body text.
Response
array
Array of thread objects.
Show Thread object
Show Thread object
string
Unique reply identifier.
string
Sender’s email address.
string
Recipient email address.
string
Email subject line.
string
First 200 characters of the plain-text body.
string
AI-assigned category:
interested, not_interested, out_of_office, uncategorized, unknown, or bounce.boolean
Whether the thread has been marked as read.
boolean
Whether the thread is starred.
string
ISO 8601 timestamp when the reply was received.
string
Associated lead ID, if matched.
string
Associated campaign ID, if matched.
object
curl -X GET "https://api.foxreach.io/api/v1/inbox/threads?page=1&pageSize=20&category=interested" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
threads = client.inbox.list_threads(is_read=False, page_size=20)
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const threads = await client.inbox.listThreads({ isRead: false, pageSize: 20 });
{
"data": [
{
"id": "rpl_abc123",
"fromEmail": "[email protected]",
"toEmail": "[email protected]",
"subject": "Re: Quick question about your product",
"bodyPreview": "Hi, thanks for reaching out! I'd love to learn more about...",
"category": "interested",
"isRead": false,
"isStarred": false,
"receivedAt": "2025-01-20T14:30:00",
"leadId": "cld_xyz789",
"campaignId": "cmp_def456"
}
],
"meta": {
"page": 1,
"pageSize": 20,
"total": 1,
"totalPages": 1
}
}
Rate Limit
- 100 requests per minute, per API key. Fixed 60-second window.
- Every response includes
X-RateLimit-Limit,X-RateLimit-Remaining, andX-RateLimit-Reset(unix epoch seconds). - A
429response includes aRetry-Afterheader (seconds until the bucket resets).
Retry-After, exponential backoff, monitoring X-RateLimit-Remaining), see Rate Limiting.