快速开始
不想写代码?打开控制台,运行请求并下载结果。
使用 API?从控制台获取密钥,替换下方的 key_live_xxxx。每月可免费使用 $6,无需绑卡。
通过 LinkedIn 个人主页 URL 刷新当前信息。
curl "https://crustapi.com/v1/linkedin?type=refresh&url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fdharmesh" \ -H "x-api-key: key_live_xxxx"
{
"publicIdentifier": "dharmesh",
"accessible": true,
"profileState": "accessible",
"firstName": "Dharmesh",
"lastName": "Shah",
"headline": "Founder and CTO at HubSpot. Helping millions grow better.",
"currentTitle": "Founder and CTO",
"titleSource": "headline",
"currentCompany": {
"name": "HubSpot",
"slug": "hubspot",
"linkedInUrl": "https://www.linkedin.com/company/hubspot",
"linkedInId": "68529"
},
"currentSchool": {
"name": "Massachusetts Institute of Technology",
"slug": "mit",
"linkedInUrl": "https://www.linkedin.com/school/mit",
"linkedInId": "1503"
}
}
示例来自已记录的实际响应,仅展示部分字段。长文本已缩短,电话号码已遮盖。实时结果可能不同。完整字段说明见下方。
响应字段
价格与计费
充值最低 $10。每个账户每月获得 $6 免费用量。所有价格均为美元。
每笔充值保留其对应价格,直到该笔余额用完。单笔充值越大,该笔资金适用的价格越低。多笔充值不累加为永久折扣。我们先使用免费额度,再使用适用价格最低的付费资金。价格相同时,先使用较早的充值。
Google Search 及 LinkedIn Person、Company、Posts 按成功返回结果的请求计费。Maps 按返回的企业计费。People 和 Jobs 按成功返回结果的搜索计费;People 完整资料按返回的完整资料计费。Refresh 按可访问的个人资料计费。包含工作邮箱查询。控制台会在运行前显示预估费用。
| 充值金额 | Google Search / 1,000 次请求 | Maps / 1,000 家企业 | LinkedIn Profiles / 1,000 | LinkedIn Companies / 1,000 | LinkedIn Posts / 1,000 requests | People、Jobs、Refresh / 1,000 个单位 |
|---|---|---|---|---|---|---|
| $10+ | $1.00 | $1.96 | $4.00 | $3.00 | $6.00 | $1.96 |
| $149+ | $0.76 | $1.49 | $3.00 | $2.50 | $4.50 | $1.49 |
| $549+ | $0.56 | $1.10 | $2.50 | $2.00 | $3.30 | $1.10 |
| $1,999+ | $0.41 | $0.80 | $2.00 | $1.75 | $2.45 | $0.80 |
| $6,500+ | $0.33 | $0.65 | $1.75 | $1.60 | $1.95 | $0.65 |
| $27,500+ | $0.28 | $0.55 | $1.60 | $1.50 | $1.65 | $0.55 |
| $50,000+ | $0.26 | $0.50 | $1.50 | $1.50 | $1.50 | $0.50 |
| $100,000+ | $0.20 | $0.40 | $1.50 | $1.50 | $1.50 | $0.40 |
钱包响应新增 billing.chargedUsd 和 billing.remainingUsd,金额以十进制字符串返回。GET /v1/balance 返回 wallet.availableUsd。原有 credits、charged、creditsRemaining 保持数字类型。钱包中的剩余额度兼容值是可负担的计费单位数量,并非美元,且可能因端点而异。金额核算请使用明确的 USD 字段。
概算基于当前余额及对应价格。并发请求或免费额度重置可能改变实际使用的资金和价格。活动日志记录最终费用。已有购买用量按旧价格与适用新价格中更优惠的一方保留。仍显示旧额度的账户在转换前继续使用原有条款。以下独立 x402 路径使用其单独的额度套餐,不会向控制台钱包充值美元。
更新人员记录、读取个人与公司档案,或查询人员、动态和职位。所有 LinkedIn 数据均来自无需登录即可访问的公开来源。
更新人员数据库
发送你已有的 LinkedIn 档案链接。Refresh 返回可获取的当前雇主、公司和学校 ID、姓名、简介标题与职位、头像及档案状态。将响应与你保存的记录比较,即可识别变更。
Refresh 字段位于响应的根层级。多个链接可使用批量请求,也可以在控制台试用 Refresh。工作经历及其他个人档案栏目请使用 type=person。
Refresh 响应字段
| 字段 | 说明 |
|---|---|
url | 请求中的 LinkedIn URL。 |
publicIdentifier | LinkedIn 个人主页 URL 中的公开用户名。 |
resolvedUrl | 可用时返回已确认的个人主页 URL;不会自动发现改名后的 URL。 |
firstName | 公开的名字。 |
lastName | 公开的姓氏。 |
headline | 公开的个人主页标题,不一定是职位名称。 |
headlineSource | 返回的个人主页标题的来源标记。 |
currentTitle | 可用数据支持的当前职位名称;依据见 titleSource。 |
titleSource | headline 表示职位来自个人主页标题;linkedin 表示明确的职位名称。 |
currentCompany | 当前雇主对象,可包含 name、slug、linkedInUrl 和 linkedInId。数字 ID 以字符串返回,缺失值可为 null。 |
currentSchool | 公开的学校对象,可包含 name、slug、linkedInUrl 和 linkedInId。数字 ID 以字符串返回,缺失值可为 null。 |
accessible | 是否返回了公开的个人主页数据。 |
profileState | 个人主页 URL 的状态,具体含义见下方状态说明。 |
companyState | 雇主信息状态:public、restricted、not_published 或 unknown。缺失信息不代表换了工作。 |
photo | 公开的头像 URL;不可用时为 null。 |
photoState | 头像的可用状态标记。 |
memberIdentifier | 可用的数字会员 ID,以字符串返回。Refresh 需设置 member=true,可能增加响应时间。 |
memorialized | 确认公开纪念标记时为 true,否则为 null。null 不代表账户是否活跃,也不表示该人是否在世。 |
memorializedSource | 返回的纪念标记的来源标签。 |
tookMs | 请求处理时间,单位为毫秒。 |
creditsRemaining | 兼容旧格式的数值余额。钱包的美元余额请使用 billing.remainingUsd。 |
billing | 适用时返回钱包扣费和余额,分别为十进制字符串 chargedUsd 和 remainingUsd。 |
选择 LinkedIn 操作
| type | 返回内容 |
|---|---|
refresh | 档案链接对应的当前公开信息。 |
person, profile | 可获取的公开个人档案、工作与教育经历和其他栏目。返回在 profile 中。 |
company | 公司详情、办公室、相关页面、推荐产品和公开联系方式。返回在 company 中。 |
people, search | 符合姓名、职业或筛选条件的人员。返回在 people 数组中。 |
posts | 个人或公司链接对应的近期公开动态,返回在 posts 数组中。 |
job, jobs | 职位 URL 返回单条职位;关键词或筛选条件返回职位搜索结果。两者都使用 jobs 字段。搜索结果字段可能少于职位详情。 |
字段覆盖随档案和操作而变化。null 和空栏目表示未返回该信息,不能证明该信息不存在。OpenAPI 参考提供响应结构。
个人档案响应字段
| 字段 | 说明 |
|---|---|
id | 个人主页标识符。 |
name | 公开的完整姓名。 |
firstName | 公开的名字。 |
lastName | 公开的姓氏。 |
publicIdentifier | LinkedIn 个人主页 URL 中的公开用户名。 |
linkedinUrl | 公开的 LinkedIn URL。 |
memberId | 可用的 LinkedIn 数字会员 ID,以字符串返回。 |
memberIdentifier | 可用的数字会员 ID,以字符串返回。Refresh 需设置 member=true,可能增加响应时间。 |
linkedInIdentifier | 可用的 LinkedIn 会员 URN。 |
headline | 公开的个人主页标题,不一定是职位名称。 |
headlineSource | 返回的个人主页标题的来源标记。 |
currentTitle | 可用数据支持的当前职位名称;依据见 titleSource。 |
titleSource | headline 表示职位来自个人主页标题;linkedin 表示明确的职位名称。 |
about | 公开的“关于”内容。 |
currentCompany | 当前雇主名称,类型为字符串;Refresh 使用公司对象。 |
currentCompanyId | 可用的当前公司数字 ID,以字符串返回。 |
currentSchoolId | 可用的学校数字 ID,以字符串返回。 |
companyState | 雇主信息状态:public、restricted、not_published 或 unknown。缺失信息不代表换了工作。 |
currentCompanyDomain | 可用的当前雇主网站域名。 |
currentCompanyIndustry | 可用的当前雇主所属行业。 |
currentCompanySize | 可用的当前雇主规模区间。 |
currentCompanyHeadquarters | 可用的当前雇主总部所在地。 |
location | 地点对象,包含公开的地点文本和可用的结构化信息。 |
city | 可用的城市名称。 |
state | 可用的州或地区。 |
country | 可用的国家名称。 |
countryCode | 可用的两字母国家代码。 |
experience | 可用的工作经历记录。缺少结束日期不代表该职位仍在任。 |
experienceState | 返回的工作经历的可用状态标记。 |
experienceAvailability | 返回的工作经历条目统计。positionsWithTitle 和 positionsWithDerivedTitle 分别统计明确职位和推导职位,不代表经历完整。 |
education | 可用的教育经历,包含学校、学历和日期等信息。 |
skills | 可用的公开技能。 |
languages | 可用的公开语言信息。 |
certifications | 可用的认证及其详情。 |
courses | 可用的公开课程信息。 |
volunteering | 可用的志愿服务经历。 |
organizations | 可用的组织成员关系及职位。 |
publications | 可用的出版物及相关信息。 |
projects | 可用的项目及相关信息。 |
honorsAndAwards | 可用的荣誉与奖项。 |
recommendations | 可用的推荐评价条目,可能少于报告的总数。 |
recommendersCount | 可用时报告的推荐评价数量。 |
peopleAlsoViewed | 可用的相关个人主页。 |
followerCount | 可用时报告的关注者数量。 |
followers | followerCount 的别名。 |
connectionsCount | 可用时报告的人脉数量。 |
connections | connectionsCount 的别名。 |
websites | 公开链接列表,每项包含 url 和 label。 |
website | 原有的单个网站字段;其他链接见 websites。 |
photo | 公开的头像 URL;不可用时为 null。 |
photoState | 头像的可用状态标记。 |
bannerImage | 可用的个人主页背景图 URL。 |
coverPhoto | bannerImage 的别名。 |
influencer | 已确认的公开影响力人物标记;null 表示未知。 |
topVoice | 已确认的公开 Top Voice 标记;null 表示未知。 |
creator | 已确认的公开创作者标记;null 表示未知。 |
memorialized | 确认公开纪念标记时为 true,否则为 null。null 不代表账户是否活跃,也不表示该人是否在世。 |
memorializedSource | 返回的纪念标记的来源标签。 |
workEmail | 设置 email=true 时返回可用的工作邮箱;使用前请查看 emailStatus。 |
emailStatus | 工作邮箱状态。pattern-likely 尚未验证,不等同于 verified。 |
emailConfidence | 返回的工作邮箱对应的置信度数值。 |
companyDomain | 邮箱查询对应的雇主域名。 |
publicHeadline | 设置 headline=true 时请求的可选附加个人主页标题字段。 |
工作经历可包含职位、雇主名称/URL/ID、地点、描述、日期、标志和来源标记。教育经历可包含学校名称/URL/ID、学历、专业、日期、描述和标志。experienceAvailability 只统计返回的条目。
公司响应字段
| 字段 | 说明 |
|---|---|
name | 公开的公司名称。 |
universalName | LinkedIn 公司 URL 中的公司标识名。 |
linkedInId | LinkedIn 数字公司 ID,以字符串返回。 |
linkedinUrl | 公开的 LinkedIn URL。 |
pageType | 公司主页或展示主页类型。 |
tagline | 公开的公司标语。 |
description | 公开的公司介绍。 |
website | 可用时返回公开的网站 URL。 |
industry | 公开的行业。 |
companyType | 公开的组织类型。 |
founded | 可用的公开成立年份。 |
specialties | 公开的公司专长列表。 |
companySize | 公开的员工规模区间。 |
employeeCountRange | 公开员工规模区间的数值下限和上限。 |
employeeCount | LinkedIn 报告的员工数量,可能与规模区间不同。 |
followers | 可用的关注者数量。 |
headquarters | 公开的总部所在地。 |
address | 可用的结构化总部地址。 |
locations | 公开办公地点,可包含 addressLines、directionsUrl 和 isPrimary;地图链接不代表有坐标数据。 |
logo | 公开的公司标志图片 URL。 |
banner | 公开的公司横幅图片 URL。 |
crunchbaseUrl | 可用的公开 Crunchbase 链接。 |
similarCompanies | 可用的相关公司主页。 |
affiliatedPages | 可用的关联公司或展示主页;关联关系不一定表示子公司。 |
employeeSample | 部分公开员工样本,包含姓名和个人主页 URL,并非完整员工名单。 |
employees | 设置 employees=true 时附加的匹配人员结果,与公司对象分开返回,并非完整员工名单。 |
publishedContacts | 公开邮箱和电话,附相关文本及 URL。公开信息不等于已验证归属或可联系性。 |
employeeSearchCompanyIds | 员工搜索关联的公司 ID,不能替代公司自身的 linkedInId。 |
jobSearchUrl | 可用的公司职位链接,不代表空缺职位数量。 |
featuredProducts | 可用的精选产品,含名称、链接及详情,可能仅为部分产品。 |
职位、动态和人员搜索
职位可返回名称、公司名称/URL、地点、描述、资历、工作类型、职能、行业、薪资和状态。jobPoster 包含公开联系人的姓名、简介标题和 URL。可选字段包括 datePosted、validThrough、educationRequirements、experienceRequirements、jobLocation、sourceJobIdentifier 和 jobMetadataSource。没有公司 URL 时仍可返回公司名称。validThrough 为公布的有效期,不代表已确认关闭。
动态包含可获取的正文、日期、链接、作者、图片、反应和评论数量。comments=true 增加可获取的评论。人员搜索返回可获取的身份、地点、雇主、教育和关注者等数量。若有 source、returned、totalAvailable 和 totalCapped,请一并检查;总数可能设有上限,返回结果不保证涵盖所有匹配。
档案状态与缺失值
| profileState | 含义 |
|---|---|
accessible | 已返回公开数据。 |
exists_not_public | 识别到档案,但公开数据不可用;具体账号设置未知。 |
not_resolvable | 该 URL 未能解析为档案,不代表已永久删除。 |
unknown | 无法确认档案状态。请保留原记录,稍后重试。 |
新信息缺失或不确定时,请保留已有值。缺少雇主信息不能证明当事人已离职。无法获取数据的 Profile 和 Refresh 结果不计费。
LinkedIn 请求参数
| 参数 | 用法 |
|---|---|
url | Refresh/person 使用个人主页 URL,company 使用公司 URL,posts 使用个人或公司 URL,job 使用职位 URL。 |
member | Refresh:member=true 添加可用的数字会员 ID。 |
keywords | 人员或职位搜索文本;也可以只使用受支持的筛选条件。 |
location | 人员或职位所在地。职位搜索最多支持三个地点,用分号分隔。 |
company | 人员搜索:当前雇主。职位搜索:公司名称、LinkedIn 公司 URL 或数字 ID。 |
school | 人员搜索的学校筛选条件。 |
title | 人员搜索的职业筛选条件,可结合地点;不支持的职业可能返回空结果。 |
profession | 人员搜索中 title 筛选条件的别名。 |
industry | 人员搜索的行业筛选条件。 |
companySize | 人员搜索的雇主规模筛选条件。 |
pastCompany | 人员搜索的前雇主筛选条件。 |
followersMin | 人员搜索的最少关注者数量。 |
followersMax | 人员搜索的最多关注者数量。 |
connectionsMin | 人员搜索的最少人脉数量。 |
connectionsMax | 人员搜索的最多人脉数量。 |
expCountMin | 人员搜索的最少工作经历条目数。 |
expCountMax | 人员搜索的最多工作经历条目数。 |
titleExclude | 从人员或职位搜索中排除职位名称;多个值用逗号分隔。 |
companyExclude | 从人员搜索中排除雇主;多个值用逗号分隔。 |
locationExclude | 从人员或职位搜索中排除地点;多个地点用分号分隔。 |
pastCompanyExclude | 从人员搜索中排除前雇主;多个值用逗号分隔。 |
sortBy | 职位搜索默认按最新排序;relevance 表示按相关性排序。 |
postedWithin | 职位发布时间范围:24h、week 或 month。 |
daysSincePostedMin | 职位发布至今的最少天数。 |
daysSincePostedMax | 职位发布至今的最多天数。 |
employmentType | 职位搜索:用逗号分隔的雇佣类型,例如 Full-time,Contract。 |
seniority | 职位搜索:用逗号分隔的职级,例如 Director,Executive。 |
titleInclude | 职位搜索:要匹配的职位名称关键词,用逗号分隔。 |
descriptionKeywords | 职位搜索:要在职位名称或描述中匹配的关键词,用逗号分隔。 |
hasRecruiter | 职位搜索:true 仅保留公开招聘联系人信息的职位;false 排除这些职位。 |
count | 人员或职位搜索:count=true 免费返回数量预览,不含记录。数量可能不可用或受限,请查看返回的元数据。 |
num | 请求的结果数量。职位默认 25、最多 100;帖子默认 50、最多 100。人员上限取决于搜索类型。 |
limit | 另一个结果数量参数。职位默认 25、最多 100;帖子默认 50、最多 100。人员上限取决于搜索类型。 |
start | 支持的搜索操作的结果偏移量。 |
email | person/profile:email=true 添加可用的工作邮箱字段。 |
domain | person/profile 邮箱查询使用的已知雇主域名。 |
companyId | person/profile:true 请求首个返回公司的数字 ID;其他条目也可能带有 ID。 |
schoolId | person/profile:true 请求首个返回学校的数字 ID;其他条目也可能带有 ID。 |
headline | person/profile:headline=true 请求可选的 publicHeadline 字段。 |
employees | company:employees=true 添加匹配人员结果。 |
comments | posts:comments=true 添加可用的评论。 |
enrich | people/search:enrich=true 添加可用的完整个人资料,按返回的个人资料数量计费。 |
计费
Person、Company、Posts、People 和 Jobs 按各自端点价格对成功请求计费。People 的 enrich=true 按返回的完整档案数量计费。Refresh 按可访问档案计费。工作邮箱查询已包含;即使没有找到邮箱,成功返回的档案仍计费。详见当前价格。
一个接口,一个参数即可选择 Google 数据面。改变 type,其余保持不变。
你可以请求的数据面:
| type | 返回内容 |
|---|---|
maps | 本地商家:名称、地址、电话、网站、评分、评论数 |
web | Google 网页搜索:自然结果、大家还在问、相关搜索 |
places | 精简的本地点搜索结果 |
news | Google 新闻:标题、来源、日期,以及一张真实的主图 |
shopping | Google 购物商品,含价格和卖家 |
images | Google 图片结果 |
videos | Google 视频,含直连缩略图 |
scholar | Google 学术论文与引用 |
patents | Google 专利结果 |
autocomplete | 针对查询的 Google 自动补全建议 |
webpage | 把任意网址转成干净的文本、元数据和 JSON-LD,可直接喂给 AI(RAG) |
lens | 以图搜图:传入图片 url,即可获得该图片出现的网页,含标题和链接 |
reviews | 某商家的 Google 评论,支持排序和分页 |
Google Maps 响应字段
type=maps 的商家记录位于 places 数组中。字段覆盖随商家、类别和国家而变化。缺失的电话或网站会留空。
Maps 字段参考
| 字段 | 说明 |
|---|---|
position | 商家在返回结果中的位置。 |
title | 商家名称。 |
placeId | Google 地点标识符。 |
fid | Google 地理要素标识符。 |
cid | 该商家条目的 Google 客户标识符。 |
url | 该商家条目的 Google 地图链接。 |
address | 格式化的商家地址。 |
street | 可用的街道地址。 |
city | 可用的城市名称。 |
state | 可用的州或地区。 |
postalCode | 可用的邮政编码。 |
countryCode | 可用的两字母国家代码。 |
location | 坐标对象,包含 lat 和 lng。 |
phone | 公开的本地格式电话号码。 |
phoneUnformatted | 可用时返回含国家代码的公开电话号码。 |
website | 可用时返回公开的网站 URL。 |
categoryName | 商家的主要类别。 |
categories | 可用的商家类别列表。 |
description | 可用的公开商家介绍。 |
totalScore | 可用的平均星级评分。 |
reviewsCount | 可用的评价总数。 |
reviewsDistribution | 设置 stars=true(别名 details=true)时返回可用的 oneStar 至 fiveStar 评价数量,可能增加响应时间。 |
openingHours | 按天列出的公开营业时间。 |
priceLevel | 可用的公开价格范围或档次。 |
permanentlyClosed | 返回的永久停业标记。 |
mainImage | 可用的商家主图 URL。 |
thumbnailUrl | 可用的商家缩略图 URL。 |
bookingLinks | 可用的预订链接。 |
attributes | 可用的商家属性。 |
scrapedAt | 该商家条目的采集时间。 |
常用参数
| param | 作用 |
|---|---|
q | 你的搜索查询。大多数数据面必填。 |
gl | 国家代码,如 us 或 gb。 |
hl | 语言代码,如 en。 |
location | 搜索的所在地,用于 maps 和 places,如 Miami, FL。 |
limit | 用于 type=maps:返回多少家商家。默认 20,最多 100。 |
num | 用于 type=reviews:每页返回多少条评论。默认 20,最多 50。用于 type=images:返回多少张图片。不填则返回全部,通常约 99 张。 |
page | 返回第几页结果。 |
完整的机器可读规范在 /v1/openapi.json。把你的工具或智能体指向它即可。
数据新鲜度
每次搜索都在你发起请求时实时获取。我们绝不会用旧结果代替一次失败的获取:如果无法完成你的搜索,你会收到一个错误,该次调用免费,你可以重试。唯一的例外很小并且始终会明确告知:如果你在 60 秒内重复发送同一个搜索,可能会收到第一次的结果,此时响应中会带有 "cached": true 和 "cacheAgeSeconds"。加上 &fresh=1 可强制每次都重新获取。
速率限制
有些搜索类型的获取耗时更长,因此每个密钥对这些类型同时进行中的请求数量有上限。发送到上限后,等待结果返回再继续发送。超出上限的请求会收到 429 和 Retry-After 头。如果我们短暂达到容量上限,你的请求可能会先等待几秒,然后要么被处理,要么返回 429。被限速的调用永远不计费。
| 套餐 | web、news | images、shopping、videos、scholar、lens |
|---|---|---|
| 免费 | 每个密钥同时 2 个 | 每个密钥同时 1 个 |
| 付费 | 每个密钥同时 5 个 | 每个密钥同时 3 个 |
maps、places、reviews、autocomplete、patents、webpage 以及 LinkedIn 接口没有并发上限。如果你的项目需要超过付费上限的吞吐量,联系我们,我们会为你配置。
批量请求与 webhook
向 POST /v1/linkedin/batch 发送最多 100 个 URL。支持 refresh、person(别名 profile)、company 和 posts。结果保持输入顺序,每行分别返回成功或错误。
响应包含 results 数组。每行有 url、ok,以及 data 或 error。data 是该操作的数据,不包含单次请求的计费/耗时外层。不可访问的行不计费;请检查返回的 data.accessible 或 notAccessible。
异步投递,最多 10,000 个 URL
添加公开的 HTTPS webhook URL。API 返回 HTTP 202 和 jobId,完成后将批量结果 POST 到 webhook。请求头 X-Crustapi-Job 用于识别投递。
大型结果可能通过 resultsUrl 投递,并附带 resultsBytes 和 resultsExpireAt。请在到期前下载 JSON;临时文件随后会被删除。直接投递到 webhook 的结果请自行保存。
状态端点返回任务状态、数量和投递信息,不返回结果行。请使用同一账号的 API 密钥。Webhook URL 不可内嵌凭据;不跟随重定向,投递失败会重试一次。
可选项:Refresh 的 member: true,以及 posts 的 comments: true。批量请求不支持 employees=true。成功返回数据的行按所选端点价格计费;不可用结果和格式错误的 URL 不计费。
CLI
更喜欢用终端?安装 CLI,就能在你的 shell 里拿到同样的数据,可选 JSON 或 CSV。
输出默认是 JSON,可以干净地管道传递,状态行输出到 stderr,因此你的管道不会被污染。加上 --csv 即可输出 CSV。它已发布在 npm 上,名为 crustapi-cli。
面向 AI 助手的 MCP
为 Claude Desktop、Cursor、Cline 或任意 MCP 客户端提供Google 和公开 LinkedIn 数据。无需安装,npx 会直接运行。把下面这段加入你的客户端配置并重启即可。
会出现三个工具。search 用一次调用覆盖整个菜单,scrape_webpage 把任意网址转成可直接喂给 AI 的干净文本(RAG),get_reviews 拉取某商家的 Google 评论。该包已发布在 npm 上,名为 crustapi-mcp。
People Refresh 可通过智能体的 HTTP 工具调用 /v1/linkedin?type=refresh。当前已发布的 MCP 包提供个人档案、公司、动态、职位和人员搜索。
集成
支持 HTTP 请求和自定义请求头的工具都可以调用 CrustAPI。
通过 HTTP 请求连接
在工具中添加 HTTP 请求步骤,选择 GET,填写下面的端点和查询参数,并在 x-api-key 请求头中填入 API 密钥。将 {{双花括号}} 中的值替换为工作流中的字段。
更新人员信息
将 LinkedIn 档案链接作为 url 传入。把 currentCompany.name、currentCompany.linkedInId、currentTitle、titleSource 和 profileState 映射到工作流或电子表格。与已保存的雇主/职位比较,结果不可用时保留原值。
查找本地商家
映射 places[0].website、places[0].phone、places[0].address、places[0].totalScore 和 places[0].reviewsCount。接受匹配前请核对返回的名称、地址和网站。这是商家搜索,第一条结果不保证与输入域名对应的公司一致。
请将 API 密钥保存在工具的凭据设置中,并在工作流的下一步使用返回的 JSON 字段。
AI 智能体
受支持的工具可使用 MCP 服务;Refresh 及其他端点选项可通过 HTTP API 调用。向智能体提供 llms.txt 使用说明和 OpenAPI 规范中的请求与响应结构。
智能体支付(x402)
你的智能体无需注册、无需绑卡、无需密钥就能开始。它可以用 x402(开放的 HTTP 支付标准)自行购买额度。如果你的智能体框架已经支持 x402,那么你无需写任何额外代码就能用上。
下面是完整的握手流程。
- 你的智能体在不带密钥的情况下调用
POST /v1/x402/topup?pack=agent。 - 我们返回
402 Payment Required,附上金额、付款地址,以及 Base 上的 USDC 合约。 - 智能体的钱包签署一份免 gas 的 USDC 授权(EIP-3009),并带着签名再次发送请求。
- 我们在链上验证并结算,然后返回一个已经充好额度的真实 API 密钥。
从这里开始,这个密钥就和其他密钥一样。智能体调用 /v1/search,花掉它刚买的额度。
402 质询
不带密钥调用充值接口,你就会拿回付款条款。
付款之后
你的 x402 客户端签署授权并重试。我们完成结算,返回一个可立即使用的密钥。
有几点值得了解:
- 付款使用 Base 上的 USDC,且免 gas。你的智能体签署一份授权,因此无需持有 ETH 来支付 gas。
- agent 套餐是首充 $5 换 2,500 点额度。更大的套餐运作方式相同,随着用量增长,只需传入不同的 pack。
- 通过 x402 付款获得的额度与用银行卡购买的额度完全相同。每次成功搜索扣 1 点额度,空结果免费。
询问你的 AI
还有疑问?复制这份包含详细产品说明的 md 文件,拿去问你的智能体。
智能体可以直接在 crustapi.com/llms.txt 获取它。
遇到这里没写到的问题?发邮件到 support@crustapi.com,会有真人回复。