curl -X GET "https://api.foxreach.io/api/v1/analytics/campaigns/cmp_abc123" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
stats = client.analytics.campaign("cmp_xyz789")
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const stats = await client.analytics.campaign("cmp_xyz789");
{
"data": {
"id": "cmp_abc123",
"name": "Q1 Outreach",
"status": "active",
"sent": 1250,
"delivered": 1200,
"bounced": 50,
"replied": 67,
"opened": 580,
"totalLeads": 500,
"replyRate": 5.4,
"bounceRate": 4.0
}
}
Analytics
Campaign Statistics
Retrieve detailed performance metrics for a specific campaign.
GET
/
api
/
v1
/
analytics
/
campaigns
/
{campaign_id}
curl -X GET "https://api.foxreach.io/api/v1/analytics/campaigns/cmp_abc123" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
stats = client.analytics.campaign("cmp_xyz789")
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const stats = await client.analytics.campaign("cmp_xyz789");
{
"data": {
"id": "cmp_abc123",
"name": "Q1 Outreach",
"status": "active",
"sent": 1250,
"delivered": 1200,
"bounced": 50,
"replied": 67,
"opened": 580,
"totalLeads": 500,
"replyRate": 5.4,
"bounceRate": 4.0
}
}
Path Parameters
string
required
The unique identifier of the campaign.
Response
object
Show Campaign stats
Show Campaign stats
string
Campaign ID.
string
Campaign name.
string
Campaign status:
draft, active, paused, or completed.integer
Total emails sent.
integer
Emails successfully delivered.
integer
Emails that bounced.
integer
Emails that received replies.
integer
Emails that were opened.
integer
Total leads enrolled in campaign.
number
Reply rate as a percentage (1 decimal).
number
Bounce rate as a percentage (1 decimal).
curl -X GET "https://api.foxreach.io/api/v1/analytics/campaigns/cmp_abc123" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
stats = client.analytics.campaign("cmp_xyz789")
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const stats = await client.analytics.campaign("cmp_xyz789");
{
"data": {
"id": "cmp_abc123",
"name": "Q1 Outreach",
"status": "active",
"sent": 1250,
"delivered": 1200,
"bounced": 50,
"replied": 67,
"opened": 580,
"totalLeads": 500,
"replyRate": 5.4,
"bounceRate": 4.0
}
}
Errors
| Status | Description |
|---|---|
404 | Campaign not found |
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.