Skip to content
语言: 中文(简体)

开发者 API

LinkHarbor API 概览

更新于 2026年11月1日 阅读约 5 分钟

基础 URL、沙盒、版本、数据格式、分页和身份验证:第一次调用 LinkHarbor REST API 之前需要了解的内容。

借助 REST API,你可以用自己的程序控制 LinkHarbor:创建页面和链接、编辑并发布草稿、生成短链接,或把统计数据拉进你自己的报表。本文面向开发者,介绍适用于所有端点的基本规则。

哪种方式适合你?

你想要…方式更多信息
通过脚本或服务器管理页面、链接和内容使用 API 密钥调用 REST API本节
在发生某件事时收到通知(例如页面被发布)WebhookWebhook
把网店中的销售归因到某次链接点击销售回调回调
在你的页面上显示你自己工具中的实时数据“Custom (API)”集成回调
在与 Claude 或 ChatGPT 的对话中工作MCP 服务器AI 助手

基础 URL 和版本

基础 URL
https://dock.at-harbor.com。所有产品端点都位于 /v1 下,例如 https://dock.at-harbor.com/v1/pages。
版本
目前只有 v1 这一个版本。版本号是路径的一部分。
协议
仅支持 HTTPS。
OpenAPI
机器可读的描述(OpenAPI 3.1)位于 https://dock.at-harbor.com/openapi.yaml。你可以把它导入 Postman、Insomnia 或代码生成器。

在沙盒中测试

开发和测试可以使用单独的沙盒。它的行为与正式 API 相同,但两者完全分开:沙盒有自己的账户和自己的数据,任何内容都不会进入你真实的工作区。

API
https://drydock.at-harbor.com,路径与上面相同,例如 https://drydock.at-harbor.com/v1/pages。
控制台
https://sandbox-deck.linkharbor.com,例如用于创建 API 密钥。
页面
已发布的页面显示在 https://<handle>.sandbox.linkharbor.com。
账户
你真实的 LinkHarbor 账户在沙盒中无法使用。请另外创建一个沙盒账户。

沙盒不发送邮件。如果你通过 API 注册(POST /v1/auth/register),验证码会直接在响应的 _dev_verification 字段中返回。重置密码和更改邮箱也是如此。这个字段只存在于沙盒中,所以不要在代码中依赖它。

  • 推送通知已关闭
  • 付款通过 Stripe 的测试模式进行,不会产生真实的资金往来
  • 速率限制约为正式值的三分之一,新账户限制为每个 IP 地址每小时 5 个
  • 每月 1 日 3:00(UTC)沙盒会被完全清空,之后所有账户和数据都会消失
  • 每个响应都带有响应头 X-Environment: sandbox

身份验证简介

  1. 以所有者或管理员身份,在控制台的“回调与 API”中创建一个带所需权限范围的 API 密钥(Creator Pro 起)
  2. 通过 POST /v1/token 用密钥 ID 和密钥换取访问令牌
  3. 每次请求都在请求头 Authorization: Bearer … 中发送令牌
  4. 15 分钟后获取新的令牌

详细说明请参阅 API 密钥和访问令牌,权限说明请参阅权限范围。

请求和响应

格式
请求和响应都是 UTF-8 编码的 JSON。文件上传还会使用 multipart/form-data。
Content-Type
每个带请求体的请求都要发送请求头 Content-Type: application/json。其他类型都会以 400 bad_request 被拒绝,包括缺少这个请求头时 curl 为 -d 自动设置的类型。
未知字段
端点不认识的字段会导致 422 validation_failed。响应中会列出这些未知字段。
损坏的 JSON
会导致 400 invalid_json。
大小
根据端点不同,请求体最多为 64 KB、1 MB 或 2 MB,文件上传最多 10 MB。超出时,API 返回 413 request_too_large。所有限额都列在速率限制中。
列表
以带 items 字段的对象返回,例如 {"items":[…]}。
创建
返回 HTTP 201 和新 ID,例如 {"id":123}。
没有返回值的操作
返回 {"ok":true}。
错误
始终采用固定格式,并带有机器可读的代码。参见 API 错误格式和错误代码。

分页

没有统一的分页方式。大多数列表都很小,会完整返回;只有少数端点带有参数:

端点行为参数
GET /v1/pages, /v1/pages/{id}/links, /v1/pages/{id}/blocks, /v1/forms完整列表–
GET /v1/forms/{id}/submissions最新的在前,用游标分页:响应中的 next_cursor 是下一页的游标,最后一页为 nulllimit 1–500(默认 100)、cursor
GET /v1/short-links分页,响应中包含 totallimit 1–100(默认 50)、offset、sort、q
GET /v1/push/history分页limit 最多 100(默认 50)、offset
统计端点按时段period、from、to、granularity

短链接的 sort 可取 created_desc、created_asc、redirects_desc 和 redirects_asc;q 会搜索 Slug、标题和目标网址(最多 100 个字符,不区分大小写)。统计端点的 period 可取 24h、7d、30d、90d、this_month、last_month、last_30d 和 custom;也可以改为传入 from 和 to。granularity 为 hour 或 day。

请求 ID 和语言

  • 每个响应都带有响应头 X-Request-Id,联系支持团队时请附上它
  • 如果你自己发送 X-Request-Id 请求头,API 会使用它
  • message 中的错误文本使用工作区所有者的账户语言,否则遵循 Accept-Language;error 中的代码始终不变

从浏览器调用?

从技术上讲,API 允许从浏览器调用(CORS)。但密钥绝不能放进在访客一侧运行的代码中,无论是网站还是应用。请始终从你自己的服务器调用 API。

套餐

套餐API 密钥Webhook回调密钥
Creator Free–––
Creator Pro最多 5 个最多 5 个最多 5 个
Creator Agency最多 20 个最多 25 个最多 5 个
Enterprise最多 50 个(可调整)最多 100 个(可调整)最多 5 个

各套餐都没有 API 调用次数配额,只受每分钟的速率限制约束。你套餐的内容限额(例如页面数、链接数或每个页面的模块数)在 API 中和在控制台中同样适用。参见套餐对比。

第一次调用

获取令牌并列出页面
# 用密钥换取令牌
curl -X POST https://dock.at-harbor.com/v1/token \
  -H "Content-Type: application/json" \
  -d '{"key_id":"6F668EA6598B0692","key_secret":"lt_…"}'
# → {"token":"eyJ…","expires_in":900}

export LH_TOKEN="eyJ…"

# 列出页面(权限范围 read:pages)
curl https://dock.at-harbor.com/v1/pages \
  -H "Authorization: Bearer $LH_TOKEN"

添加链接、修改设计并发布的完整示例,请参阅分步指南:通过 API 更新页面。

没找到答案?

告诉我们你需要什么,我们的客服团队会亲自帮你。

联系客服