Sequences
Send Sequence Step Test
Send one saved sequence email step to internal reviewers
POST
/
api
/
v1
/
sequences
/
{sequenceId}
/
nodes
/
{nodeId}
/
test
Send Sequence Step Test
curl --request POST \
--url https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipients": [
"<string>"
]
}
'import requests
url = "https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test"
payload = { "recipients": ["<string>"] }
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({recipients: ['<string>']})
};
fetch('https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test', 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.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test",
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([
'recipients' => [
'<string>'
]
]),
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.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test"
payload := strings.NewReader("{\n \"recipients\": [\n \"<string>\"\n ]\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.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"recipients\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test")
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 \"recipients\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Queued 2 sequence step test emails",
"sequenceId": "seq_abc123",
"nodeId": "node_email_2",
"results": [
{
"recipientEmail": "reviewer-one@example.com",
"emailSendId": "send_abc123",
"jobId": "123"
},
{
"recipientEmail": "reviewer-two@example.com",
"emailSendId": "send_def456",
"jobId": "124"
}
]
}
{
"error": "Sequence step is not an email step"
}
{
"error": "Sequence step not found"
}
Send Sequence Step Test
Queue a real test email for one saved email step without enabling the sequence or enrolling subscribers. Use the sequence detail endpoint first to find the email step’snodeId. You can send the same step to up to ten reviewers.
Each result includes a durable emailSendId; pass it to the email-send details
endpoint to inspect delivery status and provider failures.
Request
string
required
Sequence ID containing the saved email step.
string
required
Email step node ID returned by
GET /api/v1/sequences/{sequenceId}.string[]
required
One to ten internal reviewer email addresses. Duplicate addresses are sent
only once.
curl -X POST \
"https://api.sequenzy.com/api/v1/sequences/seq_abc123/nodes/node_email_2/test" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipients": [
"reviewer-one@example.com",
"reviewer-two@example.com"
]
}'
Responses
{
"success": true,
"message": "Queued 2 sequence step test emails",
"sequenceId": "seq_abc123",
"nodeId": "node_email_2",
"results": [
{
"recipientEmail": "reviewer-one@example.com",
"emailSendId": "send_abc123",
"jobId": "123"
},
{
"recipientEmail": "reviewer-two@example.com",
"emailSendId": "send_def456",
"jobId": "124"
}
]
}
jobId is a legacy queue identifier. Use emailSendId for delivery status.{
"error": "Sequence step is not an email step"
}
{
"error": "Sequence step not found"
}
Previous
Create SequenceCreate an automation sequence with AI-generated or explicit email/action steps
Next
⌘I
Send Sequence Step Test
curl --request POST \
--url https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipients": [
"<string>"
]
}
'import requests
url = "https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test"
payload = { "recipients": ["<string>"] }
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({recipients: ['<string>']})
};
fetch('https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test', 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.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test",
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([
'recipients' => [
'<string>'
]
]),
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.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test"
payload := strings.NewReader("{\n \"recipients\": [\n \"<string>\"\n ]\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.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"recipients\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/sequences/{sequenceId}/nodes/{nodeId}/test")
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 \"recipients\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Queued 2 sequence step test emails",
"sequenceId": "seq_abc123",
"nodeId": "node_email_2",
"results": [
{
"recipientEmail": "reviewer-one@example.com",
"emailSendId": "send_abc123",
"jobId": "123"
},
{
"recipientEmail": "reviewer-two@example.com",
"emailSendId": "send_def456",
"jobId": "124"
}
]
}
{
"error": "Sequence step is not an email step"
}
{
"error": "Sequence step not found"
}