# LinkedIn Company Posts

Get a company's public posts with titles, dates, engagement and numeric activity IDs, from the company's public landing page. LinkedIn does not serve the full posts feed to anonymous requests, so this is the public landing-page harvest and the response always labels it with source: company_landing_page. post_count is what the landing page carried. is_truncated is always true, not a measurement: the landing page only ever renders a preview subset, and the full feed is unreachable for anonymous requests on every path rather than under any particular condition. upstream_calls reports the number of real upstream requests made; it exceeds 1 only when a request was refused and retried, which is not a fan-out and not an extra charge. No post is fetched in detail here — use the LinkedIn Post Transcript endpoint for a single post's comments. The Errors section lists the common cases rather than every code: any failed request carries an error_code, and none of them is billed.

- **Documentation:** [https://scrappa.co/docs/linkedin-api/linkedin_company_posts](https://scrappa.co/docs/linkedin-api/linkedin_company_posts)
- **API group:** LinkedIn API
- **Endpoint:** `GET https://scrappa.co/api/linkedin/company/posts`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `slug` | string | Yes | LinkedIn company slug, e.g. tesla-motors. Use the slug, not the brand name: /company/tesla/ does not exist while /company/tesla-motors/ does. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/linkedin/company/posts?slug=microsoft"
```

## Example response

```json
{
    "success": true,
    "source": "company_landing_page",
    "company": {
        "name": "Microsoft",
        "slug": "microsoft",
        "url": "https://www.linkedin.com/company/microsoft/",
        "logo": null
    },
    "posts": [
        {
            "title": "Our FY26 Q2 results",
            "url": "https://www.linkedin.com/posts/microsoft_our-fy26-q2-results-activity-7123456789012345678",
            "activity_id": "7123456789012345678",
            "date": "2026-01-22T08:00:00+00:00",
            "likes": 1062
        }
    ],
    "post_count": 1,
    "is_truncated": true,
    "upstream_calls": 1
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | The slug parameter is missing or is not a valid company slug. |
| 404 | Company Not Found | No public company page matched this slug. Not billed. |
| 422 | Invalid Slug | The slug was not a LinkedIn company slug. Rejected before anything was fetched, so nothing was billed. |
| 503 | Request Not Dispatched | Scrappa could not send this request to LinkedIn at all, so no data was retrieved. Please try again in a moment. Failed requests are never billed. |
| 503 | LinkedIn Temporarily Unavailable | The request never reached LinkedIn, for example because the connection failed on every attempt. Failed requests are never billed. |
| 503 | LinkedIn Refused The Request | LinkedIn refused the request on every attempt. Retrying usually succeeds. Failed requests are never billed. |
| 503 | Upstream Error | LinkedIn answered with a non-success status that is neither a refusal nor a missing company. Failed requests are never billed. |
| 404 | No Posts Found | LinkedIn returned a company landing page with no extractable posts. This company may genuinely have nothing public, or the page may have been served without its posts — the two are indistinguishable here, which is how this sub-surface refuses a request. A real answer rather than an outage, and not retried. Not billed. |
| 502 | Upstream Route Changed | LinkedIn no longer serves the route company pages are fetched from, so they cannot be fetched at all. Not billed, and not reported as "company not found" because that would be untrue about your data. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
