curl -X GET "https://api.foxreach.io/api/v1/campaigns/cmp_abc123/leads?page=1&pageSize=50" \
-H "X-API-Key: otr_your_key"
import requests
response = requests.get(
"https://api.foxreach.io/api/v1/campaigns/cmp_xyz789/leads",
headers={"X-API-Key": "otr_your_key"},
params={"page": 1, "pageSize": 50},
)
leads = response.json()
const response = await fetch(
"https://api.foxreach.io/api/v1/campaigns/cmp_xyz789/leads?page=1&pageSize=50",
{
headers: { "X-API-Key": "otr_your_key" },
}
);
const leads = await response.json();
{
"data": [
{
"id": "cld_xyz789",
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"company": "Acme Inc",
"status": "sent",
"currentStep": 2,
"totalSent": 2,
"lastSentAt": "2025-01-18T09:00:00",
"repliedAt": null
}
],
"meta": {
"page": 1,
"pageSize": 50,
"total": 1,
"totalPages": 1
}
}
Campaign Leads
List Campaign Leads
Retrieve a paginated list of leads enrolled in a campaign.
GET
/
api
/
v1
/
campaigns
/
{campaign_id}
/
leads
curl -X GET "https://api.foxreach.io/api/v1/campaigns/cmp_abc123/leads?page=1&pageSize=50" \
-H "X-API-Key: otr_your_key"
import requests
response = requests.get(
"https://api.foxreach.io/api/v1/campaigns/cmp_xyz789/leads",
headers={"X-API-Key": "otr_your_key"},
params={"page": 1, "pageSize": 50},
)
leads = response.json()
const response = await fetch(
"https://api.foxreach.io/api/v1/campaigns/cmp_xyz789/leads?page=1&pageSize=50",
{
headers: { "X-API-Key": "otr_your_key" },
}
);
const leads = await response.json();
{
"data": [
{
"id": "cld_xyz789",
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"company": "Acme Inc",
"status": "sent",
"currentStep": 2,
"totalSent": 2,
"lastSentAt": "2025-01-18T09:00:00",
"repliedAt": null
}
],
"meta": {
"page": 1,
"pageSize": 50,
"total": 1,
"totalPages": 1
}
}
Path Parameters
string
required
The unique identifier of the campaign.
Query Parameters
integer
default:"1"
Page number (starts at 1).
integer
default:"50"
Number of leads per page (1-100).
string
Filter by campaign lead status:
pending, sent, paused, or completed.string
Search by lead email, name, or company.
Response
array
Array of campaign lead objects.
Show Campaign lead object
Show Campaign lead object
string
Lead ID.
string
Lead email.
string
First name.
string
Last name.
string
Company name.
string
Campaign lead status:
pending, sent, paused, or completed.integer
Current sequence step number.
integer
Emails sent to this lead in the campaign.
string
ISO 8601 timestamp of last email sent.
string
ISO 8601 timestamp if lead replied.
object
curl -X GET "https://api.foxreach.io/api/v1/campaigns/cmp_abc123/leads?page=1&pageSize=50" \
-H "X-API-Key: otr_your_key"
import requests
response = requests.get(
"https://api.foxreach.io/api/v1/campaigns/cmp_xyz789/leads",
headers={"X-API-Key": "otr_your_key"},
params={"page": 1, "pageSize": 50},
)
leads = response.json()
const response = await fetch(
"https://api.foxreach.io/api/v1/campaigns/cmp_xyz789/leads?page=1&pageSize=50",
{
headers: { "X-API-Key": "otr_your_key" },
}
);
const leads = await response.json();
{
"data": [
{
"id": "cld_xyz789",
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"company": "Acme Inc",
"status": "sent",
"currentStep": 2,
"totalSent": 2,
"lastSentAt": "2025-01-18T09:00:00",
"repliedAt": null
}
],
"meta": {
"page": 1,
"pageSize": 50,
"total": 1,
"totalPages": 1
}
}
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.