Action Reference

Every platform action the relay can run, with its transport and payload fields.


<!-- GENERATED FILE - do not edit by hand. Source: packages/features/src/twins/action-registry.ts Regenerate: pnpm --filter @degaus/docs generate:action-reference -->

Every action below is an endpoint:

POST /twin/sessions/{persona}/actions/{platform}/{action}

Send the payload fields as a JSON object. Fields marked ? are optional; an empty payload is {}. See Running Platform Actions for the request and response shape, and Routing for what transport means and when you can override it.

Kind is read or write. Writes consume a write slot and are subject to your account's allowance, daily caps, and cooldowns; reads are not.

Some actions enforce cross-field rules the table cannot show. A row whose fields all read optional may still reject an otherwise reasonable payload, so check the 400 message. Known cases:

ActionRule
linkedin/activity, linkedin/enrichexactly one of target or targets
*/feed-engageexactly one of authors or keywords (Instagram requires authors)
reddit/submitexactly one of text, url, or mediaRefs
linkedin/salesnav-save-searchkeywords or a facet

LinkedIn

ActionKindTransportPayload
activityreadwabtarget?, type?, count?, targets?
analyticsreadcookiestarget
comment-reactorsreadcookiescommentUrn, count?, all?
commentwritewabtarget, text, dryRun?
commentsreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
companyreadcookiestarget
connectwritewabtarget, message?
connection-statusreadcookiestargets
connectionsreadcookiesnone
conversationsreadcookiesnone
delete-commentwritewabtarget
delete-postwritewabtarget
edit-commentwritewabtarget, commentId, text, dryRun?
edit-postwritewabtarget, text
engage-commenterswritewabpost, actions?, replyText?, connectNote?, maxCommenters?, durationMs?, dryRun?
enrich-engagersreadcookiesactivityId, reactions?, comments?, maxProfiles?, companyDetail?, profileSource?
enrichreadcookiestarget?, via?, targets?
feed-engagewritewabauthors?, keywords?, subreddits?, reply?, replyStyle?, personaReply?, relevanceThreshold?, relevancePrompt?, maxReply?, perDayCap?, maxScan?, dryRun?, durationMs?, maxEngage, reactions?, expandPosts?, engageComments?, engageCommentsFrom?, maxCommentEngage?, navigate?, scrollMode?, scanIntervalMs?
followwritewabtarget
inmail-creditsreadcookiesnone
inmailwritewabtarget, subject, message, yesConsumeCredit?, dryRun?
invitationsreadcookiesnone
likewritewabtarget, reaction?, comment?
mereadcookiesnone
messagesreadcookiestarget
mutewritewabtarget
notificationsreadcookiesnone
post-detailsreadcookiestarget
postwritewabtext, visibility?, mediaRefs?
postsreadcookiestarget, count?, comments?
profilereadcookiestarget
reactwritewabactivityId, reactionType?
reactionsreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
reply-commentwritewabtarget, commentId, text, dryRun?
salesnav-alertsreadcookiesnone
salesnav-connectwritewaburn, expectName, note?, send?
salesnav-create-listwritewabname, description?
salesnav-delete-listwritewabid
salesnav-delete-saved-searchwritewabid
salesnav-facetsreadcookiestype?, query?
salesnav-insightsreadcookiesurn
salesnav-list-addwritewablistId, urn
salesnav-list-removewritewablistId, urn
salesnav-listsreadwabnone
salesnav-messagewritewaburn, text, expectName, subject?, send?
salesnav-notificationsreadcookiescount?
salesnav-personasreadcookiesnone
salesnav-profilereadwaburns
salesnav-recentreadcookiesnone
salesnav-recommended-companiesreadcookiescount?, all?, maxPages?, delayMs?
salesnav-recommended-leadsreadcookiescount?, all?, maxPages?, delayMs?
salesnav-save-leadwritewaburn, unsave?
salesnav-save-searchwritewabname, keywords?, seniority?, region?, industry?, company?, function?, connectionOf?, title?, pastTitle?, pastCompany?, school?, yearsOfExperience?
salesnav-saved-searchesreadcookiesnone
salesnav-searchreadwabkeywords?, seniority?, region?, industry?, company?, function?, connectionOf?, title?, pastTitle?, pastCompany?, school?, yearsOfExperience?, count?, maxPages?, delayMs?
salesnav-spotlightsreadcookieslist?, limit?, changedWithinDays?, postedWithinDays?
salesnav-typeaheadreadcookiesquery
salesnav-warm-introreadcookiesurn, count?
savesreadcookiesnone
search-postsreadwabquery, maxPosts?, minReactions?, excludeCompanyPages?, sort?, dateRange?, withAuthorProfile?
searchreadcookiesquery, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
send-messagewritewabtarget, message, participantName?, dryRun?
sent-invitationsreadcookiesnone
unlikewritewabtarget, reaction?, comment?
visitwritewabtarget, dwellMs?, noScroll?

X

