curl --request POST \
--url https://api.reply.io/v3/sequences \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Sales Outreach 2024",
"scheduleId": 1,
"emailAccounts": [
101,
102
],
"linkedInAccounts": [
42
],
"settings": {
"emailsCountPerDay": 50,
"daysToFinishProspect": 14,
"emailSendingDelaySeconds": 30,
"dailyThrottling": 200,
"useDailyThrottling": true,
"disableOpensTracking": false,
"repliesHandlingType": "markAsFinished",
"enableLinksTracking": true
},
"steps": [
{
"type": "email",
"delayInMinutes": 0,
"executionMode": "automatic",
"variants": [
{
"subject": "Quick question about {{companyName}}",
"message": "<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>"
}
]
},
{
"type": "linkedIn",
"actionType": "message",
"delayInMinutes": 1440,
"executionMode": "automatic",
"variants": [
{
"message": "Hi {{firstName}}, would love to connect!",
"isEnabled": true
}
]
}
]
}
'import requests
url = "https://api.reply.io/v3/sequences"
payload = {
"name": "Sales Outreach 2024",
"scheduleId": 1,
"emailAccounts": [101, 102],
"linkedInAccounts": [42],
"settings": {
"emailsCountPerDay": 50,
"daysToFinishProspect": 14,
"emailSendingDelaySeconds": 30,
"dailyThrottling": 200,
"useDailyThrottling": True,
"disableOpensTracking": False,
"repliesHandlingType": "markAsFinished",
"enableLinksTracking": True
},
"steps": [
{
"type": "email",
"delayInMinutes": 0,
"executionMode": "automatic",
"variants": [
{
"subject": "Quick question about {{companyName}}",
"message": "<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>"
}
]
},
{
"type": "linkedIn",
"actionType": "message",
"delayInMinutes": 1440,
"executionMode": "automatic",
"variants": [
{
"message": "Hi {{firstName}}, would love to connect!",
"isEnabled": True
}
]
}
]
}
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({
name: 'Sales Outreach 2024',
scheduleId: 1,
emailAccounts: [101, 102],
linkedInAccounts: [42],
settings: {
emailsCountPerDay: 50,
daysToFinishProspect: 14,
emailSendingDelaySeconds: 30,
dailyThrottling: 200,
useDailyThrottling: true,
disableOpensTracking: false,
repliesHandlingType: 'markAsFinished',
enableLinksTracking: true
},
steps: [
{
type: 'email',
delayInMinutes: 0,
executionMode: 'automatic',
variants: [
{
subject: 'Quick question about {{companyName}}',
message: '<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>'
}
]
},
{
type: 'linkedIn',
actionType: 'message',
delayInMinutes: 1440,
executionMode: 'automatic',
variants: [{message: 'Hi {{firstName}}, would love to connect!', isEnabled: true}]
}
]
})
};
fetch('https://api.reply.io/v3/sequences', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.reply.io/v3/sequences",
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([
'name' => 'Sales Outreach 2024',
'scheduleId' => 1,
'emailAccounts' => [
101,
102
],
'linkedInAccounts' => [
42
],
'settings' => [
'emailsCountPerDay' => 50,
'daysToFinishProspect' => 14,
'emailSendingDelaySeconds' => 30,
'dailyThrottling' => 200,
'useDailyThrottling' => true,
'disableOpensTracking' => false,
'repliesHandlingType' => 'markAsFinished',
'enableLinksTracking' => true
],
'steps' => [
[
'type' => 'email',
'delayInMinutes' => 0,
'executionMode' => 'automatic',
'variants' => [
[
'subject' => 'Quick question about {{companyName}}',
'message' => '<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>'
]
]
],
[
'type' => 'linkedIn',
'actionType' => 'message',
'delayInMinutes' => 1440,
'executionMode' => 'automatic',
'variants' => [
[
'message' => 'Hi {{firstName}}, would love to connect!',
'isEnabled' => true
]
]
]
]
]),
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.reply.io/v3/sequences"
payload := strings.NewReader("{\n \"name\": \"Sales Outreach 2024\",\n \"scheduleId\": 1,\n \"emailAccounts\": [\n 101,\n 102\n ],\n \"linkedInAccounts\": [\n 42\n ],\n \"settings\": {\n \"emailsCountPerDay\": 50,\n \"daysToFinishProspect\": 14,\n \"emailSendingDelaySeconds\": 30,\n \"dailyThrottling\": 200,\n \"useDailyThrottling\": true,\n \"disableOpensTracking\": false,\n \"repliesHandlingType\": \"markAsFinished\",\n \"enableLinksTracking\": true\n },\n \"steps\": [\n {\n \"type\": \"email\",\n \"delayInMinutes\": 0,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"subject\": \"Quick question about {{companyName}}\",\n \"message\": \"<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>\"\n }\n ]\n },\n {\n \"type\": \"linkedIn\",\n \"actionType\": \"message\",\n \"delayInMinutes\": 1440,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"message\": \"Hi {{firstName}}, would love to connect!\",\n \"isEnabled\": true\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))
}HttpResponse<String> response = Unirest.post("https://api.reply.io/v3/sequences")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Sales Outreach 2024\",\n \"scheduleId\": 1,\n \"emailAccounts\": [\n 101,\n 102\n ],\n \"linkedInAccounts\": [\n 42\n ],\n \"settings\": {\n \"emailsCountPerDay\": 50,\n \"daysToFinishProspect\": 14,\n \"emailSendingDelaySeconds\": 30,\n \"dailyThrottling\": 200,\n \"useDailyThrottling\": true,\n \"disableOpensTracking\": false,\n \"repliesHandlingType\": \"markAsFinished\",\n \"enableLinksTracking\": true\n },\n \"steps\": [\n {\n \"type\": \"email\",\n \"delayInMinutes\": 0,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"subject\": \"Quick question about {{companyName}}\",\n \"message\": \"<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>\"\n }\n ]\n },\n {\n \"type\": \"linkedIn\",\n \"actionType\": \"message\",\n \"delayInMinutes\": 1440,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"message\": \"Hi {{firstName}}, would love to connect!\",\n \"isEnabled\": true\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Sales Outreach 2024\",\n \"scheduleId\": 1,\n \"emailAccounts\": [\n 101,\n 102\n ],\n \"linkedInAccounts\": [\n 42\n ],\n \"settings\": {\n \"emailsCountPerDay\": 50,\n \"daysToFinishProspect\": 14,\n \"emailSendingDelaySeconds\": 30,\n \"dailyThrottling\": 200,\n \"useDailyThrottling\": true,\n \"disableOpensTracking\": false,\n \"repliesHandlingType\": \"markAsFinished\",\n \"enableLinksTracking\": true\n },\n \"steps\": [\n {\n \"type\": \"email\",\n \"delayInMinutes\": 0,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"subject\": \"Quick question about {{companyName}}\",\n \"message\": \"<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>\"\n }\n ]\n },\n {\n \"type\": \"linkedIn\",\n \"actionType\": \"message\",\n \"delayInMinutes\": 1440,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"message\": \"Hi {{firstName}}, would love to connect!\",\n \"isEnabled\": true\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"ownerUserId": 42,
"name": "Sales Outreach 2024",
"created": "2024-03-08T14:30:00+00:00",
"status": "active",
"isArchived": false,
"health": "degraded",
"scheduleId": 1,
"emailAccounts": [
{
"id": 1,
"email": "sales@company.com"
},
{
"id": 2,
"email": "outreach@company.com"
}
],
"linkedInAccounts": [
{
"id": 42,
"name": "John Doe",
"profileUrl": "https://www.linkedin.com/in/johndoe",
"status": "enabled"
}
],
"settings": {
"emailsCountPerDay": 50,
"daysToFinishProspect": 14,
"emailSendingDelaySeconds": 30,
"dailyThrottling": 200,
"disableOpensTracking": false,
"repliesHandlingType": "markAsFinished",
"enableLinksTracking": true
},
"steps": [
{
"id": 1323,
"type": "email",
"delayInMinutes": 0,
"executionMode": "automatic",
"variants": [
{
"id": 1,
"subject": "Quick question about {{companyName}}",
"message": "<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards, John</p>"
}
]
},
{
"id": 43432,
"type": "linkedIn",
"actionType": "message",
"delayInMinutes": 2880,
"executionMode": "automatic",
"variants": [
{
"id": 2,
"message": "Hi {{firstName}}, I noticed your great work at {{companyName}}. Would love to connect!",
"isEnabled": true
}
]
}
]
}{
"title": "Validation failed",
"status": 400,
"detail": "The request body contains validation errors.",
"errors": [
{
"pointer": "/steps/0/subject",
"detail": "First email should have subject."
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "You do not have permission to create sequence.",
"code": "sequence.forbidden"
}{
"title": "Not Found",
"status": 404,
"detail": "Some of the email accounts are not found.",
"code": "sequence.emailAccountNotFound"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}Create a sequence
sequences:write scope (or a broader one that includes it).
Use this endpoint when you need a new sequence to send from. Only name is required: omit scheduleId to fall back to your default schedule, and supply settings, emailAccounts, linkedInAccounts and steps now or add them later. Steps must all follow one shape — either none of them carry id and parentId, in which case each step runs after the one before it, or every step carries an id used as a local reference with exactly one of them having parentId set to null; every variant of the first email step needs a subject. The new sequence is returned in full with its assigned id and starts out in the new status, holding no contacts and sending nothing until you add contacts and call the start endpoint.
curl --request POST \
--url https://api.reply.io/v3/sequences \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Sales Outreach 2024",
"scheduleId": 1,
"emailAccounts": [
101,
102
],
"linkedInAccounts": [
42
],
"settings": {
"emailsCountPerDay": 50,
"daysToFinishProspect": 14,
"emailSendingDelaySeconds": 30,
"dailyThrottling": 200,
"useDailyThrottling": true,
"disableOpensTracking": false,
"repliesHandlingType": "markAsFinished",
"enableLinksTracking": true
},
"steps": [
{
"type": "email",
"delayInMinutes": 0,
"executionMode": "automatic",
"variants": [
{
"subject": "Quick question about {{companyName}}",
"message": "<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>"
}
]
},
{
"type": "linkedIn",
"actionType": "message",
"delayInMinutes": 1440,
"executionMode": "automatic",
"variants": [
{
"message": "Hi {{firstName}}, would love to connect!",
"isEnabled": true
}
]
}
]
}
'import requests
url = "https://api.reply.io/v3/sequences"
payload = {
"name": "Sales Outreach 2024",
"scheduleId": 1,
"emailAccounts": [101, 102],
"linkedInAccounts": [42],
"settings": {
"emailsCountPerDay": 50,
"daysToFinishProspect": 14,
"emailSendingDelaySeconds": 30,
"dailyThrottling": 200,
"useDailyThrottling": True,
"disableOpensTracking": False,
"repliesHandlingType": "markAsFinished",
"enableLinksTracking": True
},
"steps": [
{
"type": "email",
"delayInMinutes": 0,
"executionMode": "automatic",
"variants": [
{
"subject": "Quick question about {{companyName}}",
"message": "<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>"
}
]
},
{
"type": "linkedIn",
"actionType": "message",
"delayInMinutes": 1440,
"executionMode": "automatic",
"variants": [
{
"message": "Hi {{firstName}}, would love to connect!",
"isEnabled": True
}
]
}
]
}
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({
name: 'Sales Outreach 2024',
scheduleId: 1,
emailAccounts: [101, 102],
linkedInAccounts: [42],
settings: {
emailsCountPerDay: 50,
daysToFinishProspect: 14,
emailSendingDelaySeconds: 30,
dailyThrottling: 200,
useDailyThrottling: true,
disableOpensTracking: false,
repliesHandlingType: 'markAsFinished',
enableLinksTracking: true
},
steps: [
{
type: 'email',
delayInMinutes: 0,
executionMode: 'automatic',
variants: [
{
subject: 'Quick question about {{companyName}}',
message: '<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>'
}
]
},
{
type: 'linkedIn',
actionType: 'message',
delayInMinutes: 1440,
executionMode: 'automatic',
variants: [{message: 'Hi {{firstName}}, would love to connect!', isEnabled: true}]
}
]
})
};
fetch('https://api.reply.io/v3/sequences', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.reply.io/v3/sequences",
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([
'name' => 'Sales Outreach 2024',
'scheduleId' => 1,
'emailAccounts' => [
101,
102
],
'linkedInAccounts' => [
42
],
'settings' => [
'emailsCountPerDay' => 50,
'daysToFinishProspect' => 14,
'emailSendingDelaySeconds' => 30,
'dailyThrottling' => 200,
'useDailyThrottling' => true,
'disableOpensTracking' => false,
'repliesHandlingType' => 'markAsFinished',
'enableLinksTracking' => true
],
'steps' => [
[
'type' => 'email',
'delayInMinutes' => 0,
'executionMode' => 'automatic',
'variants' => [
[
'subject' => 'Quick question about {{companyName}}',
'message' => '<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>'
]
]
],
[
'type' => 'linkedIn',
'actionType' => 'message',
'delayInMinutes' => 1440,
'executionMode' => 'automatic',
'variants' => [
[
'message' => 'Hi {{firstName}}, would love to connect!',
'isEnabled' => true
]
]
]
]
]),
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.reply.io/v3/sequences"
payload := strings.NewReader("{\n \"name\": \"Sales Outreach 2024\",\n \"scheduleId\": 1,\n \"emailAccounts\": [\n 101,\n 102\n ],\n \"linkedInAccounts\": [\n 42\n ],\n \"settings\": {\n \"emailsCountPerDay\": 50,\n \"daysToFinishProspect\": 14,\n \"emailSendingDelaySeconds\": 30,\n \"dailyThrottling\": 200,\n \"useDailyThrottling\": true,\n \"disableOpensTracking\": false,\n \"repliesHandlingType\": \"markAsFinished\",\n \"enableLinksTracking\": true\n },\n \"steps\": [\n {\n \"type\": \"email\",\n \"delayInMinutes\": 0,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"subject\": \"Quick question about {{companyName}}\",\n \"message\": \"<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>\"\n }\n ]\n },\n {\n \"type\": \"linkedIn\",\n \"actionType\": \"message\",\n \"delayInMinutes\": 1440,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"message\": \"Hi {{firstName}}, would love to connect!\",\n \"isEnabled\": true\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))
}HttpResponse<String> response = Unirest.post("https://api.reply.io/v3/sequences")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Sales Outreach 2024\",\n \"scheduleId\": 1,\n \"emailAccounts\": [\n 101,\n 102\n ],\n \"linkedInAccounts\": [\n 42\n ],\n \"settings\": {\n \"emailsCountPerDay\": 50,\n \"daysToFinishProspect\": 14,\n \"emailSendingDelaySeconds\": 30,\n \"dailyThrottling\": 200,\n \"useDailyThrottling\": true,\n \"disableOpensTracking\": false,\n \"repliesHandlingType\": \"markAsFinished\",\n \"enableLinksTracking\": true\n },\n \"steps\": [\n {\n \"type\": \"email\",\n \"delayInMinutes\": 0,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"subject\": \"Quick question about {{companyName}}\",\n \"message\": \"<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>\"\n }\n ]\n },\n {\n \"type\": \"linkedIn\",\n \"actionType\": \"message\",\n \"delayInMinutes\": 1440,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"message\": \"Hi {{firstName}}, would love to connect!\",\n \"isEnabled\": true\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Sales Outreach 2024\",\n \"scheduleId\": 1,\n \"emailAccounts\": [\n 101,\n 102\n ],\n \"linkedInAccounts\": [\n 42\n ],\n \"settings\": {\n \"emailsCountPerDay\": 50,\n \"daysToFinishProspect\": 14,\n \"emailSendingDelaySeconds\": 30,\n \"dailyThrottling\": 200,\n \"useDailyThrottling\": true,\n \"disableOpensTracking\": false,\n \"repliesHandlingType\": \"markAsFinished\",\n \"enableLinksTracking\": true\n },\n \"steps\": [\n {\n \"type\": \"email\",\n \"delayInMinutes\": 0,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"subject\": \"Quick question about {{companyName}}\",\n \"message\": \"<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards</p>\"\n }\n ]\n },\n {\n \"type\": \"linkedIn\",\n \"actionType\": \"message\",\n \"delayInMinutes\": 1440,\n \"executionMode\": \"automatic\",\n \"variants\": [\n {\n \"message\": \"Hi {{firstName}}, would love to connect!\",\n \"isEnabled\": true\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"ownerUserId": 42,
"name": "Sales Outreach 2024",
"created": "2024-03-08T14:30:00+00:00",
"status": "active",
"isArchived": false,
"health": "degraded",
"scheduleId": 1,
"emailAccounts": [
{
"id": 1,
"email": "sales@company.com"
},
{
"id": 2,
"email": "outreach@company.com"
}
],
"linkedInAccounts": [
{
"id": 42,
"name": "John Doe",
"profileUrl": "https://www.linkedin.com/in/johndoe",
"status": "enabled"
}
],
"settings": {
"emailsCountPerDay": 50,
"daysToFinishProspect": 14,
"emailSendingDelaySeconds": 30,
"dailyThrottling": 200,
"disableOpensTracking": false,
"repliesHandlingType": "markAsFinished",
"enableLinksTracking": true
},
"steps": [
{
"id": 1323,
"type": "email",
"delayInMinutes": 0,
"executionMode": "automatic",
"variants": [
{
"id": 1,
"subject": "Quick question about {{companyName}}",
"message": "<p>Hi {{firstName}},</p><p>I noticed you are leading initiatives at {{companyName}} and wanted to reach out.</p><p>Best regards, John</p>"
}
]
},
{
"id": 43432,
"type": "linkedIn",
"actionType": "message",
"delayInMinutes": 2880,
"executionMode": "automatic",
"variants": [
{
"id": 2,
"message": "Hi {{firstName}}, I noticed your great work at {{companyName}}. Would love to connect!",
"isEnabled": true
}
]
}
]
}{
"title": "Validation failed",
"status": 400,
"detail": "The request body contains validation errors.",
"errors": [
{
"pointer": "/steps/0/subject",
"detail": "First email should have subject."
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "You do not have permission to create sequence.",
"code": "sequence.forbidden"
}{
"title": "Not Found",
"status": 404,
"detail": "Some of the email accounts are not found.",
"code": "sequence.emailAccountNotFound"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}Authorizations
Authenticate every request with a Bearer token. Pass your Reply API key in the
Authorization header:
Authorization: Bearer <your-api-key>
Get your API key from the Reply dashboard: Settings → API Key.
Body
Create a new sequence
Name of the sequence
ID of the schedule to use
x >= 1Settings configuration for a sequence
Show child attributes
Show child attributes
Array of email account IDs
x >= 1Array of LinkedIn account IDs
x >= 1Array of sequence steps. Select a step type to see its configuration.
Email step with variant configuration
- Email
- LinkedIn Message
- LinkedIn Connect
- LinkedIn InMail
- LinkedIn View Profile
- LinkedIn Endorse Skills
- LinkedIn Voice Message
- LinkedIn Like Recent Posts
- LinkedIn Follow Profile
- LinkedIn Comment On Recent Post
- Call
- SMS
- WhatsApp
- Zapier
- Task
- Condition
Show child attributes
Show child attributes
Response
Sequence created successfully
Full representation of a sequence, including its schedule and the email and LinkedIn accounts used to send from it.
Unique identifier for the sequence
Identifier of the user who owns the sequence
Name of the sequence
Sequence creation timestamp with timezone offset
Current status of the sequence
new, active, paused Indicates if the sequence is archived
Overall health status of the sequence. Indicates whether the sequence can operate normally or has issues that need attention.
healthy— Sequence is functioning normally with no issuesstalled— Sequence has stalled and is not progressingdegraded— Sequence is running but with reduced effectivenessblocked— Sequence cannot proceed due to critical issues
healthy, stalled, degraded, blocked Schedule ID
Email accounts used to send emails for this sequence
Show child attributes
Show child attributes
LinkedIn accounts linked to this sequence
Show child attributes
Show child attributes
Settings configuration for a sequence
Show child attributes
Show child attributes
Array of sequence steps
Email step with variant configuration
- Email
- LinkedIn Message
- LinkedIn Connect
- LinkedIn InMail
- LinkedIn View Profile
- LinkedIn Endorse Skills
- LinkedIn Voice Message
- LinkedIn Like Recent Posts
- LinkedIn Follow Profile
- LinkedIn Comment On Recent Post
- Call
- SMS
- WhatsApp
- Zapier
- Task
- Condition
Show child attributes
Show child attributes