curl --request POST \
--url https://api.instantly.ai/api/v2/subsequences \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"parent_campaign": "019f985c-6368-755d-bd3c-96cf472edafc",
"name": "Follow-up sequence",
"conditions": {
"crm_status": [
1
],
"lead_activity": [
4
],
"reply_contains": "yes"
},
"subsequence_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": true,
"1": true,
"2": true,
"3": true,
"4": true,
"5": false,
"6": false
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"sequences": [
{
"steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},\n\nI hope you are doing well.",
"v_disabled": true
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
]
}
]
}
'import requests
url = "https://api.instantly.ai/api/v2/subsequences"
payload = {
"parent_campaign": "019f985c-6368-755d-bd3c-96cf472edafc",
"name": "Follow-up sequence",
"conditions": {
"crm_status": [1],
"lead_activity": [4],
"reply_contains": "yes"
},
"subsequence_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": True,
"1": True,
"2": True,
"3": True,
"4": True,
"5": False,
"6": False
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"sequences": [{ "steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},
I hope you are doing well.",
"v_disabled": True
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
] }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
parent_campaign: '019f985c-6368-755d-bd3c-96cf472edafc',
name: 'Follow-up sequence',
conditions: {crm_status: [1], lead_activity: [4], reply_contains: 'yes'},
subsequence_schedule: {
schedules: [
{
name: 'My Schedule',
timing: {from: '09:00', to: '17:00'},
days: {'0': true, '1': true, '2': true, '3': true, '4': true, '5': false, '6': false},
timezone: 'Etc/GMT+12'
}
],
start_date: '2025-09-25',
end_date: '2025-09-25'
},
sequences: [
{
steps: [
{
type: 'email',
delay: 2,
variants: [
{
subject: 'Hello {{firstName}}',
body: JSON.stringify('Hey {{firstName}},\n\nI hope you are doing well.'),
v_disabled: true
}
],
delay_unit: 'days',
pre_delay: 2,
pre_delay_unit: 'days'
}
]
}
]
})
};
fetch('https://api.instantly.ai/api/v2/subsequences', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.instantly.ai/api/v2/subsequences")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"parent_campaign\": \"019f985c-6368-755d-bd3c-96cf472edafc\",\n \"name\": \"Follow-up sequence\",\n \"conditions\": {\n \"crm_status\": [\n 1\n ],\n \"lead_activity\": [\n 4\n ],\n \"reply_contains\": \"yes\"\n },\n \"subsequence_schedule\": {\n \"schedules\": [\n {\n \"name\": \"My Schedule\",\n \"timing\": {\n \"from\": \"09:00\",\n \"to\": \"17:00\"\n },\n \"days\": {\n \"0\": true,\n \"1\": true,\n \"2\": true,\n \"3\": true,\n \"4\": true,\n \"5\": false,\n \"6\": false\n },\n \"timezone\": \"Etc/GMT+12\"\n }\n ],\n \"start_date\": \"2025-09-25\",\n \"end_date\": \"2025-09-25\"\n },\n \"sequences\": [\n {\n \"steps\": [\n {\n \"type\": \"email\",\n \"delay\": 2,\n \"variants\": [\n {\n \"subject\": \"Hello {{firstName}}\",\n \"body\": \"Hey {{firstName}},\\n\\nI hope you are doing well.\",\n \"v_disabled\": true\n }\n ],\n \"delay_unit\": \"days\",\n \"pre_delay\": 2,\n \"pre_delay_unit\": \"days\"\n }\n ]\n }\n ]\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/subsequences",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'parent_campaign' => '019f985c-6368-755d-bd3c-96cf472edafc',
'name' => 'Follow-up sequence',
'conditions' => [
'crm_status' => [
1
],
'lead_activity' => [
4
],
'reply_contains' => 'yes'
],
'subsequence_schedule' => [
'schedules' => [
[
'name' => 'My Schedule',
'timing' => [
'from' => '09:00',
'to' => '17:00'
],
'days' => [
'0' => true,
'1' => true,
'2' => true,
'3' => true,
'4' => true,
'5' => false,
'6' => false
],
'timezone' => 'Etc/GMT+12'
]
],
'start_date' => '2025-09-25',
'end_date' => '2025-09-25'
],
'sequences' => [
[
'steps' => [
[
'type' => 'email',
'delay' => 2,
'variants' => [
[
'subject' => 'Hello {{firstName}}',
'body' => 'Hey {{firstName}},
I hope you are doing well.',
'v_disabled' => true
]
],
'delay_unit' => 'days',
'pre_delay' => 2,
'pre_delay_unit' => 'days'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.instantly.ai/api/v2/subsequences"
payload := strings.NewReader("{\n \"parent_campaign\": \"019f985c-6368-755d-bd3c-96cf472edafc\",\n \"name\": \"Follow-up sequence\",\n \"conditions\": {\n \"crm_status\": [\n 1\n ],\n \"lead_activity\": [\n 4\n ],\n \"reply_contains\": \"yes\"\n },\n \"subsequence_schedule\": {\n \"schedules\": [\n {\n \"name\": \"My Schedule\",\n \"timing\": {\n \"from\": \"09:00\",\n \"to\": \"17:00\"\n },\n \"days\": {\n \"0\": true,\n \"1\": true,\n \"2\": true,\n \"3\": true,\n \"4\": true,\n \"5\": false,\n \"6\": false\n },\n \"timezone\": \"Etc/GMT+12\"\n }\n ],\n \"start_date\": \"2025-09-25\",\n \"end_date\": \"2025-09-25\"\n },\n \"sequences\": [\n {\n \"steps\": [\n {\n \"type\": \"email\",\n \"delay\": 2,\n \"variants\": [\n {\n \"subject\": \"Hello {{firstName}}\",\n \"body\": \"Hey {{firstName}},\\n\\nI hope you are doing well.\",\n \"v_disabled\": true\n }\n ],\n \"delay_unit\": \"days\",\n \"pre_delay\": 2,\n \"pre_delay_unit\": \"days\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "019f985c-6368-755d-bd3c-96ce550e7d7f",
"timestamp_created": "2026-07-25T08:20:19.432Z",
"parent_campaign": "019f985c-6368-755d-bd3c-96cf472edafc",
"workspace": "019f985c-6368-755d-bd3c-96d072e874ea",
"status": 0,
"timestamp_leads_updated": "2026-07-25T08:20:19.432Z",
"name": "Follow-up sequence",
"conditions": {
"crm_status": [
1
],
"lead_activity": [
4
],
"reply_contains": "yes"
},
"subsequence_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": true,
"1": true,
"2": true,
"3": true,
"4": true,
"5": false,
"6": false
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"sequences": [
{
"steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},\n\nI hope you are doing well.",
"v_disabled": true
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
]
}
],
"daily_limit_mode": "inherit",
"daily_limit": 50,
"ignore_account_daily_limit": false
}{
"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"
}Create campaign subsequence
Requires one of the following scopes: subsequences:create, subsequences:all, all:create, all:all
curl --request POST \
--url https://api.instantly.ai/api/v2/subsequences \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"parent_campaign": "019f985c-6368-755d-bd3c-96cf472edafc",
"name": "Follow-up sequence",
"conditions": {
"crm_status": [
1
],
"lead_activity": [
4
],
"reply_contains": "yes"
},
"subsequence_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": true,
"1": true,
"2": true,
"3": true,
"4": true,
"5": false,
"6": false
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"sequences": [
{
"steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},\n\nI hope you are doing well.",
"v_disabled": true
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
]
}
]
}
'import requests
url = "https://api.instantly.ai/api/v2/subsequences"
payload = {
"parent_campaign": "019f985c-6368-755d-bd3c-96cf472edafc",
"name": "Follow-up sequence",
"conditions": {
"crm_status": [1],
"lead_activity": [4],
"reply_contains": "yes"
},
"subsequence_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": True,
"1": True,
"2": True,
"3": True,
"4": True,
"5": False,
"6": False
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"sequences": [{ "steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},
I hope you are doing well.",
"v_disabled": True
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
] }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
parent_campaign: '019f985c-6368-755d-bd3c-96cf472edafc',
name: 'Follow-up sequence',
conditions: {crm_status: [1], lead_activity: [4], reply_contains: 'yes'},
subsequence_schedule: {
schedules: [
{
name: 'My Schedule',
timing: {from: '09:00', to: '17:00'},
days: {'0': true, '1': true, '2': true, '3': true, '4': true, '5': false, '6': false},
timezone: 'Etc/GMT+12'
}
],
start_date: '2025-09-25',
end_date: '2025-09-25'
},
sequences: [
{
steps: [
{
type: 'email',
delay: 2,
variants: [
{
subject: 'Hello {{firstName}}',
body: JSON.stringify('Hey {{firstName}},\n\nI hope you are doing well.'),
v_disabled: true
}
],
delay_unit: 'days',
pre_delay: 2,
pre_delay_unit: 'days'
}
]
}
]
})
};
fetch('https://api.instantly.ai/api/v2/subsequences', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.instantly.ai/api/v2/subsequences")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"parent_campaign\": \"019f985c-6368-755d-bd3c-96cf472edafc\",\n \"name\": \"Follow-up sequence\",\n \"conditions\": {\n \"crm_status\": [\n 1\n ],\n \"lead_activity\": [\n 4\n ],\n \"reply_contains\": \"yes\"\n },\n \"subsequence_schedule\": {\n \"schedules\": [\n {\n \"name\": \"My Schedule\",\n \"timing\": {\n \"from\": \"09:00\",\n \"to\": \"17:00\"\n },\n \"days\": {\n \"0\": true,\n \"1\": true,\n \"2\": true,\n \"3\": true,\n \"4\": true,\n \"5\": false,\n \"6\": false\n },\n \"timezone\": \"Etc/GMT+12\"\n }\n ],\n \"start_date\": \"2025-09-25\",\n \"end_date\": \"2025-09-25\"\n },\n \"sequences\": [\n {\n \"steps\": [\n {\n \"type\": \"email\",\n \"delay\": 2,\n \"variants\": [\n {\n \"subject\": \"Hello {{firstName}}\",\n \"body\": \"Hey {{firstName}},\\n\\nI hope you are doing well.\",\n \"v_disabled\": true\n }\n ],\n \"delay_unit\": \"days\",\n \"pre_delay\": 2,\n \"pre_delay_unit\": \"days\"\n }\n ]\n }\n ]\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.instantly.ai/api/v2/subsequences",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'parent_campaign' => '019f985c-6368-755d-bd3c-96cf472edafc',
'name' => 'Follow-up sequence',
'conditions' => [
'crm_status' => [
1
],
'lead_activity' => [
4
],
'reply_contains' => 'yes'
],
'subsequence_schedule' => [
'schedules' => [
[
'name' => 'My Schedule',
'timing' => [
'from' => '09:00',
'to' => '17:00'
],
'days' => [
'0' => true,
'1' => true,
'2' => true,
'3' => true,
'4' => true,
'5' => false,
'6' => false
],
'timezone' => 'Etc/GMT+12'
]
],
'start_date' => '2025-09-25',
'end_date' => '2025-09-25'
],
'sequences' => [
[
'steps' => [
[
'type' => 'email',
'delay' => 2,
'variants' => [
[
'subject' => 'Hello {{firstName}}',
'body' => 'Hey {{firstName}},
I hope you are doing well.',
'v_disabled' => true
]
],
'delay_unit' => 'days',
'pre_delay' => 2,
'pre_delay_unit' => 'days'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.instantly.ai/api/v2/subsequences"
payload := strings.NewReader("{\n \"parent_campaign\": \"019f985c-6368-755d-bd3c-96cf472edafc\",\n \"name\": \"Follow-up sequence\",\n \"conditions\": {\n \"crm_status\": [\n 1\n ],\n \"lead_activity\": [\n 4\n ],\n \"reply_contains\": \"yes\"\n },\n \"subsequence_schedule\": {\n \"schedules\": [\n {\n \"name\": \"My Schedule\",\n \"timing\": {\n \"from\": \"09:00\",\n \"to\": \"17:00\"\n },\n \"days\": {\n \"0\": true,\n \"1\": true,\n \"2\": true,\n \"3\": true,\n \"4\": true,\n \"5\": false,\n \"6\": false\n },\n \"timezone\": \"Etc/GMT+12\"\n }\n ],\n \"start_date\": \"2025-09-25\",\n \"end_date\": \"2025-09-25\"\n },\n \"sequences\": [\n {\n \"steps\": [\n {\n \"type\": \"email\",\n \"delay\": 2,\n \"variants\": [\n {\n \"subject\": \"Hello {{firstName}}\",\n \"body\": \"Hey {{firstName}},\\n\\nI hope you are doing well.\",\n \"v_disabled\": true\n }\n ],\n \"delay_unit\": \"days\",\n \"pre_delay\": 2,\n \"pre_delay_unit\": \"days\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "019f985c-6368-755d-bd3c-96ce550e7d7f",
"timestamp_created": "2026-07-25T08:20:19.432Z",
"parent_campaign": "019f985c-6368-755d-bd3c-96cf472edafc",
"workspace": "019f985c-6368-755d-bd3c-96d072e874ea",
"status": 0,
"timestamp_leads_updated": "2026-07-25T08:20:19.432Z",
"name": "Follow-up sequence",
"conditions": {
"crm_status": [
1
],
"lead_activity": [
4
],
"reply_contains": "yes"
},
"subsequence_schedule": {
"schedules": [
{
"name": "My Schedule",
"timing": {
"from": "09:00",
"to": "17:00"
},
"days": {
"0": true,
"1": true,
"2": true,
"3": true,
"4": true,
"5": false,
"6": false
},
"timezone": "Etc/GMT+12"
}
],
"start_date": "2025-09-25",
"end_date": "2025-09-25"
},
"sequences": [
{
"steps": [
{
"type": "email",
"delay": 2,
"variants": [
{
"subject": "Hello {{firstName}}",
"body": "Hey {{firstName}},\n\nI hope you are doing well.",
"v_disabled": true
}
],
"delay_unit": "days",
"pre_delay": 2,
"pre_delay_unit": "days"
}
]
}
],
"daily_limit_mode": "inherit",
"daily_limit": 50,
"ignore_account_daily_limit": false
}{
"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.
Body
The Campaign Subsequence to create
The Campaign Subsequence to create
ID of the parent campaign
"019f985c-6368-755d-bd3c-96cf472edafc"
Name of the subsequence
"Follow-up sequence"
Conditions that trigger the subsequence
Show child attributes
Show child attributes
Schedule configuration for the subsequence
Show child attributes
Show child attributes
List of sequences (the actual email copy). Even though this field is an array, only the first element is used, so please provide only one array item, and add the steps to that array
Show child attributes
Show child attributes
Daily limit mode for the subsequence. "inherit" uses the parent campaign limit, "custom" uses a subsequence-specific limit, "unlimited" bypasses the campaign-level daily limit.
inherit, custom, unlimited "inherit"
Custom daily limit for the subsequence. Only used when daily_limit_mode is "custom".
50
When enabled, the subsequence will send even when sending accounts have reached their daily limit.
false
Response
The Campaign Subsequence
A subsequence entity representing a follow-up sequence
Unique identifier for the subsequence
"019f985c-6368-755d-bd3c-96ce550e7d7f"
Timestamp when the subsequence was created
"2026-07-25T08:20:19.432Z"
ID of the parent campaign
"019f985c-6368-755d-bd3c-96cf472edafc"
ID of the workspace this subsequence belongs to
"019f985c-6368-755d-bd3c-96d072e874ea"
Status of the subsequence
-99, -1, -2, 0, 1, 2, 3, 4 0
Timestamp when the leads were last updated
"2026-07-25T08:20:19.432Z"
Name of the subsequence
"Follow-up sequence"
Conditions that trigger the subsequence
Show child attributes
Show child attributes
Schedule configuration for the subsequence
Show child attributes
Show child attributes
List of sequences (the actual email copy). Even though this field is an array, only the first element is used, so please provide only one array item, and add the steps to that array
Show child attributes
Show child attributes
Daily limit mode for the subsequence. "inherit" uses the parent campaign limit, "custom" uses a subsequence-specific limit, "unlimited" bypasses the campaign-level daily limit.
inherit, custom, unlimited "inherit"
Custom daily limit for the subsequence. Only used when daily_limit_mode is "custom".
50
When enabled, the subsequence will send even when sending accounts have reached their daily limit.
false