Find contacts at prospects' sites
curl --request POST \
--url https://api.snowseo.com/v3/outreach/prospects/find-people \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prospectIds": [
"<string>"
],
"terms": [
"<string>"
]
}
'import requests
url = "https://api.snowseo.com/v3/outreach/prospects/find-people"
payload = {
"prospectIds": ["<string>"],
"terms": ["<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({prospectIds: ['<string>'], terms: ['<string>']})
};
fetch('https://api.snowseo.com/v3/outreach/prospects/find-people', 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/find-people",
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([
'prospectIds' => [
'<string>'
],
'terms' => [
'<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/find-people"
payload := strings.NewReader("{\n \"prospectIds\": [\n \"<string>\"\n ],\n \"terms\": [\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/find-people")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prospectIds\": [\n \"<string>\"\n ],\n \"terms\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/outreach/prospects/find-people")
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 \"prospectIds\": [\n \"<string>\"\n ],\n \"terms\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"enqueuedCount": 123,
"enqueuedProspectIds": [
"<string>"
],
"skipped": 123,
"creditsCharged": 123
}Backlink Outreach
Find People
Find editors and other people who could add a link at selected prospects.
POST
/
v3
/
outreach
/
prospects
/
find-people
Find contacts at prospects' sites
curl --request POST \
--url https://api.snowseo.com/v3/outreach/prospects/find-people \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prospectIds": [
"<string>"
],
"terms": [
"<string>"
]
}
'import requests
url = "https://api.snowseo.com/v3/outreach/prospects/find-people"
payload = {
"prospectIds": ["<string>"],
"terms": ["<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({prospectIds: ['<string>'], terms: ['<string>']})
};
fetch('https://api.snowseo.com/v3/outreach/prospects/find-people', 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/find-people",
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([
'prospectIds' => [
'<string>'
],
'terms' => [
'<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/find-people"
payload := strings.NewReader("{\n \"prospectIds\": [\n \"<string>\"\n ],\n \"terms\": [\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/find-people")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prospectIds\": [\n \"<string>\"\n ],\n \"terms\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/outreach/prospects/find-people")
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 \"prospectIds\": [\n \"<string>\"\n ],\n \"terms\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"enqueuedCount": 123,
"enqueuedProspectIds": [
"<string>"
],
"skipped": 123,
"creditsCharged": 123
}Pass up to 50
prospectIds. The optional terms array accepts 3-25 distinct job titles; omit it to search the default editorial, SEO, marketing, and owner roles. Use GET /v3/outreach/prospects/people-search-terms to see the suggested titles and defaults.
The request starts background work. The 202 response reports enqueuedCount, enqueuedProspectIds, skipped, and creditsCharged. Poll Outreach Prospects while an enqueued site’s status is finding_people, then read Outreach Contacts for names and roles.
This costs 5 AI credits per site searched, with a refund when a site yields nobody new. Sites already being searched, sites that already link to you, and self-serve or creator-platform opportunities are skipped without a charge. Finding people does not buy their email addresses.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Prospect IDs to search.
Required array length:
1 - 50 elementsJob titles to search for, matched as substrings and OR'd together - 'editor' finds 'Managing Editor'. Between 3 and 25 distinct terms; omit to use a sensible default covering editorial, SEO, marketing and owners.
Required array length:
3 - 25 elementsWas this page helpful?

