Skip to main content
POST
Repost LinkedIn post

Authorizations

Authorization
string
header
required

Access token issued by gtm.service.id. Its access_identity claim carries team_sid, actor_sid and actor_type, and that team scope is authoritative.

Team-SID
string
header
required

Team scope for tokens that do not carry one. Ignored when the token already names a team.

Body

application/json

Request body of repost_linkedin_post.

linkedin_account_sid
string
required

LinkedIn account sid (ln_ac_…), the authoring account. Identity-bound: REQUIRED, posts publish AS this account.

Required string length: 18
Pattern: ^ln_ac_
post_urn
string
required

The post to repost: urn:li:activity:, urn:li:share: or urn:li:ugcPost:.

Pattern: ^urn:li:(activity|share|ugcPost):\d+$
text
string

Your own words above the reposted post. Omit (or blank) for a plain repost.

Maximum string length: 3000
visibility
enum<string>

With text only. ANYONE (the default) or CONNECTIONS_ONLY.

Available options:
ANYONE,
CONNECTIONS_ONLY
allowed_commenters_scope
enum<string>

With text only. ALL (the default), CONNECTIONS_ONLY, or NONE to disable comments.

Available options:
ALL,
CONNECTIONS_ONLY,
NONE
mentions
object[]

With text only: profile mentions as ready positions over text, as create_linkedin_post takes them.

client_reference
string | null

Your key for this ONE repost (max 255, byte for byte): one key per repost, the same key on every repeat of it. The key and its place (the post it reposts, as LinkedIn files it) are one repost whatever it says, and a repeat never goes out twice: it answers 200 with what the first send made (result.idempotent_replay, result.content_differs when this request says something else) or 409 naming error.context.send_outcome (in_flight, unknown with retry_after and send_decisive_at, or sent; not_sent with blocking_activity_log_sid when another repost in doubt holds the place). The same key at another place is another repost. Without a key a repost of the same post with the same words count as a repeat for an hour after they went out. check_linkedin_posting_sent asks by it.

Maximum string length: 255
confirmed_not_sent
string | null

A person's word that an earlier attempt of THIS send is not on LinkedIn: its activity_log_sid (ln_al_...), from the 409 or check_linkedin_posting_sent, given only after someone looked on LinkedIn. Taken once the attempt can no longer land (before that: 409 send_outcome_unknown, waiting_for may_still_land, retry_after and send_decisive_at that moment): it settles that attempt not_sent and this request goes out. Moot when the attempt is no longer in doubt; another send's sid is 422 not_this_message.

Required string length: 18
Pattern: ^ln_al_
confirmed_sent
string | null

A person's word that an earlier attempt of THIS send IS on LinkedIn: its activity_log_sid, as for confirmed_not_sent (never both). Taken at once; it settles the attempt sent and sends nothing: the answer is 409 concurrent_send_in_flight with send_outcome sent while what it made is not known (LinkedIn is read for it), or 200 with it once a read has found it. Another send's sid is 422 not_this_message; an attempt already proved not sent is 409 confirmed_sent_contradicts.

Required string length: 18
Pattern: ^ln_al_

Response

action success envelope.

success
enum<boolean>
required
Available options:
true
operation
enum<string>
required
Available options:
action
action
string
required

kebab-case verb; matches the route segment.

item
any
required
result
object
required
meta
object
required
pacing
object