ActionKindTransportPayload
analyticsreadcookiestweetId, count?, cursor?
bookmarkwritewabtweetId
bookmarksreadcookiesnone
deletewritewabtweetId
dm-inboxreadcookiescount?
dm-readreadcookiesconversationId, count?
dm-requestsreadcookiescount?
feed-engagewritewabauthors?, keywords?, subreddits?, reply?, replyStyle?, personaReply?, relevanceThreshold?, relevancePrompt?, maxReply?, perDayCap?, maxScan?, dryRun?, durationMs?, maxEngage, reactions?, expandPosts?, engageComments?, engageCommentsFrom?, maxCommentEngage?, navigate?, scrollMode?, scanIntervalMs?
followwritewabhandle
followersreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
followingreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
homereadcookiesfollowing?
likewritewabtweetId
likesreadcookiestarget?, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
list-timelinereadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
listsreadcookieshandle?, memberOf?
mentionsreadcookiescount?
newsreadcookiestab?, count?
quotewritewabtweetId, text, mediaRefs?
readreadcookiestweetId, count?, cursor?
repliesreadcookiestweetId, count?, cursor?
replywritewabtweetId, text, mediaRefs?
retweetwritewabtweetId
searchreadcookiesquery, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
threadreadcookiestweetId, count?, cursor?
tweetwritewabtext, mediaRefs?
unbookmarkwritewabtweetId
unfollowwritewabhandle
unlikewritewabtweetId
unretweetwritewabtweetId
user-tweetsreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
userreadcookiestarget

Reddit

ActionKindTransportPayload
analyticsreadcookiestarget
chat-accept-allwritewabdelayMs?
chat-acceptwritewabconversationId
chat-inboxreadwabcount?
chat-messagesreadwabconversationId, count?
chat-sendwritewabconversationId, text, dryRun?
chat-startwritewabusername, text, dryRun?
commentwritewabparentFullname, text, postId?, dryRun?
commentsreadcookiessubreddit, count?, after?, sort?, time?, all?, maxPages?, delayMs?
deletewritewabfullname, postId?
feed-engagewritewabauthors?, keywords?, subreddits?, reply?, replyStyle?, personaReply?, relevanceThreshold?, relevancePrompt?, maxReply?, perDayCap?, maxScan?, dryRun?, durationMs?, maxEngage, reactions?, expandPosts?, engageComments?, engageCommentsFrom?, maxCommentEngage?, navigate?, scrollMode?, scanIntervalMs?
feedreadcookiessubreddit, count?, after?, sort?, time?, all?, maxPages?, delayMs?
homereadcookiestarget?, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
inboxreadcookiescount?, after?, type?, unread?
postreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
rulesreadcookiestarget
savewritewabfullname, postId?
savedreadcookiestarget?, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
searchreadcookiesquery, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
submitwritewabsubreddit, title, text?, url?, mediaRefs?, flair?, dryRun?
subredditreadcookiestarget
subscribewritewabtarget
trendingreadcookiestarget?, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
unsavewritewabfullname, postId?
user-commentsreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
user-postsreadcookiestarget, count?, cursor?, after?, sort?, time?, all?, maxPages?, delayMs?
userreadcookiestarget
votewritewabfullname, vote, postId?
whoamireadcookiesnone

Instagram

ActionKindTransportPayload
commentwritewabmedia, text
commentsreadcookiestarget
feed-engagewritewabauthors?, keywords?, subreddits?, reply?, replyStyle?, personaReply?, relevanceThreshold?, relevancePrompt?, maxReply?, perDayCap?, maxScan?, dryRun?, durationMs?, maxEngage, reactions?, expandPosts?, engageComments?, engageCommentsFrom?, maxCommentEngage?, navigate?, scrollMode?, scanIntervalMs?
savedreadcookiesnone

Actions that only run locally

A few verbs are deliberately absent from the API because they cannot run on hosted infrastructure:

ActionWhy
x/dm-sendWAB-only; may also need an encrypted XChat passcode
x/dm-acceptWAB-only; may also need an encrypted XChat passcode
x/dm-startWAB-only; may also need an encrypted XChat passcode

Nested verbs need ?engine=cloud while your relay is online

Actions whose command nests a sub-verb - x/dm-*, reddit/chat-*, and linkedin/salesnav-* - are rejected by the local relay's argv check, which requires the second command token to equal the action name.

There is no automatic fallback from that. The API only reroutes to the hosted twin when the relay is lost; a rejection is an error response, so the call fails outright. With an online relay under the default auto policy, these actions therefore require an explicit pin:

POST /twin/sessions/{persona}/actions/x/dm-inbox?engine=cloud

Without the pin they fail while your machine is online and succeed while it is off, which is a confusing failure to debug. A relay carrying the argv fix removes the need for the pin, but only once that build is installed.

These run through the local CLI or the local MCP server instead.

The passcode is set with wonda x dm passcode set, which is terminal-only by design - the secret never leaves your machine, so there is nothing for the API to forward. It is loaded only when X actually presents its encrypted-XChat gate, so an account without that gate can send DMs without one; the writes stay local because the transport is WAB, not because every account needs a passcode. The DM reads (x/dm-inbox, x/dm-read, x/dm-requests) are available over the API like any other read.