Extract LinkedIn Posts and Engagement Data

Pull posts, comments, reactions, and engagement metrics from any LinkedIn user or company page. Content analysis, competitive monitoring, and social selling signals. Structured JSON via API.

User posts, company posts, comments, reactions Engagement metrics: likes, comments, shares Content search across all of LinkedIn Pagination for historical content

LinkedIn Content Intelligence Is Invisible Without Extraction

LinkedIn is the primary B2B content platform. Decision makers share industry insights, announce strategic shifts, and signal priorities through their posts. Sales teams need to know what prospects are talking about. Marketing teams need to track competitive content strategies. Analysts need to measure thought leadership and brand presence.

But LinkedIn provides no API access to content data. You cannot analyze posting topics, detect strategy shifts, or measure engagement themes programmatically. Manual monitoring does not scale beyond a handful of accounts, and copy-pasting from the feed misses comments, reactions, and historical context.

Without structured access to post data, content intelligence remains invisible — locked inside a feed that only shows you what the algorithm decides.

Six Endpoints for Complete Content Intelligence

User posts, company posts, comments, reactions, user activity, and full-text content search. Each endpoint returns structured JSON with cursor-based pagination.

User Posts

GET /api/linkedin/user/posts

Retrieve all posts published by a specific LinkedIn user. Returns full post text, engagement counts, media attachments, and timestamps. Use for prospect monitoring, thought leader tracking, and content analysis.

Parameter Type Description
urn string LinkedIn user URN identifier
user string LinkedIn username or profile URL
count integer Number of posts per page (default: 20)
cursor string Pagination cursor from previous response
Response
{
  "posts": [
    {
      "post_urn": "urn:li:activity:7129384756102938",
      "text": "Excited to announce our Series B funding...",
      "created_at": "2025-01-15T09:30:00Z",
      "likes": 342,
      "comments": 47,
      "shares": 89,
      "media": [{ "type": "image", "url": "https://..." }],
      "author": {
        "name": "Jane Smith",
        "urn": "urn:li:member:123456789"
      }
    }
  ],
  "cursor": "eyJvZmZzZXQiOjIwfQ=="
}
Cost: 1 credit per page (20 posts)

Company Posts

GET /api/linkedin/company/posts

Retrieve all posts published by a LinkedIn company page. Same response structure as user posts, optimized for company content tracking, competitive analysis, and employer brand monitoring.

Parameter Type Description
urn string LinkedIn company URN identifier
user string Company vanity name or page URL
count integer Number of posts per page (default: 10)
cursor string Pagination cursor from previous response
Response
{
  "posts": [
    {
      "post_urn": "urn:li:activity:7130482957301284",
      "text": "We're hiring across engineering and product...",
      "created_at": "2025-01-18T14:00:00Z",
      "likes": 156,
      "comments": 23,
      "shares": 41,
      "media": [],
      "author": {
        "name": "Acme Corp",
        "urn": "urn:li:company:987654"
      }
    }
  ],
  "cursor": "eyJvZmZzZXQiOjEwfQ=="
}
Cost: 1 credit per page (10 posts)

Post Comments

GET /api/linkedin/post/comments

Retrieve all comments on a specific LinkedIn post. Returns commenter profile, comment text, timestamp, and nested reply structure. Use for sentiment analysis, community engagement tracking, and identifying active commenters.

Parameter Type Description
post_urn string URN of the LinkedIn post
count integer Number of comments per page (default: 10)
cursor string Pagination cursor from previous response
Response
{
  "comments": [
    {
      "text": "Congratulations! Well deserved.",
      "created_at": "2025-01-15T10:45:00Z",
      "likes": 12,
      "author": {
        "name": "John Doe",
        "urn": "urn:li:member:456789012",
        "headline": "VP Engineering at TechCo"
      }
    }
  ],
  "cursor": "eyJvZmZzZXQiOjEwfQ=="
}
Cost: 1 credit per page (10 comments)

Post Reactions

GET /api/linkedin/post/reactions

See who reacted to a specific post and what reaction type they used. Returns reactor profiles with reaction types (Like, Celebrate, Support, Love, Insightful, Funny). Use for engagement quality analysis and audience profiling.

