# st.retrieveCompanyPosts

This action allows you to retrieve posts published by a company and perform additional post-related actions if needed.

## Constraints

> ⏺️ **Root Start:** not allowed.

> ⬆️ **Parent Actions:** [st.openCompanyPage](/docs/action-st-open-company-page).

> ⬇️ **Child Actions:** [st.doForPosts](/docs/action-st-do-for-posts).

## Parameters

```json
{
  "actionType": "st.retrieveCompanyPosts",
  "label": "company1Posts",
  "limit": 10,
  "since": "2023-01-01T00:00:00Z",
  "then": { ... }
}
```

- `label` (optional) – custom label for tracking this action in workflow completion.
- `limit` (optional) – number of posts to retrieve. Defaults to **20**, with a maximum value of **20**.
- `since` (optional) – timestamp to filter posts published after the specified time.
- `then` (optional) – object or array of child actions to be executed within this action.

**Note**: both `limit` and `since` conditions are applied simultaneously. For example:

- If `limit` is 10, but there are more than 10 posts since the specified timestamp, only 10 posts will be returned.
- If `limit` is 15, but only 5 posts exist after the specified timestamp, only those 5 posts will be returned.

## Result options

This action always completes successfully. Even if the company has no posts, it returns an empty array.

```json
{
  "actionType": "st.retrieveCompanyPosts",
  "label": "company1Posts",
  "success": true,
  "data": [
    {
      "url": "https://www.linkedin.com/feed/update/urn:li:activity:1234567890123456789",
      "activityUrn": "urn:li:activity:1234567890123456789",
      "time": "2023-01-02T12:30:00Z",
      "type": "original",
      "author": {
        "type": "company",
        "name": "Example Company",
        "companyUrl": "https://www.linkedin.com/company/example-company"
      },
      "reposter": null,
      "text": "Check out our latest product launch!",
      "repostText": null,
      "hashtags": ["product", "launch"],
      "mentions": [],
      "externalLinks": ["https://example.com/launch"],
      "images": [
        "https://static.linkedin.com/image1.jpg",
        "https://static.linkedin.com/image2.jpg"
      ],
      "documentSlides": [],
      "hasVideo": false,
      "videoThumbnail": null,
      "hasPoll": false,
      "reactionsCount": 27,
      "commentsCount": 8,
      "repostsCount": 2,
      "then": { ... }
    },
    {
      "url": "https://www.linkedin.com/feed/update/urn:li:activity:2345678901234567890",
      "activityUrn": "urn:li:activity:2345678901234567890",
      "time": "2023-01-01T09:15:00Z",
      "type": "repost",
      "author": {
        "type": "person",
        "name": "Example Author",
        "profileUrl": "https://www.linkedin.com/in/example-author",
        "headline": null
      },
      "reposter": {
        "type": "company",
        "name": "Example Company",
        "companyUrl": "https://www.linkedin.com/company/example-company"
      },
      "text": "Original post content about the webinar.",
      "repostText": "Thank you to everyone who joined our webinar.",
      "hashtags": [],
      "mentions": [],
      "externalLinks": [],
      "images": [],
      "documentSlides": [],
      "hasVideo": true,
      "videoThumbnail": "https://media.licdn.com/dms/image/video-cover.jpg",
      "hasPoll": false,
      "reactionsCount": 6,
      "commentsCount": 0,
      "repostsCount": 1,
      "then": { ... }
    }
  ]
}
```

- `label` – included only if specified in the action parameters.
- `data` – array of company posts with results of child actions execution.
  - `url` – URL of the post.
  - `activityUrn` – LinkedIn activity or UGC URN of the post, if available.
  - `time` – timestamp when the post was published.
  - `type` – type of the post. Enum with possible values:
    - `original` – for original posts.
    - `repost` – for reposts.
  - `author` – original content creator. Can be `null` if the actor cannot be parsed.
    - For person authors: `type`, `name`, `profileUrl`, `headline`.
    - For company authors: `type`, `name`, `companyUrl`.
  - `reposter` – person or company that reshared the post. Non-null only when `type` is `repost`.
    - For person reposters: `type`, `name`, `profileUrl`, `headline`.
    - For company reposters: `type`, `name`, `companyUrl`.
  - `text` – original author's post text, if available.
  - `repostText` – text added by the reposter on a repost with comment, if available.
  - `hashtags` – array of hashtags found in the post text, without leading `#`.
  - `mentions` – array of person and company profile URLs found in the post text.
  - `externalLinks` – array of outbound URLs found in the post text.
  - `images` – array of up to 3 preview image URLs, if available.
  - `documentSlides` – array of carousel or document slide image URLs, if available.
  - `hasVideo` – boolean indicating if the post contains a video.
  - `videoThumbnail` – URL of the video thumbnail, if available.
  - `hasPoll` – boolean indicating if the post contains a poll.
  - `reactionsCount` – number of reactions on the post.
  - `commentsCount` – number of comments on the post.
  - `repostsCount` – number of reposts on the post.
  - `then` – results of child actions execution.
