360 Secure SkillHub
360 安全技能中心

Prospect Iq

为外贸业务员提供海外B2B客户开发全流程支持:可按行业、国家等搜索海外企业,查询公司详情及联系人邮箱,跨公司搜索特定联系人,发送批量或个性化开发信,还能查询积分与EDM配额。支持中文自然语言指令,付费操作前需确认,避免误扣费,适用于海外客户挖掘与触达场景。

okki-op
okki-op
热度 28.56
最近更新 2026-04-07 17:56:52
分类:营销依赖:第三方 API / 代码执行应用场景:邮件起草 / CRM / 研究 / 市场分析

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add prospect-iq
Metadata
name
prospectiq
version
1.1.15
description
prospectiq 外贸 B2B 客户开发一站式 skill — 帮助外贸业务员搜索海外企业、获取公司联系人邮件、搜索联系人名单、发送个性化开发信以及查询积分余额。Use when: user wants to find overseas companies by industry/country/keyword, get a company's contact emails, search for specific contacts by name/email/title, send outreach emails (EDM) to prospects, check remaining search credits or EDM quota. Supports Chinese natural language queries like '帮我找美国的电子企业'、'查一下这家公司的联系人邮箱'、'帮我给这些客户发开发信'、'我还有多少积分'. NOT for: domestic company search, receiving emails, managing email accounts, user registration/billing operations, or any action that modifies account settings.
metadata
{"openclaw":{"emoji":"🌐","requires":{"bins":["curl","jq"]},"primaryEnv":"PROSPECTIQ_API_KEY","homepage":"https://prospect-iq.dev.xiaoman.cn"}}
config
{"apiKey":{"type":"string","required":true,"description":"API 密钥"}}

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 配置中。

  1. 告知用户并请求确认后执行

获取 apiKey 后,必须先告知用户 Agent 即将执行以下命令来持久化配置,并强制询问用户是否同意,用户确认后方可执行:

我即将执行以下命令,将您的 API Key 保存到 prospectiq skill 配置中:
`openclaw config set skills.entries.prospectiq.apiKey "sk-xxxxxxxxxxxxxxxxxxxx"`
是否同意执行?

用户同意后执行:

openclaw config set skills.entries.prospectiq.apiKey "sk-xxxxxxxxxxxxxxxxxxxx"
  1. 如果执行失败,输出命令给用户让其手动保存:
自动保存失败,请您手动执行以下命令进行保存!此 Key 只显示这一次。
`openclaw config set skills.entries.prospectiq.apiKey "sk-xxxxxxxxxxxxxxxxxxxx"`
  1. 后续请求使用方式:

保存完成后,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"
}

积分不足时的引导话术:

您的搜索积分已用完。可前往以下页面充值:


注意事项 | Important Notes

  1. 每个用户独立持有 API Key — PROSPECTIQ_API_KEY 是用户在控制台手动创建的个人密钥,不同用户积分和 EDM 配额相互独立
  2. 30 天去重计费 — profile 和 profileEmails 对同一公司共享去重记录,30 天内重复查看不扣积分
  3. profileEmails 无邮件时不计费 — 若接口返回 emails 为空列表,不扣任何积分
  4. EDM 发送为异步 — 调用后会立即返回 task_id,但实际送达需等待数秒至数分钟
  5. 单次 EDM 上限 100 封 — 超过 100 封需分批调用
  6. 积分双桶扣费 — 先消耗月度配额(monthlyPoints/monthlyEdm),不足时自动扣加购包(addonPoints/addonEdm)
  7. 搜索公司不扣积分 — 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

  1. 访问 prospect-iq.dev.xiaoman.cn 注册或登录账号
  2. 进入控制台 → 「API Keys」页面
  3. 点击「创建密钥」,复制生成的 sk- 开头密钥(仅显示一次,请立即保存)
  4. 选择适合的套餐:prospect-iq.dev.xiaoman.cn/pricing

高级参考 | Advanced Reference

完整的请求/响应 Schema、全部参数约束和分页说明,请参见 references/api-reference.md。