Blog/开发者工具/

LinkedIn 公司研究 API 教程 | SandBase

搭一套 LinkedIn 公司研究工作流:读公司资料、拉公司帖子、翻页 feed——一个 SandBase 密钥,无需 LinkedIn 登录、无需 SDK。

深色电影质感画面:LinkedIn 公司资料化为一条公司帖子流,汇入 Agent 内核

如果你做 B2B 研究或竞品情报,LinkedIn 公司页是一个丰富、结构化的来源:员工规模、总部、粉丝基数,以及一条公开帖子流。这篇 LinkedIn 公司研究 API 教程用两个 SandBase 端点串起一个可复用的循环——读公司资料,再拉它的帖子——让 Agent 能端到端跑完。它建立在 LinkedIn 公开数据 API 汇总页之上;建议先读那篇了解全局。

这里的一切都是公开、只读数据。不需要登录 LinkedIn、不需要 SDK——但仍需要一个 SandBase API 密钥来鉴权。端点 API 参考是参数和响应信封的权威来源。参考只保证信封本身;下面的载荷字段名来自我实际跑的调用(测试于 2026-09-28,UTC),是示意性的、仅供观测——并非文档保证——请以真实响应为准核对。

先说结论

  • 两个端点构成循环:company-profile(企业信息)→ company-posts(公开 feed)。
  • 每次调用都是 POST /v1/api/linkedin/web-v2/<path>,带一个公司 url,一个 SANDBASE_API_KEY。
  • 两个端点接同一个公司 url,所以循环天然可串联。
  • 仅公开、只读数据——不发帖、不涉及私有/仅成员可见数据。

SandBase vs. 官方 LinkedIn API

你的需求用
公开、只读的公司资料和帖子SandBase LinkedIn 公开数据 API
管理主页、发帖,或用 Marketing/合作伙伴 APILinkedIn 官方 API
私有或仅成员可见的数据两种公开方案都不适用

工作流一览

  1. 用 linkedin/web-v2/company-profile 以一个公司 url 读资料。
  2. 用同一个 url 调用 linkedin/web-v2/company-posts 拉帖子,用返回的 paging 翻页。

每个端点返回共享信封——一个 id、一个 status、model,以及在 completed 运行上的负载。

SandBase LinkedIn API 页面,含本工作流用到的端点 SandBase 上的 LinkedIn 端点——company-profile 和 company-posts 驱动这个循环。

第 0 步:一个辅助函数管所有调用

import os
import requests

API = "https://api.sandbase.ai/v1/api"
HEADERS = {
    "Authorization": f"Bearer {os.environ['SANDBASE_API_KEY']}",
    "Content-Type": "application/json",
}

def call(path: str, payload: dict) -> dict:
    resp = requests.post(f"{API}/{path}", headers=HEADERS, json=payload, timeout=70)
    resp.raise_for_status()
    body = resp.json()
    if body.get("status") != "completed":
        raise RuntimeError(body.get("error", {}).get("message", f"{path} 未完成"))
    # 信封可能不同:优先读顶层 output,否则 outputs[0].data。
    output = body.get("output")
    if output is None and body.get("outputs"):
        output = body["outputs"][0].get("data", {})
    return output or {}

第 1 步:读公司资料

url = "https://www.linkedin.com/company/openai"
profile = call("linkedin/web-v2/company-profile", {"url": url})
print(profile.get("company_size"), "|", profile.get("followers"), "粉丝")
print("总部:", profile.get("headquarters"))

在我抓到的响应里(company-profile run id 79201745-d83f-4b1f-bee3-ba676cd1a1f0,测试于 2026-09-28,UTC),负载带 about、description、company_size、followers、employees 和 headquarters——这些是示意性的、仅供观测的字段。用 .get() 读每个,并对照真实响应核对。

LinkedIn company-profile 端点的 SandBase API 参考 company-profile 参考——url 参数和响应路径的事实来源。

