> ## Documentation Index
> Fetch the complete documentation index at: https://docs.social-api.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# LinkedIn Posts

> Publish and manage posts on LinkedIn as the authenticated member.

## Overview

Publish posts to LinkedIn as the authenticated individual member (your personal feed). The connector supports text posts, single image, single video, and multi-image (carousel) posts.

<Note>
  Publishing as the individual member is live. Organization (company) Page posting is available in beta via the `linkedin_page` platform identifier. Contact us to enable it for your account.
</Note>

## Supported content

| Content type           | Supported | Notes                                                                                |
| ---------------------- | --------- | ------------------------------------------------------------------------------------ |
| Text only              | Yes       | `text` is the post commentary                                                        |
| Single image           | Yes       | one entry in `media_ids`                                                             |
| Single video           | Yes       | one video entry in `media_ids`                                                       |
| Multi-image (carousel) | Yes       | multiple image entries in `media_ids`                                                |
| Mixed image + video    | No        | LinkedIn does not support mixed carousels                                            |
| Article / link         | Yes       | set `article_url` in `platform_data`; the first attached image becomes the thumbnail |

## Post fields

LinkedIn uses the standard `POST /v1/posts` body. The target account is specified inside `targets`, not at the top level.

| Field        | Type   | Required | Description                                                                                                               |
| ------------ | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------- |
| `text`       | string | Yes      | Post commentary                                                                                                           |
| `targets`    | array  | Yes      | One entry per account; each requires `account_id`. The platform is inferred from the account, no `platform` field is sent |
| `media_ids`  | array  | No       | IDs of media uploaded via the [media upload flow](/posts/instagram#1-upload-media); attach images or a video              |
| `visibility` | string | No       | `public` (default), `connections_only`, or `logged_in` (logged-in LinkedIn members). Set on the target                    |

## Visibility

LinkedIn honors the `visibility` field on the target:

| Value              | LinkedIn audience                                    |
| ------------------ | ---------------------------------------------------- |
| `public` (default) | Anyone on or off LinkedIn                            |
| `connections_only` | The member's connections only (member accounts only) |
| `logged_in`        | Any logged-in LinkedIn member                        |

`connections_only` is a member-only value. Organization page posts (`linkedin_page` platform) do not support `CONNECTIONS` visibility; SocialAPI rejects it with a validation error. Use `public` or `logged_in` for org page posts.

## Platform options

Pass these keys inside `platform_data` on a target for LinkedIn-specific options:

| Key                   | Type    | Description                                                                                                                                                                  |
| --------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `article_url`         | string  | Publishes a link post. The post links to this URL; the first attached image (if any) is uploaded as the thumbnail                                                            |
| `article_title`       | string  | Title shown on the link card                                                                                                                                                 |
| `article_description` | string  | Description shown on the link card                                                                                                                                           |
| `cta_label`           | string  | Call-to-action button on a link post. One of `LEARN_MORE`, `SIGN_UP`, `DOWNLOAD`, `REGISTER`, `SUBSCRIBE`, `APPLY`, `REQUEST_DEMO`, `JOIN`, `ATTEND`. Requires `article_url` |
| `cta_url`             | string  | Destination for the call-to-action button. Requires `article_url`                                                                                                            |
| `alt_text`            | string  | Accessibility alt text for a single-image post                                                                                                                               |
| `alt_texts`           | array   | Per-image alt text for a carousel, matched by position to `media_ids`                                                                                                        |
| `media_title`         | string  | Caption or title for an attached image or video                                                                                                                              |
| `disable_reshare`     | boolean | When true, others cannot reshare the post                                                                                                                                    |

## Creating a post

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.social-api.ai/v1/posts \
    -H "Authorization: Bearer $SOCIALAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "targets": [{ "account_id": "acc_01HZ9X3Q4R5M6N7P8V2K0W1J" }],
      "text": "Big news from our team!",
      "media_ids": ["f47ac10b-58cc-4372-a567-0e02b2c3d479"]
    }'
  ```
</CodeGroup>

The post publishes to the member's feed. The author is the authenticated person. To attach media, upload it first (see the [Instagram media upload steps](/posts/instagram#1-upload-media)) and pass the returned `media_id` values in `media_ids`.

### Link post with a call to action

Set `article_url` in `platform_data` to publish a link post. Add `cta_label` and `cta_url` for a call-to-action button. If you attach an image, it becomes the link thumbnail.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.social-api.ai/v1/posts \
    -H "Authorization: Bearer $SOCIALAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "text": "Read our latest product update.",
      "targets": [{
        "account_id": "acc_01HZ9X3Q4R5M6N7P8V2K0W1J",
        "visibility": "public",
        "platform_data": {
          "article_url": "https://example.com/update",
          "article_title": "Product update",
          "article_description": "What shipped this month",
          "cta_label": "LEARN_MORE",
          "cta_url": "https://example.com/update"
        }
      }]
    }'
  ```
</CodeGroup>

## Updating a post

Only the post text (commentary) can be changed after publishing. Attached media cannot be modified.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH https://api.social-api.ai/v1/posts/{post_id} \
    -H "Authorization: Bearer $SOCIALAPI_KEY" \
    -H "Content-Type: application/json" \
    -d '{"text": "Updated announcement text"}'
  ```
</CodeGroup>

## Deleting a post

<CodeGroup>
  ```bash cURL theme={null}
  curl -X DELETE https://api.social-api.ai/v1/posts/{post_id} \
    -H "Authorization: Bearer $SOCIALAPI_KEY"
  ```
</CodeGroup>

## Reading posts

Reading a member's own posts directly from LinkedIn requires elevated permissions and is not available. Listing posts returns the posts SocialAPI has stored for the account (for example, posts you published through SocialAPI), not a live read from LinkedIn.

## Quirks and limitations

* Posts are published as the individual member, not an organization page. Organization page posting is available in beta via the `linkedin_page` platform (contact us to enable).
* Only the commentary can be updated after publishing.
* Mixed image and video carousels are not supported.
* The post URN is returned in a response header during creation.
* Reading a member's own posts live from LinkedIn is not available; stored posts are returned instead.

## Next steps

<CardGroup cols={2}>
  <Card title="LinkedIn connector" icon="linkedin" href="/connectors/linkedin">
    Connection and authentication details.
  </Card>

  <Card title="Posts overview" icon="paper-plane" href="/posts/overview">
    How publishing works across all platforms.
  </Card>
</CardGroup>
