curl -X GET "https://api.foxreach.io/api/v1/campaigns/cmp_abc123/sequences" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
sequences = client.campaigns.sequences.list("cmp_xyz789")
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const sequences = await client.campaigns.sequences.list("cmp_xyz789");
{
"data": [
{
"id": "seq_001",
"campaignId": "cmp_abc123",
"stepNumber": 1,
"name": "Initial outreach",
"subject": "Quick question, {{firstName}}",
"body": "Hi {{firstName}},\n\nI noticed {{company}} recently...",
"delayDays": 0,
"delayHours": 0,
"sendOnlyIfNoReply": false,
"createdAt": "2025-01-10T08:00:00",
"updatedAt": "2025-01-10T08:00:00"
},
{
"id": "seq_002",
"campaignId": "cmp_abc123",
"stepNumber": 2,
"name": "Follow-up",
"subject": "Re: Quick question, {{firstName}}",
"body": "Hi {{firstName}},\n\nJust wanted to follow up on my last email...",
"delayDays": 3,
"delayHours": 0,
"sendOnlyIfNoReply": true,
"createdAt": "2025-01-10T08:05:00",
"updatedAt": "2025-01-10T08:05:00"
}
]
}
Sequences
List Sequences
Retrieve all sequence steps for a campaign, ordered by step number.
GET
/
api
/
v1
/
campaigns
/
{campaign_id}
/
sequences
curl -X GET "https://api.foxreach.io/api/v1/campaigns/cmp_abc123/sequences" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
sequences = client.campaigns.sequences.list("cmp_xyz789")
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const sequences = await client.campaigns.sequences.list("cmp_xyz789");
{
"data": [
{
"id": "seq_001",
"campaignId": "cmp_abc123",
"stepNumber": 1,
"name": "Initial outreach",
"subject": "Quick question, {{firstName}}",
"body": "Hi {{firstName}},\n\nI noticed {{company}} recently...",
"delayDays": 0,
"delayHours": 0,
"sendOnlyIfNoReply": false,
"createdAt": "2025-01-10T08:00:00",
"updatedAt": "2025-01-10T08:00:00"
},
{
"id": "seq_002",
"campaignId": "cmp_abc123",
"stepNumber": 2,
"name": "Follow-up",
"subject": "Re: Quick question, {{firstName}}",
"body": "Hi {{firstName}},\n\nJust wanted to follow up on my last email...",
"delayDays": 3,
"delayHours": 0,
"sendOnlyIfNoReply": true,
"createdAt": "2025-01-10T08:05:00",
"updatedAt": "2025-01-10T08:05:00"
}
]
}
Path Parameters
string
required
The unique identifier of the campaign.
Response
array
Array of sequence step objects.
Show Sequence object
Show Sequence object
string
Unique sequence identifier.
string
Parent campaign ID.
integer
Step order (1-based).
string
Optional step name.
string
Email subject line. Supports template variables and spin syntax.
string
Email body. Supports template variables and spin syntax.
integer
Days to wait after previous step.
integer
Additional hours to wait.
boolean
Skip this step if lead has already replied.
string
ISO 8601 timestamp.
string
ISO 8601 timestamp.
curl -X GET "https://api.foxreach.io/api/v1/campaigns/cmp_abc123/sequences" \
-H "X-API-Key: otr_your_key"
from foxreach import FoxReach
client = FoxReach(api_key="otr_your_key")
sequences = client.campaigns.sequences.list("cmp_xyz789")
import { FoxReach } from "foxreach";
const client = new FoxReach({ apiKey: "otr_your_key" });
const sequences = await client.campaigns.sequences.list("cmp_xyz789");
{
"data": [
{
"id": "seq_001",
"campaignId": "cmp_abc123",
"stepNumber": 1,
"name": "Initial outreach",
"subject": "Quick question, {{firstName}}",
"body": "Hi {{firstName}},\n\nI noticed {{company}} recently...",
"delayDays": 0,
"delayHours": 0,
"sendOnlyIfNoReply": false,
"createdAt": "2025-01-10T08:00:00",
"updatedAt": "2025-01-10T08:00:00"
},
{
"id": "seq_002",
"campaignId": "cmp_abc123",
"stepNumber": 2,
"name": "Follow-up",
"subject": "Re: Quick question, {{firstName}}",
"body": "Hi {{firstName}},\n\nJust wanted to follow up on my last email...",
"delayDays": 3,
"delayHours": 0,
"sendOnlyIfNoReply": true,
"createdAt": "2025-01-10T08:05:00",
"updatedAt": "2025-01-10T08:05:00"
}
]
}
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.⌘I