LinkedIn — Create post
Input
text requiredThe post body. Plain text; newlines preserved. Any bare URL in the text auto-unfurls into LinkedIn's own link-preview card. Posted publicly ("Anyone") under the logged-in member. Confirm the exact text with the user before running this -- it creates a real, public, immediate post under their account.
mentions optionalPerson or organization names to @mention, appended in order at the end of text (each as ' @Name'). Confirm each name with the user before running. If a name is ambiguous (multiple people share it exactly), the run throws listing candidates by headline -- re-run with the name plus enough of their headline/company/org for LinkedIn's own typeahead to narrow to exactly one match (confirmed live this works even though the matched suggestion's displayed name stays just the plain name).
Default: []scheduleDate optionalSchedule the post instead of publishing immediately: the date to publish, as M/D/YYYY (e.g. "8/25/2026"), in the account's own timezone. Must be provided together with scheduleTime. Must be today or later -- a past date is refused, as is any date LinkedIn's own calendar shows as unavailable (it only allows a limited window into the future).
scheduleTime optionalSchedule the post instead of publishing immediately: the time to publish, matching one of LinkedIn's own quarter-hour presets exactly, e.g. "1:00 PM", "11:45 AM". Must be provided together with scheduleDate.
Output
url requiredPost permalink (resolves to the post); feed it to delete_post or get_post. Null when scheduled (no permalink exists until the post actually goes live).
posted requiredTrue once this run's write immediately published a new post. False when scheduled (see `scheduled`), or when an identical post/schedule already existed and nothing new was created (see already_present / alreadyScheduled).
shareUrn requiredThe post's share urn, e.g. urn:li:share:7475847938603192320. On an already_present hit this is the existing post's activity urn instead. Null when scheduled.
scheduled requiredTrue if this run scheduled a post (new or already-existing) instead of publishing immediately.
account_used requiredThe real account the post was published/scheduled under, echoed from the session/UI.
scheduledFor requiredWhen scheduled is true, the scheduled-posts panel's own confirmation string, e.g. "Preview of the scheduled post that will be published on Mon August 17, 2026 at 1:00 PM, click to see detail view". Null otherwise.
already_present requiredTrue if an immediate post with this exact text was already found on the account's own activity before attempting to publish -- the run stopped there instead of creating a duplicate; url/shareUrn point at that pre-existing post. Never true on a scheduling run (see alreadyScheduled for that case).
alreadyScheduled requiredTrue if a scheduled post with this exact text already existed in the account's Scheduled posts queue before this run -- nothing new was scheduled; scheduledFor describes the existing entry. Only meaningful when scheduleDate/scheduleTime were passed.
verified_on_page requiredTrue if the script independently reloaded and confirmed the write: for an immediate post, the permalink actually renders the text; for a scheduled post, the Scheduled posts management panel actually lists an entry matching this body; for an already_present/alreadyScheduled hit, this is always true (the existing entry was what was matched).
