The channel-agnostic outbound Create verb — one action-dispatched endpoint for connect, message, comment, post, react, and follow across your wired channels (LinkedIn today). Content writes are always STAGED into an approval queue; nothing reaches the outside world until you explicitly approve it.
Stage-only by design — nothing is sent until you approve
connect, message, comment, post) is NOT sent. It stages a single outbound batch and returns 202 with anOutreachStagedBatch ({ action, status: "staged", batch_id, detail }) plus approve / self / stop actions on the envelope. Nothing publishes yet.GET /v2/outbound-queue/batches/{id}to inspect the staged batch, its jobs, and the per-status summary before releasing.POST /v2/outbound-queue/batches/{id}/approvereleases the batch to publish (the executor sends on approve), or POST .../stop discards it, unsent.react,follow, unfollow, invitation accept/reject, and post edit/delete run synchronously and return 200 with an OutreachActionResult ({ action, results[], errors[] }).Pass X-LinkedIn-Account to act on behalf of any connected account; omit it and the default (first connected) account is auto-resolved, and the staged batch is pinned to it so the same identity publishes on approve.
One action-dispatched endpoint — the action discriminator selects both the fields and the response body
The action discriminator selects the required fields and whether the write is staged (202) or immediate (200)
Staged writes — 202, approval required
public_id + optional text (≤ 300 chars) for a single target, or a targets[] array ({ public_id, message }).public_id or recipient_urn + text (or body), or a targets[] array ({ public_id, text }).post_id + text, optional parent_comment_id to turn it into a reply.text, optional visibility (public | connections), content_type, media_ids, mentions, article, poll, reshare_post_id, commenters.Immediate actions — 200, no approval
post_id + reaction_type (LIKE | CELEBRATE | SUPPORT | LOVE | INSIGHTFUL | FUNNY; default LIKE).company_name.invitation_id.post with an existing post_id edits it (or deletes it with delete: true); this operates on an already-published post and runs immediately.Complete the loop: review a staged batch, then approve (publish) or stop (discard). These are the endpoints the staged 202's actions[] point at.