Parameter Type Description
post_urn string URN of the LinkedIn post
count integer Number of reactions per page (default: 10)
cursor string Pagination cursor from previous response
Response
{
  "reactions": [
    {
      "type": "LIKE",
      "actor": {
        "name": "Sarah Chen",
        "urn": "urn:li:member:789012345",
        "headline": "Director of Marketing"
      }
    },
    {
      "type": "CELEBRATE",
      "actor": {
        "name": "Mike Johnson",
        "urn": "urn:li:member:345678901",
        "headline": "CEO at StartupXYZ"
      }
    }
  ],
  "cursor": "eyJvZmZzZXQiOjEwfQ=="
}
Cost: 1 credit per page (10 reactions)

User Comments

GET /api/linkedin/user/comments

Retrieve comments a specific user has left on other people's posts. Shows what topics they engage with, who they interact with, and what positions they take. Essential for understanding prospect interests beyond their own content.

Parameter Type Description
urn string LinkedIn user URN identifier
user string LinkedIn username or profile URL
count integer Number of comments per page (default: 20)
cursor string Pagination cursor from previous response
Response
{
  "comments": [
    {
      "text": "Great insight on the AI infrastructure space.",
      "created_at": "2025-01-16T11:20:00Z",
      "post_urn": "urn:li:activity:7130001234567890",
      "post_author": {
        "name": "Lisa Park",
        "urn": "urn:li:member:567890123"
      }
    }
  ],
  "cursor": "eyJvZmZzZXQiOjIwfQ=="
}
Cost: 1 credit per page (20 comments)

Content Search

GET /api/linkedin/search/posts

Search across all public LinkedIn posts by keyword. Returns matching posts with full engagement data, author profiles, and content text. Use for brand monitoring, trend detection, and competitive content intelligence at scale.

Parameter Type Description
keywords string Search query terms
count integer Number of posts per page (default: 50)
cursor string Pagination cursor from previous response
Response
{
  "posts": [
    {
      "post_urn": "urn:li:activity:7131592847301928",
      "text": "The future of AI agents in enterprise sales...",
      "created_at": "2025-01-20T08:15:00Z",
      "likes": 891,
      "comments": 134,
      "shares": 203,
      "author": {
        "name": "Alex Rivera",
        "urn": "urn:li:member:901234567",
        "headline": "AI Strategist"
      }
    }
  ],
  "cursor": "eyJvZmZzZXQiOjUwfQ=="
}
Cost: 1 credit per page (50 posts)

Code Examples

Production-ready examples for extracting LinkedIn post data.

Prospect Activity Analysis

Pull a prospect's recent posts, analyze engagement patterns, and find their top-performing content.

import requests

# Prospect activity analysis — pull posts and rank by engagement
API_KEY = "YOUR_ACCESS_TOKEN"
BASE = "https://api.anysite.io"
headers = {"access-token": API_KEY}

def get_prospect_posts(username, max_pages=5):
    """Pull all recent posts for a prospect."""
    posts = []
    cursor = None

    for _ in range(max_pages):
        params = {"user": username, "count": 20}
        if cursor:
            params["cursor"] = cursor

        resp = requests.get(
            f"{BASE}/api/linkedin/user/posts",
            headers=headers, params=params
        )
        data = resp.json()
        posts.extend(data.get("posts", []))

        cursor = data.get("cursor")
        if not cursor:
            break

    return posts

# Analyze engagement
posts = get_prospect_posts("janedoe")
for post in sorted(posts, key=lambda p: p["likes"] + p["comments"], reverse=True)[:5]:
    engagement = post["likes"] + post["comments"] + post["shares"]
    print(f"Engagement: {engagement} | {post['text'][:80]}...")

Brand Monitoring

Search LinkedIn for mentions of your brand and track sentiment across posts.

# Brand monitoring — search posts mentioning your company
def search_brand_mentions(brand, pages=3):
    """Search all LinkedIn posts for brand mentions."""
    mentions = []
    cursor = None

    for _ in range(pages):
        params = {"keywords": brand, "count": 50}
        if cursor:
            params["cursor"] = cursor

        resp = requests.get(
            f"{BASE}/api/linkedin/search/posts",
            headers=headers, params=params
        )
        data = resp.json()
        mentions.extend(data.get("posts", []))
        cursor = data.get("cursor")
        if not cursor:
            break

    return mentions