第 2 步:拉公司帖子

feed = call("linkedin/web-v2/company-posts", {"url": url})
posts = feed.get("data", [])
paging = feed.get("paging")
for p in posts[:5]:
    print(p.get("num_likes"), "赞,", p.get("num_comments"), "评论 -", p.get("posted"))

在我这次运行里(company-posts run id acda947a-5c3e-4114-a762-b1474e333bff),负载带一个 data 帖子列表(每条含 num_likes、num_comments、num_reposts、posted、poster)加一个 paging 对象。翻页时,按参考跟随 paging 对象——确切机制对照参考核对。

LinkedIn company-posts 端点的 SandBase API 参考 company-posts 参考——传同一个公司 url;通过 paging 对象翻页。

串起来

def research(company_url: str):
    profile = call("linkedin/web-v2/company-profile", {"url": company_url})
    feed = call("linkedin/web-v2/company-posts", {"url": company_url})
    posts = feed.get("data", [])
    engagement = [
        {"posted": p.get("posted"), "likes": p.get("num_likes"), "comments": p.get("num_comments")}
        for p in posts if isinstance(p, dict)
    ]
    return {
        "company_size": profile.get("company_size"),
        "followers": profile.get("followers"),
        "recent_posts": engagement,
    }

因为两个端点接同一个公司 url 并共享同一个信封,循环保持扁平:call(...) 里一次 status 检查、profile 和 posts 用一套 .get() 模式。

常见用例

竞品情报

读一个竞品的 company_size、followers 和 headquarters,再拉近期帖子看它们推什么、效果如何(赞、评论、转发)。输入:一个公司 url。输出:企业信息加一份帖子互动样本。端点:company-profile、company-posts。

线索与客户研究

用 company-profile 的 company_size 和 followers 给目标客户名单做富化以排优先级。输入:公司 url。输出:可比的企业信息。端点:company-profile。

内容与信息分析

拉一个公司的帖子,分析 poster、发帖节奏和互动,理解它的内容策略。输入:一个公司 url。输出:带互动的帖子流。端点:company-posts。

招聘与增长信号

一个公司的 company_size 和 followers 在多次读取间的变化,结合它近期帖子的主题和频率,能暗示势头——一个大量发招聘或产品发布、同时粉丝增长的公司很可能在扩张。按节奏轮询这两个端点、存下数字、跨运行对比。防御式读每个字段,并把趋势当作方向性信号,因为观测字段会变。输入:一个公司 url。输出:随时间的企业信息与发帖趋势。端点:company-profile、company-posts。

实操要点

  • 信封可能不同。 参考记录的是 outputs[0].data;两种结构都读(优先 output,回退 outputs[0].data)。
  • 通过 paging 对象翻页。 按参考的翻页机制处理 company-posts。
  • 业务字段仅供观测。 把 followers、num_likes、company_size 之类当作观测到的、以真实响应核对。
  • 仅公开、只读数据。 不发帖、不涉及仅成员可见数据。用 SandBase API 密钥鉴权。
  • 做个好客户端。 遇到 HTTP 429 等瞬时错误按退避重试;翻页而不是猛打。

常见问题

我需要 LinkedIn 开发者应用或登录吗? 不需要。你用自己的 SANDBASE_API_KEY 向 SandBase 鉴权。这些读取端点不需要你这边有 LinkedIn 账号或 OAuth。

什么标识一个公司? 一个公司页 url(如 https://www.linkedin.com/company/<slug>)。两个端点接同一个 url。

怎么翻更多帖子? company-posts 负载带一个 paging 对象;按参考跟随它。

我能读成员资料或私有数据吗? 本教程覆盖公司端点。汇总页也记录了公开的人物资料读取;私有和仅成员可见数据不在范围内。

小结

两个端点、一个信封、一个公司 url——这就是整个公司研究循环。完整端点目录见 LinkedIn 公开数据 API 汇总页。准备好后: