Skip to main content
GET
List backlink outreach prospects
A prospect is one website that could link to you, plus the specific page the link would go on. This group covers finding them, curating the list, and re-checking earned links.
Backlink Outreach is in beta. Endpoints live under /v3/outreach and every request is scoped to the brand your API key belongs to, so a brand key passes no teamId; an organization key passes the brand’s teamId. See Authentication.
Several of these endpoints spend credits. Every one that does says so below. Background work is tracked through the prospect and mailbox statuses, without exposing queue job IDs.

List prospects

GET /v3/outreach/prospects Every prospect for the brand, with the page it would be pitched about, its Domain Rating, contact counts and pipeline stage. By default, newly added rows (isNew) come first, then rows are ordered by the tier of their lane (broken links first, then unlinked mentions, listicles, comparisons and so on, with self-serve and community rows after), then by likelihood over value (0.65 * odds + 0.35 * worth), then by Domain Rating, then by recency. This is the starting point for any outreach question. Query parameters The server also sorts, filters and pages the list. sortBy is one of target, dr, chance, opportunity or contacts (contact readiness), with sortDir of asc or desc (default desc); there is no sort by worth. page and pageSize (a number or all) page the rows, search matches text, ready=true keeps only rows ready to email, ids takes comma-separated prospect IDs, and filters takes JSON-encoded filter groups. Without sortBy the default order above applies. Without pageSize the first 25 rows are returned; send pageSize=all for every row. Every response also carries page, pageSize, total, totalPages, and a summary of counts over the whole list: listed, laneTotal, lanes, journey, eligiblePeople, recheckSites and recheckPages. Key fields on each prospect The response also carries discoveryStatus, mentionCheckStatus and relationshipSweepStatus. Keep polling while any is running. While a page check is running, mentionCheckProgress is { done, total }, otherwise null. Each prospect’s status reports contact search progress. Its analysis is null when idle, or one of rechecking (a link re-check), checking_pages (its pages are being read) or classifying (its relationship is being judged).
Without sortBy you get the default order. Pass sortBy=chance for quick wins (highest odds first) or sortBy=dr for strong domains. worth and odds can disagree: a valuable link may still be unlikely to earn.

Find new prospects

Start a background search for new sites with Find prospects. It costs 25 AI credits and is refunded when no new prospects turn up.

Manage the list


Rate limits

Outreach endpoints are individually rate limited, with the tightest limits on the ones that spend money - discovery, enrichment, re-checks and sending. A 429 carries a Retry-After header. Back off rather than retrying immediately.

Authorizations

Authorization
string
header
required

Your SnowSEO API key (sk_...).

Query Parameters

page
integer

1-based page. Default 1.

pageSize
string

Rows per page (max 1000), or 'all'. Every response reports total and totalPages.

ready
boolean
ids
string

Comma-separated prospect IDs.

filters
string

JSON-encoded filter groups.

sortBy
enum<string>
Available options:
target,
dr,
chance,
opportunity,
contacts
sortDir
enum<string>
Available options:
asc,
desc
status
enum<string>

Filter by how far the contact search has got for each prospect.

Available options:
pending,
finding_people,
people_found,
no_people,
failed
source
string

Filter to prospects with at least one page from this discovery source.

Response

200 - application/json

Default Response

prospects
object[]
discoveryStatus
enum<string>
Available options:
running,
idle
mentionCheckStatus
enum<string>
Available options:
running,
idle
relationshipSweepStatus
enum<string>
Available options:
running,
idle
mentionCheckProgress
object | null