Set generated step types
curl --request PUT \
--url https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"generatedStepTypes": []
}
'import requests
url = "https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types"
payload = { "generatedStepTypes": [] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({generatedStepTypes: []})
};
fetch('https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types', 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/ai-sdr/{sequence_id}/generated-step-types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'generatedStepTypes' => [
]
]),
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/ai-sdr/{sequence_id}/generated-step-types"
payload := strings.NewReader("{\n \"generatedStepTypes\": []\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"generatedStepTypes\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"generatedStepTypes\": []\n}"
response = http.request(request)
puts response.read_bodySequences
Set generated step types
Requires the
ai-sdr:write scope (or a broader one that includes it).
Set the mix of channels the AI SDR may generate steps for. Send the full set you want — at least one, with no duplicates.
PUT
/
v3
/
sequences
/
ai-sdr
/
{sequence_id}
/
generated-step-types
Set generated step types
curl --request PUT \
--url https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"generatedStepTypes": []
}
'import requests
url = "https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types"
payload = { "generatedStepTypes": [] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({generatedStepTypes: []})
};
fetch('https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types', 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/ai-sdr/{sequence_id}/generated-step-types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'generatedStepTypes' => [
]
]),
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/ai-sdr/{sequence_id}/generated-step-types"
payload := strings.NewReader("{\n \"generatedStepTypes\": []\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"generatedStepTypes\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/sequences/ai-sdr/{sequence_id}/generated-step-types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"generatedStepTypes\": []\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
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
Required range:
x >= 1Body
application/json
Replaces the channels of steps the AI SDR is allowed to generate, and regenerates the sequence steps using the new mix. Rejected (409) when the sequence has already acted on contacts (sent emails or LinkedIn messages, generated tasks, etc.).
Step channels the AI SDR is allowed to generate. Non-empty, no duplicates.
Minimum array length:
1Channel of a step the AI SDR is allowed to generate when building the sequence.
Available options:
email, linkedIn, call, linkedInInMail, linkedInAiVoice Response
Step types updated and regeneration triggered