mentions = search_brand_mentions("Acme Corp")
print(f"Found {len(mentions)} posts mentioning your brand")
for m in mentions[:10]:
    print(f"  {m['author']['name']}: {m['text'][:60]}... ({m['likes']} likes)")

Competitive Content Analysis

Compare posting frequency and engagement rates across competitors.

# Competitive content analysis — compare engagement across companies
competitors = ["competitor-a", "competitor-b", "competitor-c"]

for company in competitors:
    resp = requests.get(
        f"{BASE}/api/linkedin/company/posts",
        headers=headers,
        params={"user": company, "count": 10}
    )
    posts = resp.json().get("posts", [])

    if posts:
        avg_likes = sum(p["likes"] for p in posts) / len(posts)
        avg_comments = sum(p["comments"] for p in posts) / len(posts)
        print(f"{company}: {avg_likes:.0f} avg likes, {avg_comments:.0f} avg comments")

Get User Posts

# Get recent posts from a LinkedIn user
curl -X GET "https://api.anysite.io/api/linkedin/user/posts" \
  -H "access-token: YOUR_ACCESS_TOKEN" \
  -G -d "user=janedoe" -d "count=20"

Search Posts by Keyword

# Search all LinkedIn posts for a topic
curl -X GET "https://api.anysite.io/api/linkedin/search/posts" \
  -H "access-token: YOUR_ACCESS_TOKEN" \
  -G -d "keywords=artificial intelligence enterprise" \
  -d "count=50"

Get Post Comments

# Get comments on a specific post
curl -X GET "https://api.anysite.io/api/linkedin/post/comments" \
  -H "access-token: YOUR_ACCESS_TOKEN" \
  -G -d "post_urn=urn:li:activity:7129384756102938" \
  -d "count=10"

Get Post Reactions

# See who reacted and their reaction type
curl -X GET "https://api.anysite.io/api/linkedin/post/reactions" \
  -H "access-token: YOUR_ACCESS_TOKEN" \
  -G -d "post_urn=urn:li:activity:7129384756102938" \
  -d "count=10"

User Posts

# Get recent posts from a LinkedIn user
anysite linkedin user posts --user janedoe --count 20

Company Posts as Table

# Get company posts formatted as a table
anysite linkedin company posts --user acme-corp --count 10 --format table

Search Posts

# Search all LinkedIn posts by keyword
anysite linkedin search posts --keywords "AI infrastructure" --count 50

Get Comments

# Get comments on a specific post
anysite linkedin post comments --post-urn "urn:li:activity:7129384756102938" --count 10

Pipeline YAML

# pipeline.yaml — monitor prospect posts daily
name: prospect-content-monitor
schedule: "0 8 * * *"
steps:
  - source: linkedin/user/posts
    params:
      user: janedoe
      count: 20
  - filter:
      min_likes: 10
  - output:
      format: json
      path: ./data/prospect-posts-Apr 11, 2026.json

Use Cases

How teams use LinkedIn post data to drive decisions.

Social Selling Signals

Monitor prospect posts to identify timely outreach opportunities. When a prospect posts about a challenge your product solves, you have a warm entry point. Track what topics they engage with, who they interact with, and what content they share to personalize every touchpoint.

How it works

Pull posts daily for your target accounts. Flag posts mentioning pain points, initiatives, or technologies relevant to your offering. Feed into your CRM as engagement signals for sales reps.

Competitive Content Strategy Analysis

Understand how competitors use LinkedIn for thought leadership and brand building. Measure posting frequency, engagement rates, content themes, and audience response. Identify what resonates with your shared audience and find content gaps to exploit.

How it works

Pull competitor company posts and executive posts weekly. Calculate average engagement per post, identify top-performing content themes, and compare against your own metrics. Track changes over time to spot strategy shifts early.

Influencer and Thought Leader Research

Identify industry thought leaders by engagement quality, not just follower count. Find people whose posts consistently drive meaningful comments and shares. Build partnership and co-marketing lists based on actual content performance rather than vanity metrics.

