Move a contact to a sequence
curl --request POST \
--url https://api.reply.io/v3/contacts/{id}/move-to-sequence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sequenceId": 123,
"removeFromExisting": false,
"startStepId": 123,
"ignoreStepDelay": false,
"startFrom": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.reply.io/v3/contacts/{id}/move-to-sequence"
payload = {
"sequenceId": 123,
"removeFromExisting": False,
"startStepId": 123,
"ignoreStepDelay": False,
"startFrom": "2023-11-07T05:31:56Z"
}
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({
sequenceId: 123,
removeFromExisting: false,
startStepId: 123,
ignoreStepDelay: false,
startFrom: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.reply.io/v3/contacts/{id}/move-to-sequence', 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/contacts/{id}/move-to-sequence",
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([
'sequenceId' => 123,
'removeFromExisting' => false,
'startStepId' => 123,
'ignoreStepDelay' => false,
'startFrom' => '2023-11-07T05:31:56Z'
]),
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/contacts/{id}/move-to-sequence"
payload := strings.NewReader("{\n \"sequenceId\": 123,\n \"removeFromExisting\": false,\n \"startStepId\": 123,\n \"ignoreStepDelay\": false,\n \"startFrom\": \"2023-11-07T05:31:56Z\"\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/contacts/{id}/move-to-sequence")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sequenceId\": 123,\n \"removeFromExisting\": false,\n \"startStepId\": 123,\n \"ignoreStepDelay\": false,\n \"startFrom\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/contacts/{id}/move-to-sequence")
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 \"sequenceId\": 123,\n \"removeFromExisting\": false,\n \"startStepId\": 123,\n \"ignoreStepDelay\": false,\n \"startFrom\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body"<unknown>"
Contacts
Move a contact to a sequence
Requires the
contacts:operate scope (or a broader one that includes it).
Moves a contact to a different sequence, optionally removing from existing sequences
POST
/
v3
/
contacts
/
{id}
/
move-to-sequence
Move a contact to a sequence
curl --request POST \
--url https://api.reply.io/v3/contacts/{id}/move-to-sequence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sequenceId": 123,
"removeFromExisting": false,
"startStepId": 123,
"ignoreStepDelay": false,
"startFrom": "2023-11-07T05:31:56Z"
}
'import requests
url = "https://api.reply.io/v3/contacts/{id}/move-to-sequence"
payload = {
"sequenceId": 123,
"removeFromExisting": False,
"startStepId": 123,
"ignoreStepDelay": False,
"startFrom": "2023-11-07T05:31:56Z"
}
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({
sequenceId: 123,
removeFromExisting: false,
startStepId: 123,
ignoreStepDelay: false,
startFrom: '2023-11-07T05:31:56Z'
})
};
fetch('https://api.reply.io/v3/contacts/{id}/move-to-sequence', 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/contacts/{id}/move-to-sequence",
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([
'sequenceId' => 123,
'removeFromExisting' => false,
'startStepId' => 123,
'ignoreStepDelay' => false,
'startFrom' => '2023-11-07T05:31:56Z'
]),
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/contacts/{id}/move-to-sequence"
payload := strings.NewReader("{\n \"sequenceId\": 123,\n \"removeFromExisting\": false,\n \"startStepId\": 123,\n \"ignoreStepDelay\": false,\n \"startFrom\": \"2023-11-07T05:31:56Z\"\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/contacts/{id}/move-to-sequence")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"sequenceId\": 123,\n \"removeFromExisting\": false,\n \"startStepId\": 123,\n \"ignoreStepDelay\": false,\n \"startFrom\": \"2023-11-07T05:31:56Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/contacts/{id}/move-to-sequence")
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 \"sequenceId\": 123,\n \"removeFromExisting\": false,\n \"startStepId\": 123,\n \"ignoreStepDelay\": false,\n \"startFrom\": \"2023-11-07T05:31:56Z\"\n}"
response = http.request(request)
puts response.read_body"<unknown>"
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
Contact ID
Body
application/json
Target sequence ID to move the contact to
Whether to remove the contact from their current sequence
Optional step ID to start from in the target sequence
If true, skip the configured delay before the first step and start processing immediately
Optional date when contact processing should begin. If not provided, processing starts immediately.
Response
Contact moved to sequence successfully. The response body is empty.
Empty body
⌘I