The pages engines already cite, turned into a pitch list with public contacts and drafts grounded in your facts. Nothing in this group sends mail.
GET /brands/{brandId}/outreach
The publisher pitch pipeline: targets, their levers, contact state, drafts, outcomes and the checks of the live page.
Note
Only inclusion and update_request targets are ever emailed; a thread, a review site, a directory or a video is routed to its own flow.
About this route
Detail
Returns
rows (per target: url, domain, the prompts it fed, its lever, status and stage, whether a contact is on file, the drafted pitch and dates, its citations per model, when it was last cited or marked no longer cited, and check: what the last look at the live page found, its excerpt, the rel values of any link to you, and the next survival check), counts by stage over every row, total, and nextCursor for the next page.
Seat
Any seat's key, a viewer's included.
Plan
Every plan.
Rate limit
None on this route.
Engine budget
Nothing this route does is metered.
Parameter
Type
What it is
brandId (path, required)
uuid
A brand id from GET /brands.
stage (query)
one of drafted, contact_found, found, routed, sent, replied, placed, confirmed, removed, no_contact, no_longer_cited, dismissed
Only the rows at this stage.
cursor (query)
string
The nextCursor of the page before, to read the next page.
limit (query)
integer, 1 to 200
At most this many rows, up to 200. The default is 200.
rows (per target: url, domain, the prompts it fed, its lever, status and stage, whether a contact is on file, the drafted pitch and dates, its citations per model, when it was last cited or marked no longer cited, and check: what the last look at the live page found, its excerpt, the rel values of any link to you, and the next survival check), counts by stage over every row, total, and nextCursor for the next page.
400
An id in the path is not a valid id.
401
No valid API key was sent.
404
No such brand for this key. A brand in another workspace and a client outside this seat's view answer the same way, so a 404 never confirms that an id exists.
POST /brands/{brandId}/outreach/seed
Promote the measured citation targets into the outreach pipeline.
About this route
Detail
Returns
seeded, skipped and considered: the counts of targets added, left out and read.
Seat
A key on a member seat or above. A viewer's key is refused with 403.
Plan
Every plan.
Rate limit
30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own.
Engine budget
Nothing this route does is metered.
Parameter
Type
What it is
brandId (path, required)
uuid
A brand id from GET /brands.
curl -X POST "https://api.ansengine.co/brands/{brandId}/outreach/seed" \
-H "Authorization: Bearer ak_your_key"
Status
When
200
seeded, skipped and considered: the counts of targets added, left out and read.
400
An id in the path is not a valid id.
401
No valid API key was sent.
403
The key belongs to a viewer seat, which can read and cannot write.
404
No such brand for this key. A brand in another workspace and a client outside this seat's view answer the same way, so a 404 never confirms that an id exists.
429
Over the rate limit: 30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own. The Retry-After header says how many seconds to wait.
POST /brands/{brandId}/outreach/{targetId}/contact
Find the public editorial contact behind one cited page.
Note
The contact is checked against your do not contact list here, and again at the moment it is used. Only an editorial page (a list or an article) is ever searched for a contact.
About this route
Detail
Returns
ok, found (false when no public contact was found), emailStatus, foundOn, suppressed (addresses skipped because they are on a do not contact list) and costUsd. The address itself is stored encrypted and is not in this response.
Seat
A key on a member seat or above. A viewer's key is refused with 403.
Plan
Optimize and up.
Rate limit
30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own.
Engine budget
Checked before the work starts: 429 once the workspace's spend safety limit is reached.
Parameter
Type
What it is
brandId (path, required)
uuid
A brand id from GET /brands.
targetId (path, required)
uuid
The target id.
curl -X POST "https://api.ansengine.co/brands/{brandId}/outreach/{targetId}/contact" \
-H "Authorization: Bearer ak_your_key"
Status
When
200
ok, found (false when no public contact was found), emailStatus, foundOn, suppressed (addresses skipped because they are on a do not contact list) and costUsd. The address itself is stored encrypted and is not in this response.
400
An id in the path is not a valid id.
401
No valid API key was sent.
402
This needs a higher plan: Optimize and up. The body names the plan gate (feature) and the lowest plan id it admits (minPlan).
403
The key belongs to a viewer seat, which can read and cannot write.
404
No such brand or target for this key.
422
The page is not an editorial page (a thread, a review site, a directory or a video), so it never gets an email. The body says why.
429
Over the rate limit: 30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own. The Retry-After header says how many seconds to wait. Or the workspace's spend safety limit is reached: the body says so as budget_cap_reached, and spend resumes next cycle.
503
Contact discovery is not configured on this deployment.
POST /brands/{brandId}/outreach/{targetId}/draft
Draft the pitch for one target, grounded only in your verified brand facts.
About this route
Detail
Returns
ok, subject, body and lever. An inclusion carries a ready to paste entry and a fact box of your verified facts; an update request one verifiable addition; a creator a pitch that leaves any sponsorship to the creator to disclose. The draft is stored on the target. Nothing is sent.
Seat
A key on a member seat or above. A viewer's key is refused with 403.
Plan
Optimize and up.
Rate limit
30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own.
Engine budget
Checked before the work starts: 429 once the workspace's spend safety limit is reached.
Parameter
Type
What it is
brandId (path, required)
uuid
A brand id from GET /brands.
targetId (path, required)
uuid
The target id.
curl -X POST "https://api.ansengine.co/brands/{brandId}/outreach/{targetId}/draft" \
-H "Authorization: Bearer ak_your_key"
Status
When
200
ok, subject, body and lever. An inclusion carries a ready to paste entry and a fact box of your verified facts; an update request one verifiable addition; a creator a pitch that leaves any sponsorship to the creator to disclose. The draft is stored on the target. Nothing is sent.
400
An id in the path is not a valid id.
401
No valid API key was sent.
402
This needs a higher plan: Optimize and up. The body names the plan gate (feature) and the lowest plan id it admits (minPlan).
403
The key belongs to a viewer seat, which can read and cannot write.
404
No such brand or target for this key.
422
No draft could be written from your verified facts, or the page is routed to a flow with no email draft (a thread, a review site, a directory). The body says why.
429
Over the rate limit: 30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own. The Retry-After header says how many seconds to wait. Or the workspace's spend safety limit is reached: the body says so as budget_cap_reached, and spend resumes next cycle.