REST API 概览

/v1 的资源与端点、认证方式、分页、错误码和请求标识,附一个可直接替换密钥的调用示例。

最后更新:2026-10-23

REST API 位于 https://www.renewsell.com/v1,用 API 密钥认证,请求和响应都是 JSON。这一页列出全部资源和端点,以及分页、错误和幂等的规则。

认证

每个请求带一个 API 密钥,两种写法都可以:

curl "https://www.renewsell.com/v1/credits" \
  -H "Authorization: Bearer $RENEWSELL_API_KEY"
curl "https://www.renewsell.com/v1/credits" \
  -H "x-api-key: $RENEWSELL_API_KEY"

密钥在 API 密钥 页面创建,见 API 密钥。密钥是一串 64 个字母,没有固定前缀。缺少密钥返回 401,密钥没有对应权限返回 403。

资源与端点

资源端点
目标客户GET、POST /v1/targets;GET、PATCH、DELETE /v1/targets/{target}
启动与扩容POST /v1/targets/{target}/start、/cancel、/expand;GET、PATCH /v1/targets/{target}/sourcing
条目GET /v1/targets/{target}/items;GET、DELETE /v1/targets/{target}/items/{id};POST /v1/targets/{target}/items/{item}/enrichments/{enrichment}/retry
搜索POST /v1/targets/{target}/searches;GET /v1/targets/{target}/searches/{id};POST /v1/targets/{target}/searches/{id}/cancel
信息富集列POST、GET /v1/targets/{target}/enrichments;GET、PATCH、DELETE /v1/targets/{target}/enrichments/{id};POST …/{id}/cancel、…/{id}/retry
事件GET /v1/events、GET /v1/events/{id}
WebhookPOST、GET /v1/webhooks;GET、PATCH、DELETE /v1/webhooks/{id};GET /v1/webhooks/{id}/attempts
监控POST、GET /v1/monitors;GET、PATCH、DELETE /v1/monitors/{id};GET /v1/monitors/{monitor}/runs、/runs/{id}
导入POST、GET /v1/imports;GET、PATCH、DELETE /v1/imports/{id};PUT /v1/imports/{id}/upload?token=…
额度GET /v1/credits
任务GET /v1/jobs/{id};POST /v1/jobs/{id}/cancel
已连接渠道GET /v1/connect/accounts
海关数据POST /v1/customs/{operation},7 个操作见 海关数据

完整的机器可读描述发布在 /openapi.json(OpenAPI 3.1)。

几个约定:

  • {target} 可以是目标客户 id,也可以是创建时给的 externalId。
  • id(包括目标客户 id)都是不透明字符串,不要根据前缀或长度推断含义。
  • GET /v1/targets/{target}?expand=items 会在响应里带上前 100 条条目。
  • POST /v1/targets 默认创建后立即开始查找;带 "start": false 只建草稿,之后用 POST /v1/targets/{target}/start 启动。
  • 导入先 POST /v1/imports 拿到 uploadUrl,再把 CSV PUT 到那个地址;上传用签名 token,不需要 API 密钥。
  • GET /v1/credits 返回套餐、间隔、可用额度、已预留、每月额度和本期用量。

分页

列表返回统一的结构:

{
  "data": [],
  "hasMore": false,
  "nextCursor": null
}

用 limit 和 cursor 翻页。默认值和上限:

列表默认上限
目标客户25100
条目20100
事件25200
Webhook、监控、导入、投递记录25200

nextCursor 是不透明字符串,只在同一个列表、同一个账号、同样的过滤条件下有效;不要跨列表复用。

错误

失败时返回 HTTP 状态码和统一结构:

{ "error": { "code": "not_found", "message": "Resource not found" } }
状态码code含义
400invalid_request参数或请求体不合法
401unauthorized密钥缺失或无效
402insufficient_credits额度不足
403forbidden密钥没有这个操作需要的权限
404not_found资源不存在,或不属于这个账号
409conflict当前状态不允许这次操作
429rate_limited请求过快,按 Retry-After 等待
500internal_error服务端错误
502上游错误码外部数据源出错
503provider_unavailable、service_unavailable这项能力当前不可用
504timeout请求超时

每个响应都带 X-Request-Id。反馈问题时附上它,可以直接定位这一次请求。

幂等

海关数据的计费操作必须带 Idempotency-Key 请求头;用同一个 key 重试不会重复扣费。其他写操作没有幂等键,超时后不要直接重试,先查询资源状态再决定。

示例

export RENEWSELL_API_KEY="your-api-key"

curl "https://www.renewsell.com/v1/targets?limit=10" \
  -H "Authorization: Bearer $RENEWSELL_API_KEY"

响应节选:

{
  "data": [
    {
      "id": "…",
      "object": "target",
      "status": "idle",
      "title": "German outdoor furniture importers",
      "createdAt": "2026-10-20T09:15:00.000Z"
    }
  ],
  "hasMore": false,
  "nextCursor": null
}

相关

相关文档