# LinkedIn Company Posts Scraper (x402)

> LinkedIn Company Posts Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes and returns structured public LinkedIn posts from company/showcase pages, filtered by keyword phrases and recency, billed per successful call via x402.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/linkedin-posts?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/linkedin-company-posts-scraper-x402-0ddda3c4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MuBO9wCcVcf9iwcd2HbQm

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability linkedin-company-posts-scraper-x402-0ddda3c4 -d '<json body>'
```

Example prompt: Pull the last month of public LinkedIn posts from Salesforce and HubSpot company pages, filtering for posts that mention 'AI' or 'automation', and cap it at 50 total results.

## When to prefer this

Choose this endpoint when you need structured, pay-per-call extraction of public LinkedIn company or showcase page posts without managing your own scraping infrastructure. It is ideal for competitive intelligence, content research, and monitoring workflows where you want keyword-filtered, recency-bounded post data from specific organizations. Prefer it over manual scraping or LinkedIn's official API when you need anonymous access without OAuth and only want to pay when data is actually returned.

## Known failure modes

- Company URL is a personal profile URL (not /company/ or /showcase/) — unsupported, likely returns empty or error
- LinkedIn anonymously limits feeds to 7 pages (~70 posts) per company — hard ceiling regardless of maxPagesPerCompany
- Search queries are matched locally against fetched posts, not via global LinkedIn search — queries for rare terms may return zero results
- Rate limiting or bot detection by LinkedIn may cause empty or failed responses (not billed)
- Invalid ISO date in postedLimitDate causes request rejection
- Providing zero for maxItems or maxPosts removes the cap but may increase response time

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count and an array of post items, each containing the post ID, type, full content text, author URL, author name, author type, LinkedIn post URL, and author image URL. Only successful, non-empty responses are billed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Hard cap across all queries and organization feeds. Zero removes this cap."
  },
  "maxPosts": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Stop collecting a query after this many matching posts. Zero removes this per-query cap."
  },
  "authorUrls": {
   "type": "array",
   "description": "LinkedIn /company/ or /showcase/ URLs whose public feeds will be searched. Profile URLs are not supported."
  },
  "postedLimit": {
   "enum": [
    "any",
    "1h",
    "24h",
    "week",
    "month",
    "3months",
    "6months",
    "year"
   ],
   "type": "string",
   "default": "any",
   "description": "Only keep posts newer than this rolling period."
  },
  "searchQueries": {
   "type": "array",
   "description": "Case-insensitive phrases matched against the text of posts on the selected public organization pages. Each entry is a literal phrase; global LinkedIn search is unavailable anonymously."
  },
  "includeReposts": {
   "type": "boolean",
   "default": true,
   "description": "Include organization posts that appear in another selected organization's public feed as reposts."
  },
  "postedLimitDate": {
   "type": "string",
   "description": "Only keep posts on or after this ISO date or millisecond timestamp. Applied together with postedLimit when both are set."
  },
  "maxPagesPerCompany": {
   "type": "integer",
   "default": 7,
   "maximum": 7,
   "minimum": 1,
   "description": "Read up to this many pages of public posts per organization. Each page has about ten cards; the anonymous feed exposes at most seven pages."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "type": null,
    "content": null,
    "authorUrl": null,
    "authorName": null,
    "authorType": null,
    "linkedinUrl": null,
    "authorImageUrl": null
   }
  ],
  "product": "linkedin-posts"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/linkedin-company-posts-scraper-x402-0ddda3c4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
