curl --request POST \
--url https://api.reply.io/v3/sequences/{id}/unarchive \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/sequences/{id}/unarchive"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/sequences/{id}/unarchive', 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/{id}/unarchive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.reply.io/v3/sequences/{id}/unarchive"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/{id}/unarchive")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences/{id}/unarchive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
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 {{Company}}",
"message": "<p>Hi {{FirstName}},</p><p>I noticed you are leading initiatives at {{Company}} 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 {{Company}}. Would love to connect!",
"isEnabled": true
}
]
}
]
}{
"title": "Validation failed",
"status": 400,
"detail": "One or more validation errors occurred.",
"errors": [
{
"pointer": "id",
"detail": "The field id must be between 1 and 2147483647."
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "You do not have permission to unarchive sequence.",
"code": "sequenceAction.forbidden"
}{
"title": "Not Found",
"status": 404,
"detail": "Sequence with ID 42 is not found.",
"code": "sequenceAction.notFound"
}{
"title": "Conflict",
"status": 409,
"detail": "Sequence is not archived.",
"code": "sequenceAction.notArchived"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "API calls quota exceeded! maximum admitted 100 per 1m."
}Unarchive a sequence
sequences:operate scope (or a broader one that includes it).
Bring an archived sequence back to its old status. Its contacts aren’t put back, so add them again before starting.
curl --request POST \
--url https://api.reply.io/v3/sequences/{id}/unarchive \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/sequences/{id}/unarchive"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/sequences/{id}/unarchive', 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/{id}/unarchive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.reply.io/v3/sequences/{id}/unarchive"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/{id}/unarchive")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences/{id}/unarchive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
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 {{Company}}",
"message": "<p>Hi {{FirstName}},</p><p>I noticed you are leading initiatives at {{Company}} 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 {{Company}}. Would love to connect!",
"isEnabled": true
}
]
}
]
}{
"title": "Validation failed",
"status": 400,
"detail": "One or more validation errors occurred.",
"errors": [
{
"pointer": "id",
"detail": "The field id must be between 1 and 2147483647."
}
]
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "You do not have permission to unarchive sequence.",
"code": "sequenceAction.forbidden"
}{
"title": "Not Found",
"status": 404,
"detail": "Sequence with ID 42 is not found.",
"code": "sequenceAction.notFound"
}{
"title": "Conflict",
"status": 409,
"detail": "Sequence is not archived.",
"code": "sequenceAction.notArchived"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "API calls quota exceeded! maximum admitted 100 per 1m."
}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.
Path Parameters
Sequence Id
x >= 1Response
Sequence unarchived 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, ordered by their position number in the sequence
Email step with variant configuration
- Email
- LinkedIn Message
- LinkedIn Connect
- LinkedIn InMail
- LinkedIn View Profile
- LinkedIn Endorse Skills
- LinkedIn Voice Message
- LinkedIn AI 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