ProspectIQ — 外贸 B2B 客户开发 Skill
帮助外贸业务员通过 AI Agent 快速发现、分析海外潜在客户并完成开发信触达,将客户开发效率提升一个量级。
完整 API 文档参见 references/api-reference.md。
快速安装指南 | Quick Install
- openclaw 平台安装
往openclaw对话框输入:“请执行 npx clawhub@latest install --force 'prospect-iq' 安装这个skill,然后检查这个skill是否安装成功”
功能列表 | Capabilities
| 编号 | 功能 | 描述 | 是否扣积分 |
|---|---|---|---|
| 1 | 搜索公司 | 按行业、国家、关键词等多维度筛选海外企业 | 免费 |
| 2 | 查看公司 Profile | 获取公司完整工商信息和贸易数据 | 1 积分(30 天内重复查看免费) |
| 3 | 获取公司联系人邮件 | 获取指定公司的联系人邮箱列表 | 1 积分(30 天内重复查看免费) |
| 4 | 搜索联系人 | 按姓名、职位、邮箱、国家等条件跨公司搜索联系人 | 1 积分/次 |
| 5 | 发送批量开发信 | 同一正文模板群发给多个收件人,支持变量替换 | 消耗 EDM 配额(1 封/条) |
| 6 | 发送个性化开发信 | 每封邮件使用独立内容,适合 AI 生成的千人千面开发信 | 消耗 EDM 配额(1 封/条) |
| 7 | 查询积分与 EDM 余额 | 查看当前剩余搜索积分和邮件发送配额 | 免费 |
计费确认规则 | Billing Confirmation Rules
以下规则约束 Agent 在调用付费接口前的行为,目的是保护用户不在不知情的情况下被扣积分。
付费接口一览
| 接口 | 计费规则 | 确认策略 |
|---|---|---|
GET /api/v1/companies/:id/profile |
首次查看扣 1 积分(30 天去重) | 隐式调用需确认,用户主动请求无需确认 |
GET /api/v1/companies/:id/profileEmails |
与 profile 共享 30 天去重,空结果不扣分 | 隐式调用需确认,用户主动请求无需确认 |
POST /api/v1/contacts/search |
每次调用扣 1 积分 | 本次会话首次调用需确认,之后无需重复确认 |
规则 1:隐式调用付费接口须确认
定义: "隐式调用"是指 Agent 为了完成用户某个目标,在用户未明确说出要查询公司详情或联系人时,自主决定调用付费接口。
规则:
- 若 Agent 计划调用
profile或profileEmails接口,但用户原始消息中没有明确提及"查详情"、"看公司信息"、"要联系人"、"找邮箱"等意图,则必须先向用户确认再调用。 - 确认话术示例(可根据场景调整措辞):
我找到了一些符合条件的公司。如需获取某家公司的完整详情或联系人邮件,每家首次查询将消耗 1 积分(30 天内重复查看免费)。请问需要继续获取吗?
例外(无需确认):
- 用户在对话中明确说出了要查详情或联系人,例如:
- "查一下这家公司的详细信息"
- "帮我找这家公司的联系人邮箱"
- "我要看 Acme Corp 的 profile"
- 此类情况视为用户主动触发,直接调用,无需重复确认。
规则 2:调用付费接口后,回答必须告知本次扣费
无论是用户主动触发还是确认后调用,每次成功调用付费接口后,Agent 的回答中必须注明本次消耗的积分数。
格式建议(附在回答末尾):
💡 本次查询消耗了 1 积分,您当前剩余积分:XX(月度)+ YY(加购包)。
若同时查询了多家公司,应汇总说明:
💡 本次共查询了 3 家公司,消耗了 3 积分(其中 1 家为 30 天内重复查询,实际扣 2 积分)。当前剩余积分:XX。
注意: 若不确定余额,可在付费接口返回后额外调用
/api/v1/credit/balance获取最新余额再展示。
规则 3:/contacts/search 首次会话确认,后续免确认
- 本次会话中第一次调用
POST /api/v1/contacts/search前,无论用户是否明确提出搜索联系人,都需向用户提示该操作会扣积分并征求确认:联系人搜索每次查询消耗 1 积分。请问现在继续搜索吗?
- 用户确认后,本次会话后续的所有
/contacts/search调用不再重复提示,直接执行。 - 用户主动提出(如"帮我搜索采购总监")仍需在首次调用前提示,确认后后续免确认。
触发场景 | When to Use This Skill
触发本 skill 的典型用户意图
公司搜索场景(场景 A)
- "帮我找德国的电子产品企业" → 调用 搜索公司
- "搜一下做服装出口的美国小公司" → 调用 搜索公司
- "查一下这家公司的详细信息" → 调用 查看公司 Profile
- "帮我找这家公司的联系人邮箱" → 调用 获取公司联系人邮件
联系人直接搜索场景(场景 B,独立于公司搜索)
- "帮我找 Alice Wang 的联系方式" → 调用 搜索联系人
- "搜索 acme@example.com 这个邮箱对应的联系人" → 调用 搜索联系人
- "找一下有邮箱的采购经理" → 调用 搜索联系人
开发信发送场景
- "帮我给这些客户发一封开发信" → 调用 发送批量开发信
- "给每家公司各发一封 AI 写的个性化邮件" → 调用 发送个性化开发信
邮件发送状态查询场景(发送后回查)
- "上次发的那批邮件发出去多少封了" → 调用 查询邮件任务列表
- "任务 1001 里哪些邮件失败了" → 调用 查询邮件任务详情
- "Alice 那封邮件发成功了吗" → 调用 查询邮件发送记录(按收件人过滤)
- "最近三天发出去的邮件情况怎么样" → 调用 查询邮件发送记录(按时间过滤)
余额查询场景
- "我还有多少积分" → 调用 查询积分与 EDM 余额
- "我还能发多少封邮件" → 调用 查询积分与 EDM 余额
不适合使用本 skill 的场景
- 接收/阅读收到的邮件(本 skill 仅支持外发)
- 用户注册、充值、修改密码等账号管理操作(引导用户去官网自助完成)
- 单次发送超过 100 封(需分批调用,每批上限 100 封)
- Free 套餐用户发送 EDM(免费套餐无邮件能力,需升级)
认证配置 | Authentication
所有接口均使用 API Key 认证,每个用户持有独立的 sk- 开头密钥:
export PROSPECTIQ_API_KEY="sk-your-key-here"
export PROSPECTIQ_BASE_URL="https://prospect-iq.dev.xiaoman.cn" # 生产地址
请求头格式:
Authorization: ApiKey $PROSPECTIQ_API_KEY
X-Hostname: xxx
前置检查:API Key 配置验证
** PROSPECTIQ_API_KEY 为可选配置;已配置时使用该 API Key,未配置时先走下文“认证引导”完成匿名注册并获取 API Key **
[ -z "$PROSPECTIQ_API_KEY" ] && echo "NO_KEY" || echo "KEY_SET"
如果输出 NO_KEY: 先走下文“认证引导”完成匿名注册并获取 API Key**
如果输出 KEY_SET: 直接执行用户请求。
注册引导 | Authentication Setup
适用场景: 用户尚未配置 PROSPECTIQ_API_KEY 时,先询问用户的Api Key,如果用户说不知道或者不清楚则通过匿名注册获取 apiKey,然后将 apiKey 写入到能够跨会话读取的配置中(必须),避免用户下次会话调用服务接口时Agent再次提问用户Api Key影响用户体验。如果写入失败,输出命令提示用户进行保存,避免丢失数据**。
检测 API Key 是否缺失
在执行任何 API 请求之前,先检测 PROSPECTIQ_API_KEY 是否已设置:
[ -z "$PROSPECTIQ_API_KEY" ] && echo "NO_KEY" || echo "KEY_SET"
如果输出 NO_KEY,必须先完成下面的匿名注册与配置持久化流程;如果输出 KEY_SET,直接执行原始请求。
匿名注册获取 apiKey
无需用户提供任何信息(邮箱、用户名、密码),系统自动创建匿名账号,并返回可立即使用的 apiKey。
文档语义固定为:发送 Content-Type: application/json 和 body {}。
# 匿名注册并获取 API Key(空请求体)
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/auth/register-anonymous" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-d '{}' | jq '.'
成功响应:
{ "success": true, "userId": "123", "apiKey": "sk-xxxxxxxxxxxxxxxxxxxx", "keyPrefix": "sk-xxxxxx", "isAnonymous": true }
保存 apiKey(必须)
获取 apiKey 后,必须将它保存到 OpenClaw 的 skill 配置中。
- 告知用户并请求确认后执行
获取 apiKey 后,必须先告知用户 Agent 即将执行以下命令来持久化配置,并强制询问用户是否同意,用户确认后方可执行:
我即将执行以下命令,将您的 API Key 保存到 prospectiq skill 配置中:
`openclaw config set skills.entries.prospectiq.apiKey "sk-xxxxxxxxxxxxxxxxxxxx"`
是否同意执行?
用户同意后执行:
openclaw config set skills.entries.prospectiq.apiKey "sk-xxxxxxxxxxxxxxxxxxxx"
- 如果执行失败,输出命令给用户让其手动保存:
自动保存失败,请您手动执行以下命令进行保存!此 Key 只显示这一次。
`openclaw config set skills.entries.prospectiq.apiKey "sk-xxxxxxxxxxxxxxxxxxxx"`
- 后续请求使用方式:
保存完成后,OpenClaw 在后续会话中会自动提供 PROSPECTIQ_BASE_URL,此时可以直接执行原始 API 请求,无需再次匿名注册。
登录态存储
OpenClaw 本地 skill 配置持久化:
- 持久化位置:
skills.entries.prospectiq.apiKey - 会话恢复方式:OpenClaw 在启动新对话时自动注入为
PROSPECTIQ_BASE_URL - 当前文档没有依赖任何“skill 自动写入配置”的能力;如果运行环境不能自动执行
openclaw config set,则需要用户手动执行上面的命令完成保存
只要本地配置未被清除,就不需要在每个新会话里重复匿名注册。
账号绑定(可选)
匿名用户可以绑定真实邮箱,绑定后可通过邮箱+密码在官网登录:
步骤 1 — 发送验证码:
引导用户提供邮箱和密码,然后调用:
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/auth/bind-email" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
-d "{\"email\": \"<用户邮箱>\", \"password\": \"<用户密码>\"}" | jq '.'
成功返回 { "success": true },验证码已发送到用户邮箱。
步骤 2 — 验证绑定:
用户收到验证码后,调用:
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/auth/verify-bind-email" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
-d "{\"code\": \"<6位验证码>\"}" | jq '.'
成功返回 { "success": true },账号绑定完成。
套餐说明:
| 套餐 | 月搜索积分 | 月 EDM 配额 | 价格 |
|---|---|---|---|
| Free | 100 积分 | 无邮件能力 | $0 |
| Basic | 100 积分 | 300 封/月 | $19 |
| Professional | 500 积分 | 1500 封/月 | $199 |
加购包(Points Pack):400 积分 + 2000 封 EDM,$39.99,永不过期。
详细步骤 | Step-by-Step Workflows
工作流 A:搜索公司 → 查看公司详情 → 获取联系人邮件(串行流程)
典型场景: 用户想找一批目标公司,再获取这些公司的联系人进行开发。
步骤 1:搜索公司列表(免费,不扣积分)
# 搜索德国的电子产品企业,每页 20 条
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/companies/search" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-d '{
"keyword": "electronics",
"countryCode": "DE",
"pageSize": 20,
"page": 1
}' | jq '.list[] | {companyHashId, name, country, industry}'
注意:搜索结果中已隐藏联系人字段(
contacts、phone),需通过后续接口获取。
从响应中记录感兴趣公司的 companyHashId,用于后续查询。
步骤 2:查看公司完整 Profile(首次查看扣 1 积分,30 天内重复免费)
⚠️ 计费确认(适用于隐式调用): 若用户未明确要求查看公司详情,调用前须先确认(见「计费确认规则」Rule 1)。用户主动请求则直接执行。调用成功后需在回答中说明积分消耗情况(见 Rule 2)。
COMPANY_ID="abc123hash"
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/companies/${COMPANY_ID}/profile" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.'
步骤 3:获取该公司联系人邮件列表(与 profile 共享 30 天去重计费)
⚠️ 计费确认(适用于隐式调用): 同步骤 2,用户未明确请求时须先确认再调用。用户主动请求则直接执行,调用后须说明积分消耗(见「计费确认规则」Rule 1 & 2)。
# 支持按关键词筛选联系人(如职位关键词 "CEO"、"Buyer")
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/companies/${COMPANY_ID}/profileEmails?keyword=buyer&page=1" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.emails[] | {name, email, title}'
计费说明: profile 和 profileEmails 共享同一个 30 天去重记录。若已调用过 profile,再调用 profileEmails 不重复扣分,反之亦然。若该公司返回的 emails 列表为空,也不扣积分。
步骤 4:对多家公司并行获取联系人(可并行)
当用户对多家公司感兴趣时,可以并行调用 profileEmails,无需等待每家返回:
# 并行获取 3 家公司的联系人邮件
for COMPANY_ID in "hash001" "hash002" "hash003"; do
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/companies/${COMPANY_ID}/profileEmails" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq --arg id "$COMPANY_ID" '{companyId: $id, emails: [.emails[]? | {name, email}]}' &
done
wait
工作流 B:直接搜索联系人(独立场景,与公司搜索无关)
典型场景: 用户直接按姓名、邮箱、职位等条件搜索特定联系人。
⚠️ 计费确认(首次会话): 本次会话中第一次调用
/contacts/search前,须向用户说明每次搜索消耗 1 积分并征求确认。用户确认后,本次会话后续调用不再重复提示。调用成功后需在回答中注明本次积分消耗(见「计费确认规则」Rule 2 & 3)。
计费: 每次调用扣 1 积分。
# 场景 B1:按姓名搜索
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/contacts/search" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-d '{"name": "Alice Wang", "size": 20, "page": 1}' | jq '.list[] | {name, email, title, company}'
# 场景 B2:按邮箱搜索(仅支持单个邮箱查询)
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/contacts/search" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \、
-d '{"contact_match": "alice@acme.com", "size": 10, "page": 1}' | jq '.'
# 场景 B3:按职位 + 国家搜索,要求有邮箱
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/contacts/search" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-d '{
"title": "Procurement Manager",
"country_codes": "US",
"has_email": 1,
"size": 20,
"page": 1
}' | jq '.list[] | {name, email, title, company}'
工作流 C:发送批量开发信(同一模板,多个收件人)
典型场景: 给多个客户发同一封模板邮件,每人收到的公司名/称谓不同。
步骤 1:先查询余额,确认有足够 EDM 配额
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/credit/balance" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
jq '{monthlyEdm, addonEdm, totalEdm: (.monthlyEdm + .addonEdm)}'
如果 totalEdm < 收件人数量,告知用户配额不足,引导购买:
您当前 EDM 配额不足,无法完成本次发送。请前往 prospect-iq.dev.xiaoman.cn/pricing 升级套餐或购买加购包(400 积分 + 2000 封 EDM,$39.99)。
步骤 2:调用批量发送接口
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/send/batch" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-d '{
"content": "Dear #company_name#, we would love to partner with you on our latest products.",
"body_format": "html",
"recipients": [
{
"email": "alice@acme.com",
"subject": "Partnership Opportunity",
"nickname": "Alice",
"variables": { "#company_name#": "Acme Corp" }
},
{
"email": "bob@globex.com",
"subject": "Partnership Opportunity",
"nickname": "Bob",
"variables": { "#company_name#": "Globex Inc" }
}
]
}' | jq '.'
响应示例:
{ "task_id": 1001, "total": 2, "status": "pending" }
发送为异步处理,记录
task_id供后续查询进度使用。
工作流 D:发送个性化开发信(千人千面)
典型场景: AI 已为每个客户生成完全不同的正文内容。
curl -s -X POST "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/send/personalized" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Content-Type: application/json" \
-d '{
"emails": [
{
"content": "Hi Alice, Acme Corp has been a leader in textiles and we believe...",
"body_format": "html",
"email": "alice@acme.com",
"subject": "Custom Proposal for Acme Corp",
"nickname": "Alice"
},
{
"content": "Hi Bob, we noticed Globex recently expanded to Europe and...",
"body_format": "html",
"email": "bob@globex.com",
"subject": "Growth Opportunity for Globex",
"nickname": "Bob"
}
]
}' | jq '.'
响应示例:
{
"total": 2,
"tasks": [
{ "task_id": 1002, "mail_id": 2001, "email": "alice@acme.com" },
{ "task_id": 1003, "mail_id": 2002, "email": "bob@globex.com" }
]
}
工作流 F:查询邮件发送状态(发送后回查)
典型场景: 用户在工作流 C 或 D 发送邮件后,想了解发送进度、成功/失败情况。
触发时机: 用户主动询问"发出去多少封"、"哪些失败了"、"某个收件人有没有收到"时调用,不需要主动轮询。
场景 F1:查看最近群发任务列表
# 查看最近 20 条任务(默认分页)
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/tasks" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | \
jq '.data[] | {taskId, status, sentCount, failedCount, totalCount, createdAt}'
# 只查看已完成或部分成功的任务
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/tasks?statuses=completed,partial" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.'
任务状态说明:pending(等待处理)→ requested(已提交)→ completed(全部成功)/ partial(部分成功)/ failed(全部失败)
场景 F2:查看某次群发任务的详细结果(含每封邮件状态)
TASK_ID=1001
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/tasks/${TASK_ID}" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.'
# 只提取某次任务中失败的邮件
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/tasks/${TASK_ID}" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | \
jq '.mails[] | select(.status == "failed") | {mailId, recipientEmail, failureReason}'
场景 F3:跨任务查询特定收件人或时间段的邮件记录
# 查询特定收件人的所有发送记录
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/mails?recipient_email=alice@acme.com" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.data[] | {mailId, taskId, status, sentAt}'
# 查询最近三天的所有发送记录
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/mails?sent_from=2026-03-28T00:00:00Z&sort_order=desc" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.'
# 查询所有发送失败的邮件
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/mails?statuses=failed" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | \
jq '.data[] | {mailId, recipientEmail, failureReason}'
场景 F4:查看单封邮件完整详情
MAIL_ID=2001
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/emails/mails/${MAIL_ID}" \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.'
注意: 所有查询接口只返回当前用户自己的数据。
callbackReceivedAt是 EDM 服务回调确认送达的时间,非空表示已送达。
工作流 E:查询积分与 EDM 余额
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/credit/balance" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '.'
响应示例:
{
"userId": "12345",
"monthlyPoints": 80,
"monthlyEdm": 200,
"monthlyExpiresAt": "2026-04-30T23:59:59.000Z",
"addonPoints": 400,
"addonEdm": 2000
}
字段说明:
monthlyPoints+addonPoints= 当前可用搜索积分总量monthlyEdm+addonEdm= 当前可发送邮件总量monthlyExpiresAt= 月度配额重置时间(月底)- 扣费优先消耗
monthly配额,不足时自动使用addon加购包
错误处理 | Error Handling
| HTTP 状态码 | 场景 | Agent 处理方式 |
|---|---|---|
| 401 | API Key 无效或未配置 | 提示用户检查 PROSPECTIQ_API_KEY 是否正确,参考「前置检查」章节重新配置 |
| 402 | 积分不足 | 告知用户当前余额已用尽,引导前往 prospect-iq.dev.xiaoman.cn/pricing 购买加购包或升级套餐 |
| 403 | 套餐无权限(Free 套餐发邮件) | 告知用户 Free 套餐不支持 EDM,引导升级:prospect-iq.dev.xiaoman.cn/pricing |
| 400 | 请求参数格式错误 | 检查 email 格式、content 长度(≤50000字符)、recipients 数量(≤100) |
| 404 | companyHashId 不存在 | 确认公司 ID 来自搜索结果,不要手动构造 |
| 429 | 速率限制(60次/分钟)或 EDM 月/日配额超限 | 等待后重试;若是配额超限,向用户说明剩余量及重置时间 |
| 502 | EDM 第三方服务异常 | 提示用户稍后重试,服务商临时故障;已扣配额会自动退还 |
标准错误响应格式(RFC 7807):
{
"type": "https://prospect-iq.dev.xiaoman.cn/errors/insufficient-credits",
"title": "Payment Required",
"status": 402,
"detail": "Insufficient points balance. Required: 1, Available: 0"
}
积分不足时的引导话术:
您的搜索积分已用完。可前往以下页面充值:
- 升级套餐:prospect-iq.dev.xiaoman.cn/pricing
- 购买加购包(400 积分 + 2000 封 EDM,$39.99):prospect-iq.dev.xiaoman.cn/pricing
注意事项 | Important Notes
- 每个用户独立持有 API Key —
PROSPECTIQ_API_KEY是用户在控制台手动创建的个人密钥,不同用户积分和 EDM 配额相互独立 - 30 天去重计费 — profile 和 profileEmails 对同一公司共享去重记录,30 天内重复查看不扣积分
- profileEmails 无邮件时不计费 — 若接口返回 emails 为空列表,不扣任何积分
- EDM 发送为异步 — 调用后会立即返回
task_id,但实际送达需等待数秒至数分钟 - 单次 EDM 上限 100 封 — 超过 100 封需分批调用
- 积分双桶扣费 — 先消耗月度配额(
monthlyPoints/monthlyEdm),不足时自动扣加购包(addonPoints/addonEdm) - 搜索公司不扣积分 —
POST /api/v1/companies/search完全免费,可多次调用筛选
安装 | Installation
OpenClaw 安装步骤
# 1. 创建 skill 目录
mkdir -p ~/.openclaw/workspace/skills/prospectiq
# 2. 复制 skill 文件
cp {用户下载的prospectiq skill目录}/skill.md ~/.openclaw/workspace/skills/prospectiq/
cp -r {用户下载的prospectiq skill目录}/references ~/.openclaw/workspace/skills/prospectiq/
# 3. 设置环境变量
export PROSPECTIQ_API_KEY="sk-your-key-here" # 这里需要置为用户实际的sk key
export PROSPECTIQ_BASE_URL="https://prospect-iq.dev.xiaoman.cn"
将环境变量添加到 ~/.bashrc 或 ~/.zshrc 以持久化。
验证安装
# 查询余额(无需消耗积分,验证 Key 是否有效)
curl -s "${PROSPECTIQ_BASE_URL:-https://prospect-iq.dev.xiaoman.cn}/api/v1/credit/balance" \
${HOSTNAME:+-H "X-Hostname: $HOSTNAME"} \
-H "Authorization: ApiKey $PROSPECTIQ_API_KEY" | jq '{monthlyPoints, monthlyEdm}'
预期返回:包含 monthlyPoints 和 monthlyEdm 字段。若返回 401,请检查 PROSPECTIQ_API_KEY。
获取 API Key
- 访问 prospect-iq.dev.xiaoman.cn 注册或登录账号
- 进入控制台 → 「API Keys」页面
- 点击「创建密钥」,复制生成的
sk-开头密钥(仅显示一次,请立即保存) - 选择适合的套餐:prospect-iq.dev.xiaoman.cn/pricing
高级参考 | Advanced Reference
完整的请求/响应 Schema、全部参数约束和分页说明,请参见 references/api-reference.md。
