Queue outreach pitches for sending
curl --request POST \
--url https://api.snowseo.com/v3/outreach/outbox/queue \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"prospectEmailId": "<string>",
"subject": "<string>",
"body": "<string>",
"prospectId": "<string>"
}
],
"sendNow": true,
"sendingAccountId": "<string>"
}
'import requests
url = "https://api.snowseo.com/v3/outreach/outbox/queue"
payload = {
"items": [
{
"prospectEmailId": "<string>",
"subject": "<string>",
"body": "<string>",
"prospectId": "<string>"
}
],
"sendNow": True,
"sendingAccountId": "<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({
items: [
{
prospectEmailId: '<string>',
subject: '<string>',
body: JSON.stringify('<string>'),
prospectId: '<string>'
}
],
sendNow: true,
sendingAccountId: '<string>'
})
};
fetch('https://api.snowseo.com/v3/outreach/outbox/queue', 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.snowseo.com/v3/outreach/outbox/queue",
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([
'items' => [
[
'prospectEmailId' => '<string>',
'subject' => '<string>',
'body' => '<string>',
'prospectId' => '<string>'
]
],
'sendNow' => true,
'sendingAccountId' => '<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.snowseo.com/v3/outreach/outbox/queue"
payload := strings.NewReader("{\n \"items\": [\n {\n \"prospectEmailId\": \"<string>\",\n \"subject\": \"<string>\",\n \"body\": \"<string>\",\n \"prospectId\": \"<string>\"\n }\n ],\n \"sendNow\": true,\n \"sendingAccountId\": \"<string>\"\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.snowseo.com/v3/outreach/outbox/queue")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"prospectEmailId\": \"<string>\",\n \"subject\": \"<string>\",\n \"body\": \"<string>\",\n \"prospectId\": \"<string>\"\n }\n ],\n \"sendNow\": true,\n \"sendingAccountId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/outreach/outbox/queue")
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 \"items\": [\n {\n \"prospectEmailId\": \"<string>\",\n \"subject\": \"<string>\",\n \"body\": \"<string>\",\n \"prospectId\": \"<string>\"\n }\n ],\n \"sendNow\": true,\n \"sendingAccountId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"queued": 123,
"queuedConversationIds": [
"<string>"
],
"updated": 123,
"skipped": 123,
"sendNow": true,
"spacingMs": 123
}Backlink Outreach
Queue Pitches
Queue approved email copy for selected prospect contacts.
POST
/
v3
/
outreach
/
outbox
/
queue
Queue outreach pitches for sending
curl --request POST \
--url https://api.snowseo.com/v3/outreach/outbox/queue \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"prospectEmailId": "<string>",
"subject": "<string>",
"body": "<string>",
"prospectId": "<string>"
}
],
"sendNow": true,
"sendingAccountId": "<string>"
}
'import requests
url = "https://api.snowseo.com/v3/outreach/outbox/queue"
payload = {
"items": [
{
"prospectEmailId": "<string>",
"subject": "<string>",
"body": "<string>",
"prospectId": "<string>"
}
],
"sendNow": True,
"sendingAccountId": "<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({
items: [
{
prospectEmailId: '<string>',
subject: '<string>',
body: JSON.stringify('<string>'),
prospectId: '<string>'
}
],
sendNow: true,
sendingAccountId: '<string>'
})
};
fetch('https://api.snowseo.com/v3/outreach/outbox/queue', 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.snowseo.com/v3/outreach/outbox/queue",
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([
'items' => [
[
'prospectEmailId' => '<string>',
'subject' => '<string>',
'body' => '<string>',
'prospectId' => '<string>'
]
],
'sendNow' => true,
'sendingAccountId' => '<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.snowseo.com/v3/outreach/outbox/queue"
payload := strings.NewReader("{\n \"items\": [\n {\n \"prospectEmailId\": \"<string>\",\n \"subject\": \"<string>\",\n \"body\": \"<string>\",\n \"prospectId\": \"<string>\"\n }\n ],\n \"sendNow\": true,\n \"sendingAccountId\": \"<string>\"\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.snowseo.com/v3/outreach/outbox/queue")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"prospectEmailId\": \"<string>\",\n \"subject\": \"<string>\",\n \"body\": \"<string>\",\n \"prospectId\": \"<string>\"\n }\n ],\n \"sendNow\": true,\n \"sendingAccountId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/outreach/outbox/queue")
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 \"items\": [\n {\n \"prospectEmailId\": \"<string>\",\n \"subject\": \"<string>\",\n \"body\": \"<string>\",\n \"prospectId\": \"<string>\"\n }\n ],\n \"sendNow\": true,\n \"sendingAccountId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"queued": 123,
"queuedConversationIds": [
"<string>"
],
"updated": 123,
"skipped": 123,
"sendNow": true,
"spacingMs": 123
}This endpoint schedules real email to real people. Messages cannot be recalled once sent. Use
sendNow only when immediate sending was explicitly requested.items, each with a prospectEmailId, subject, and Markdown body. Find the address IDs with Outreach Contacts. Optionally choose one sendingAccountId; omit it to rotate across connected mailboxes.
The response reports queued, updated, skipped, sendNow, and spacingMs. Compare these counts with the items supplied: incomplete or invalid entries are skipped, and queueing an address already in the queue updates its unsent copy rather than sending a duplicate. A batch is paced even when sendNow is true; immediate sending is limited to one new recipient.
Use Outreach Sending to review messages still in the queue. Those can be removed before sending.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
One entry per recipient.
Required array length:
1 - 200 elementsShow child attributes
Show child attributes
Send immediately instead of pacing across the daily limit. Leave false unless the user asked for it.
Send from one specific mailbox. Omit to rotate across all connected mailboxes.
Was this page helpful?

