Add backlink outreach prospects by domain or URL
curl --request POST \
--url https://api.snowseo.com/v3/outreach/prospects \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "<string>",
"domains": [
"<string>"
]
}
'import requests
url = "https://api.snowseo.com/v3/outreach/prospects"
payload = {
"domain": "<string>",
"domains": ["<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({domain: '<string>', domains: ['<string>']})
};
fetch('https://api.snowseo.com/v3/outreach/prospects', 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/prospects",
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([
'domain' => '<string>',
'domains' => [
'<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/prospects"
payload := strings.NewReader("{\n \"domain\": \"<string>\",\n \"domains\": [\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.snowseo.com/v3/outreach/prospects")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain\": \"<string>\",\n \"domains\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/outreach/prospects")
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 \"domain\": \"<string>\",\n \"domains\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"added": 123,
"skipped": 123,
"invalid": 123,
"prospects": [
{
"id": "<string>",
"domain": "<string>",
"status": "<string>",
"source": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
]
}Prospects
Add prospects
Add sites you already know are worth pitching.
POST
/
v3
/
outreach
/
prospects
Add backlink outreach prospects by domain or URL
curl --request POST \
--url https://api.snowseo.com/v3/outreach/prospects \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "<string>",
"domains": [
"<string>"
]
}
'import requests
url = "https://api.snowseo.com/v3/outreach/prospects"
payload = {
"domain": "<string>",
"domains": ["<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({domain: '<string>', domains: ['<string>']})
};
fetch('https://api.snowseo.com/v3/outreach/prospects', 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/prospects",
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([
'domain' => '<string>',
'domains' => [
'<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/prospects"
payload := strings.NewReader("{\n \"domain\": \"<string>\",\n \"domains\": [\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.snowseo.com/v3/outreach/prospects")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"domain\": \"<string>\",\n \"domains\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/outreach/prospects")
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 \"domain\": \"<string>\",\n \"domains\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"added": 123,
"skipped": 123,
"invalid": 123,
"prospects": [
{
"id": "<string>",
"domain": "<string>",
"status": "<string>",
"source": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
]
}Add sites you already know are worth pitching. Discovery finds prospects on its own - use this for the ones you bring yourself.
Body
Unparseable entries are counted in
| Field | Description |
|---|---|
domain | A single domain or full URL. Shorthand for a one-entry domains |
domains | Array of domains or full URLs, up to 200 per call |
Pass the full URL of the page you want the link on whenever you know it: the site becomes the prospect and that page becomes what the pitch is written about. A bare domain or a home page records no page, which leaves the draft writer with nothing specific to point at.
invalid, domains already on the list in skipped, and prospects carries only the rows actually created; added is that count. Repeats of the same domain within one request are dropped without being counted. A 400 means the request had no entries or none were valid. New prospects start with no contacts - run Find people next.Authorizations
bearerAuthapiKey
Your SnowSEO API key (sk_...).
Body
application/json
A single site domain, or a full URL. Shorthand for a one-entry domains.
Domains or full URLs to add. Pass the full URL of the page you want the link on whenever you know it: the site becomes the prospect and that page becomes what the pitch is written about. A bare domain or a home page records no page.
Was this page helpful?

