TokenToSea开发者文档
控制台

工具 API 概览

用一把密钥调用工具市场中已接通的工具(GitHub、npm、PyPI、Crossref、World Bank 等),按次从账户余额结算,失败不收费。

本页内容

工具 API 让你的应用或 Agent 调用工具市场中已接通的工具操作。每个操作有固定的价格与输入结构,调用前预留费用,成功后扣费,失败释放预留、不收费。费用与模型调用共用同一个账户余额。

前提:一把工具密钥或全能密钥(我的 Key),调用付费操作时账户可用余额不低于操作价格。示例中的环境变量 TOKENTOSEA_TOOL_KEY 可以是任意一种。

基础地址#

https://tokentosea.com/api/v1/tool-api
方法路径用途
GET/catalog搜索工具目录
GET/actions/{toolId}列出工具的可调用操作、价格与输入结构
GET/wallet查询账户余额
POST/invoke调用一个操作
GET/runs调用记录列表
GET/runs/{id}单次调用的完整结果

工具 API 与模型 API 是两个独立的入口:模型请求发往 api.tokentosea.com,工具请求发往 tokentosea.com/api。

鉴权#

HTTP
Authorization: Bearer tts_tool_xxxxxxxx…
密钥能否调用工具 API
工具密钥 tts_tool_ + 64 位十六进制可以,只能用于工具 API
全能密钥 sk-relay_…(模型 + 工具)可以;同一把密钥也能调用模型。工具费用计入这把密钥的费用限额
模型密钥 sk-relay_…(不含工具权限)不可以,返回 403 tool_access_not_allowed
OAuth 访问令牌不可以,使用委托接口

只接受 Authorization: Bearer。密钥在 控制台 → 我的 Key 创建:选择「工具密钥」或「全能密钥」。明文只显示一次;每个账号最多保留 20 个有效的工具密钥。每次调用都会校验密钥未撤销、未删除,账号状态正常并已绑定手机号;撤销或删除立即生效。

请从服务端调用:主站 API 只允许 TokenToSea 自己的页面跨域访问。

一次完整的调用#

  1. 找到工具

    GET /catalog?connected=1&q=github 只返回已接通的工具,取得工具 id(例如 public_github)。

  2. 读取操作

    GET /actions/public_github 返回每个操作的 id、priceUsd、priceVersion 和 inputSchema。

  3. 调用

    POST /invoke,带上操作 ID、输入、你生成的 requestKey、刚读到的 priceVersion,以及你愿意支付的上限 maxCostUsd(不低于 priceUsd)。

  4. 检查结果

    响应中的 status 为 succeeded 时读取 output;为 failed 时查看 errorCode,未扣费。

export TOKENTOSEA_TOOL_KEY="tts_tool_…"
API=https://tokentosea.com/api/v1/tool-api

# 读取 GitHub 工具的操作与价格
curl "$API/actions/public_github" -H "Authorization: Bearer $TOKENTOSEA_TOOL_KEY"

# 调用 github.search
curl "$API/invoke" \
  -H "Authorization: Bearer $TOKENTOSEA_TOOL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "actionId": "github.search",
    "input": {"query": "typescript", "limit": 3},
    "requestKey": "'"$(uuidgen)"'",
    "priceVersion": "public-20261010-v1",
    "maxCostUsd": "0.001000"
  }'

计费#

  • 每个操作的价格固定,以 GET /actions/{toolId} 返回的 priceUsd(美元,6 位小数)与 priceVersion 为准。当前公开数据查询类操作为 USD 0.001 / 次,TokenToSea 数据工具(JSON、Base64、SHA-256、UUID 等)免费。
  • 调用时平台校验 priceVersion 与当前版本一致、priceUsd 不超过 maxCostUsd,否则返回 409 tool_price_changed,不会扣费。
  • 成功时扣除 priceUsd;失败(包括外部数据源出错或超时)不扣费。
  • 余额与模型调用共用,在 控制台 → 充值 充值,扣费记录在账单中。

幂等#

工具 API 用请求体中的 requestKey(16–128 个字符)实现幂等,不使用 Idempotency-Key 请求头。requestKey 在你的账号内唯一:

  • 同一个 requestKey 与完全相同的请求再次提交,返回原来的调用记录,不会再次调用外部数据源,也不会再次扣费;
  • 同一个 requestKey 搭配不同的输入、价格版本或上限,返回 409 tool_request_key_reused。

每个新的业务调用生成新的 requestKey;网络重试时沿用原来的 requestKey 和原来的全部参数。

限制#

限制值超出时
每个账号同时执行3 个409 tool_rate_limited
每个账号每分钟30 次409 tool_rate_limited
每个外部数据源(全站)每分钟 10 次;GitHub 另有每小时 40 次409 tool_rate_limited
输入大小16 KiB400 tool_input_too_large
外部响应大小1.5 MB调用失败(tool_result_too_large),不扣费
外部请求超时12 秒调用失败,不扣费

被限流时请稍后再试;限流不会产生调用记录。超过 2 分钟仍未完成的调用会被标记为失败(tool_interrupted),不会自动重试。

错误格式#

工具 API 的错误体与模型 API 不同:

JSON
{ "statusCode": 409, "message": "tool_insufficient_balance", "error": "Conflict" }

message 是稳定的错误码。完整列表见工具 API 参考。

下一步#

    输入关键词搜索全部文档与模型。