curl --request GET \
--url https://api.reply.io/v3/settings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/settings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/settings', 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/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/settings"
req, _ := http.NewRequest("GET", 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.get("https://api.reply.io/v3/settings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"account": {
"firstName": "<string>",
"lastName": "<string>",
"company": "<string>",
"phone": "<string>",
"title": "<string>",
"timezone": "<string>"
},
"emails": {
"isEmailQualityCheckEnabled": true,
"safety": {
"firstStepDelay": 1,
"prospectEmailsPerDayLimit": 2,
"nonRepliesHandlingType": 1,
"inboxNonRepliesHandlingType": 0
},
"inbox": {
"bccList": "<string>",
"repliesBccList": "<string>",
"forwardOnlyReplies": true
},
"outOfOffice": {
"isResumeOutOfOfficeContactsEnabled": true,
"isUseSmartReturnDateEnabled": true,
"defaultDaysToWaitBeforeResumingOutOfOffice": 2,
"maximumDaysThresholdBeforeResumingOutOfOffice": 2
},
"isOpenTrackingDisabled": true,
"isAutomaticEmailValidationEnabled": true,
"reassignSequenceProspectsWhenEmailAccountAdded": true
},
"linkedIn": {
"reassignSequenceProspectsWhenLinkedInAccountAdded": true
},
"calls": {
"isTeamCallsEnabled": true,
"resolutions": [
{
"name": "<string>",
"id": 123,
"defaultResolutionValue": 1,
"isDefault": true
}
]
},
"contacts": {
"handling": {
"pauseProspectOrganizationMode": true,
"pauseProspectOrganizationValue": 1,
"pauseProspectInAllCampaignMode": true,
"pauseProspectInAllCampaignValue": 1,
"leaveProspectsInSequenceWhenMovingToAnother": true,
"enrichProspectWhenLinkedInUrlIsMissing": true
},
"contactAccounts": {
"autoPopulate": true,
"overwriteFields": true
},
"contactStages": [
{
"id": 4,
"name": "<string>",
"colorId": 123,
"description": "<string>"
}
],
"accountStages": [
{
"id": 4,
"name": "<string>",
"colorId": 123
}
]
},
"beta": {
"isBetaFeaturesEnabled": true
}
}{
"title": "Bad Request",
"status": 400,
"detail": "Settings cannot be retrieved while the team is suspended.",
"code": "settings.invalidOperation"
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Feature scopes [ViewSettings] are denied for userId 123.",
"code": "settings.forbidden"
}{
"title": "Not Found",
"status": 404,
"detail": "User settings not found.",
"code": "settings.notFound"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "Rate limit exceeded. Retry after 60 seconds."
}Get settings
settings:read scope (or a broader one that includes it).
Returns the full settings object for the authenticated user’s team, including account profile, email configuration, LinkedIn, calls, contacts, and beta features.
curl --request GET \
--url https://api.reply.io/v3/settings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/settings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/settings', 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/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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/settings"
req, _ := http.NewRequest("GET", 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.get("https://api.reply.io/v3/settings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"account": {
"firstName": "<string>",
"lastName": "<string>",
"company": "<string>",
"phone": "<string>",
"title": "<string>",
"timezone": "<string>"
},
"emails": {
"isEmailQualityCheckEnabled": true,
"safety": {
"firstStepDelay": 1,
"prospectEmailsPerDayLimit": 2,
"nonRepliesHandlingType": 1,
"inboxNonRepliesHandlingType": 0
},
"inbox": {
"bccList": "<string>",
"repliesBccList": "<string>",
"forwardOnlyReplies": true
},
"outOfOffice": {
"isResumeOutOfOfficeContactsEnabled": true,
"isUseSmartReturnDateEnabled": true,
"defaultDaysToWaitBeforeResumingOutOfOffice": 2,
"maximumDaysThresholdBeforeResumingOutOfOffice": 2
},
"isOpenTrackingDisabled": true,
"isAutomaticEmailValidationEnabled": true,
"reassignSequenceProspectsWhenEmailAccountAdded": true
},
"linkedIn": {
"reassignSequenceProspectsWhenLinkedInAccountAdded": true
},
"calls": {
"isTeamCallsEnabled": true,
"resolutions": [
{
"name": "<string>",
"id": 123,
"defaultResolutionValue": 1,
"isDefault": true
}
]
},
"contacts": {
"handling": {
"pauseProspectOrganizationMode": true,
"pauseProspectOrganizationValue": 1,
"pauseProspectInAllCampaignMode": true,
"pauseProspectInAllCampaignValue": 1,
"leaveProspectsInSequenceWhenMovingToAnother": true,
"enrichProspectWhenLinkedInUrlIsMissing": true
},
"contactAccounts": {
"autoPopulate": true,
"overwriteFields": true
},
"contactStages": [
{
"id": 4,
"name": "<string>",
"colorId": 123,
"description": "<string>"
}
],
"accountStages": [
{
"id": 4,
"name": "<string>",
"colorId": 123
}
]
},
"beta": {
"isBetaFeaturesEnabled": true
}
}{
"title": "Bad Request",
"status": 400,
"detail": "Settings cannot be retrieved while the team is suspended.",
"code": "settings.invalidOperation"
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Feature scopes [ViewSettings] are denied for userId 123.",
"code": "settings.forbidden"
}{
"title": "Not Found",
"status": 404,
"detail": "User settings not found.",
"code": "settings.notFound"
}{
"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.
Response
Settings retrieved successfully
Team and user settings. All properties are nullable — on GET, null means the setting is not configured or not applicable. On PATCH, only properties present in the JSON body are updated.
User profile settings
Show child attributes
Show child attributes
Email-related settings
Show child attributes
Show child attributes
LinkedIn-related settings
Show child attributes
Show child attributes
Call-related settings
Show child attributes
Show child attributes
Contact-related settings
Show child attributes
Show child attributes
Beta features settings
Show child attributes
Show child attributes