How it works

Search posts by industry keywords. Aggregate engagement by author across multiple posts. Rank by average engagement rate, comment-to-like ratio, and content consistency. Filter for authors who match your target audience profile.

Brand Reputation Monitoring

Catch every LinkedIn mention of your brand, products, or executives. Identify positive mentions to amplify, negative feedback to address, and competitive comparisons to learn from. Track brand sentiment shifts over time across the entire LinkedIn platform.

How it works

Use the content search endpoint to monitor brand keywords daily. Classify posts by sentiment (positive, negative, neutral) using NLP. Alert your PR or customer success team to high-engagement negative mentions for rapid response.

Comparison

How Anysite compares with other LinkedIn content tools.

Feature Anysite Phantombuster Shield Analytics Taplio
User posts Full text + engagement + media Limited extraction Own account only Own account only
Company posts Any company page Partial support No No
Comments Full comment threads Limited Own posts only Own posts only
Reactions Reactor profiles + type Count only Count only Count only
Content search All of LinkedIn by keyword No No Limited
API access REST API + MCP + CLI REST API No API No API
Batch processing CLI pipelines + scheduling Phantom chains No No
Pricing From $49/mo (15K credits) From $69/mo From $25/mo From $49/mo

Pricing

Credit costs per endpoint. All plans include access to every endpoint.

Endpoint Credit Cost Items per Page
User Posts 1 credit / page 20 posts
Company Posts 1 credit / page 10 posts
Post Comments 1 credit / page 10 comments
Post Reactions 1 credit / page 10 reactions
User Comments 1 credit / page 20 comments
Content Search 1 credit / page 50 posts

Cost Examples

Scenario What You Get Credits Used
Monitor 50 prospects daily 20 posts each, 30 days 1,500 credits/month
Track 10 competitor companies 100 posts each, weekly pulls 400 credits/month
Brand monitoring Daily keyword search, 150 posts/day 90 credits/month

Frequently Asked Questions

What post data is available?
The API returns full post text, creation timestamp, engagement metrics (likes, comments, shares), media attachments (images, videos, documents), author information including name and URN, post URN identifier, and content type. For comments, you get commenter profile, comment text, timestamp, and like count. For reactions, you get reactor profile and reaction type (Like, Celebrate, Support, Love, Insightful, Funny).
Can I get historical posts?
Yes. Use cursor-based pagination to page through a user or company's entire post history. Each page returns 10-20 posts depending on the endpoint, and you can continue paginating until all posts are retrieved. There is no time limit on how far back you can go -- you will get every public post the user or company has ever published.
Can I search all of LinkedIn for posts about a topic?
Yes. The Content Search endpoint (/api/linkedin/search/posts) searches across all public LinkedIn posts by keyword. It returns up to 50 posts per page with full engagement data, author profiles, and content text. This is ideal for brand monitoring, trend analysis, competitive intelligence, and identifying thought leaders in any industry.
How do I analyze sentiment or categorize posts?
The API returns raw post text and structured metadata. Pipe the JSON into any NLP or LLM service for sentiment analysis, topic categorization, or content classification. Many users combine Anysite post data with OpenAI, Claude, or open-source models for automated content intelligence pipelines.
Can I track engagement changes over time?
Yes. By periodically pulling posts for a user or company, you can track how engagement metrics change over time. Store snapshots in your database and calculate trends, growth rates, and engagement velocity. This is particularly useful for tracking the long-tail performance of viral posts or measuring the impact of content strategy changes.
How do reactions differ from likes?
LinkedIn reactions include six types: Like, Celebrate, Support, Love, Insightful, and Funny. The "likes" count in post data includes all reaction types combined. The Post Reactions endpoint gives you granular data -- each reactor's profile along with their specific reaction type. This is useful for sentiment analysis (Celebrate vs. regular Like), audience profiling, and understanding engagement quality beyond simple counts.

Start Extracting LinkedIn Content Data

7-day free trial with 1,000 credits. Full access to all six post data endpoints, plus every other LinkedIn, Instagram, Twitter, Reddit, and YouTube endpoint.