# API Direct LinkedIn Posts Search

> API Direct LinkedIn Posts Search is a paid API for AI agents from x402.apidirect.io, paid per call via x402, $0.007/call, status unknown (last checked 2026-10-30).

Search LinkedIn posts by keyword, author, company, time range, and other filters, with optional AI sentiment analysis.

## Facts

- Endpoint: GET https://x402.apidirect.io/v1/linkedin/posts?utm_source=zero.xyz
- Price: $0.007/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/api-direct-linkedin-posts-search-3195f5b5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_douffNUCLMYFlIZQHKN8R

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 api-direct-linkedin-posts-search-3195f5b5
```

Example prompt: Search LinkedIn for the most recent posts about 'generative AI in healthcare' from the past week and include sentiment analysis on each result.

## When to prefer this

Use this endpoint when you need to search LinkedIn posts by keyword, author, company, or job title — especially when you want time-filtered results (past day/week/month) or AI-powered sentiment/emotion analysis on posts. Prefer this over Twitter/X or Threads endpoints when the target audience is professional or B2B. Choose this over the LinkedIn company posts endpoint when you need cross-author keyword search rather than a single company's feed.

## Known failure modes

- Missing both query and author filter returns 400 — at least one is required
- page value above 25 returns 400
- posted_ago value other than 24h, 7d, or 30d returns 400
- Non-numeric from_company value returns 400
- author_title filter without a query parameter returns an error
- Pages beyond LinkedIn's ~500-post search pool return an empty list
- Rate limit or authentication errors from the underlying LinkedIn data source may return 429 or 503

## How this service works

Search for LinkedIn posts by keyword.

## Output

Returns a paginated list of up to 20 LinkedIn posts per page matching the search criteria. Each post includes content text, author details (name, profile URL, title), post URL, engagement metrics, and optionally a sentiment object with eight emotion scores (joy, trust, fear, surprise, sadness, disgust, anger, anticipation) each scored 0–1.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "page": {
       "type": "integer",
       "default": 1,
       "maximum": 25,
       "minimum": 1,
       "description": "Page number, 1-25 (default: 1). 20 posts per page. LinkedIn's search pool is at most ~500 posts per query, so pages past the pool return an empty list. Values below 1 are treated as 1; a page above 25 returns 400."
      },
      "query": {
       "type": "string",
       "maxLength": 500,
       "description": "Search query (max 500 characters). Required unless at least one filter (e.g. author) is provided."
      },
      "author": {
       "type": "string",
       "description": "Filter to posts authored by a specific person. Accepts a profile URL, public slug (e.g. williamhgates), or member URN, resolved automatically. Comma-separate for multiple (max 5 values)."
      },
      "sort_by": {
       "enum": [
        "most_recent",
        "relevance"
       ],
       "type": "string",
       "default": "most_recent",
       "description": "Sort order for results"
      },
      "posted_ago": {
       "enum": [
        "24h",
        "7d",
        "30d"
       ],
       "type": "string",
       "description": "Only return posts from this period: 24h (past day), 7d (past week), or 30d (past month). Works with both sort orders and every filter. Omit for all time. Any other value returns 400."
      },
      "author_title": {
       "type": "string",
       "description": "Filter by the author's job title as free text (e.g. CEO). Requires a query parameter."
      },
      "from_company": {
       "type": "string",
       "description": "Filter to posts authored by a company page. Numeric LinkedIn company ID (from the Company Details endpoint). Comma-separate for multiple. Non-numeric values return 400."
      },
      "get_sentiment": {
       "type": "boolean",
       "default": false,
       "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disg
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/api-direct-linkedin-posts-search-3195f5b5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.apidirect.io](https://www.zero.xyz/host/x402.apidirect.io/llms.txt)
