curl --request POST \
--url https://api.reply.io/v3/sequences/{id}/contacts/set-email-account \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contactIds": [
123
],
"emailAccountId": 123
}
'import requests
url = "https://api.reply.io/v3/sequences/{id}/contacts/set-email-account"
payload = {
"contactIds": [123],
"emailAccountId": 123
}
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({contactIds: [123], emailAccountId: 123})
};
fetch('https://api.reply.io/v3/sequences/{id}/contacts/set-email-account', 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}/contacts/set-email-account",
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([
'contactIds' => [
123
],
'emailAccountId' => 123
]),
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/{id}/contacts/set-email-account"
payload := strings.NewReader("{\n \"contactIds\": [\n 123\n ],\n \"emailAccountId\": 123\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/{id}/contacts/set-email-account")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contactIds\": [\n 123\n ],\n \"emailAccountId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences/{id}/contacts/set-email-account")
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 \"contactIds\": [\n 123\n ],\n \"emailAccountId\": 123\n}"
response = http.request(request)
puts response.read_body{
"assigned": [
123
],
"notProcessed": {}
}Set the sending mailbox for contacts in this sequence
New. This endpoint shipped recently. If anything about it is unclear or could work better for you, tell us in the developer Slack.
sequences:operate scope (or a broader one that includes it).
Repoint contacts already in this sequence at a different sending mailbox. Up to 100 ids; the mailbox must already be linked.
curl --request POST \
--url https://api.reply.io/v3/sequences/{id}/contacts/set-email-account \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contactIds": [
123
],
"emailAccountId": 123
}
'import requests
url = "https://api.reply.io/v3/sequences/{id}/contacts/set-email-account"
payload = {
"contactIds": [123],
"emailAccountId": 123
}
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({contactIds: [123], emailAccountId: 123})
};
fetch('https://api.reply.io/v3/sequences/{id}/contacts/set-email-account', 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}/contacts/set-email-account",
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([
'contactIds' => [
123
],
'emailAccountId' => 123
]),
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/{id}/contacts/set-email-account"
payload := strings.NewReader("{\n \"contactIds\": [\n 123\n ],\n \"emailAccountId\": 123\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/{id}/contacts/set-email-account")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"contactIds\": [\n 123\n ],\n \"emailAccountId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences/{id}/contacts/set-email-account")
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 \"contactIds\": [\n 123\n ],\n \"emailAccountId\": 123\n}"
response = http.request(request)
puts response.read_body{
"assigned": [
123
],
"notProcessed": {}
}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
Body
Contact IDs to repoint. At least one, at most 100. Each ID must be positive, and duplicates are rejected.
1 - 100 elementsID of the mailbox the contacts should send from. It must already be linked to this sequence —
link it with POST /v3/sequences/{id}/email-account-links first.
Response
Non-atomic result. assigned lists the contact ids now sending from that mailbox, including any that were already on it — so repeating the same call is safe. notProcessed maps every other id to the reason it was skipped.
Per-item failures use the SequenceContactError enum. Possible per-item slugs:
| Slug | Meaning |
|---|---|
notInSequence | Contact is not in this sequence |
unknown | Contact could not be repointed |