ShortLink 开放 API 文档

短链接开放 API

通过 API 创建与管理短链接,适用于自动化流程、CMS、营销系统等场景。支持自定义后缀、专属域名、密码访问、过期时间、点击上限,以及高级版及以上套餐的多目标分流。

RESTful · JSON Bearer API Key 多目标分流 点击超量提醒

概述

本页面向接入方开发者,介绍面向用户的短链接开放接口。

Base URL以站点地址为准(如 https://your-domain.com)
数据格式请求与响应均为 application/json,编码 UTF-8
时间戳入参使用毫秒时间戳,返回的 created_at 为毫秒
限流基于账号与接口的频率限制,超限返回 429

认证

在「API 对接」页创建 API 密钥,并在请求头携带:

Authorization: Bearer {api_key}
每账号最多 3 个密钥,支持重置与删除;旧密钥重置后立即失效。

响应与错误码

成功响应统一含 success: true;失败返回 { "error": "错误描述" }。分页接口额外返回 total / page / limit。

HTTP含义说明
200成功正常返回
400参数错误URL 非法、分流目标不足 2 个或超过 5 个等
401未认证缺少或过期 API Key
403受限套餐不支持分流(need_upgrade)、链接被拒绝等
404不存在链接不存在
409冲突长链接重复、后缀被占用
429请求过快触发限流

快速开始

# 创建一条短链接
curl -X POST "{BASE}/api/links" \
  -H "Authorization: Bearer {api_key}" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/landing","agree":true}'
创建接口 agree 必须为 true(内容合规承诺),否则返回 403。

创建短链接

POST/api/links需认证
字段类型必填说明
urlstring是目标网址(完整 URL)
agreeboolean是内容合规承诺,必须为 true
suffixstring否自定义后缀,至少 6 位(字母数字及 - _)
domainstring否使用域名(系统域名或已验证的专属域名)
titlestring否标题;留空则回填自动审核抓取的页面标题
passwordstring否访问密码
maxClicksnumber否最大点击次数,0 = 不限
expiresAtnumber否过期时间(毫秒时间戳)
split_modestring否分流模式(见「分流模式」,仅高级版及以上)
targetsarray否分流目标数组(2~5 个,仅高级版及以上)
{
  "url": "https://example.com/very/long/url",
  "agree": true,
  "suffix": "my-link",
  "domain": "link.example.com",
  "title": "链接标题",
  "password": "1234",
  "maxClicks": 100,
  "expiresAt": 1700000000
}
{
  "success": true,
  "data": {
    "short_code": "4PYY5V",
    "short_url": "https://link.example.com/4PYY5V",
    "long_url": "https://example.com/very/long/url",
    "review_status": "auto_approved"
  }
}

批量创建

POST/api/links/batch需认证
字段类型说明
urlsarray元素可为字符串或 { url, suffix, title } 对象
domainstring统一域名(可选)
titlestring统一标题(可选)
POST /api/links/batch
{
  "urls": ["https://a.com", "https://b.com"],
  "domain": "link.example.com"
}
单次上限 50 条,不支持分流模式。

链接列表

GET/api/links需认证
Query说明
page页码,默认 1
limit每页条数,默认 20
search按长链接 / 短码 / 标题搜索
GET /api/links?page=1&limit=20&search=keyword

链接详情

GET/api/links/:code需认证

返回链接详情、访问统计与分流目标:

{
  "success": true,
  "data": {
    "short_code": "4PYY5V",
    "split_mode": "round_robin",
    "targets": [
      { "id": 1, "url": "https://example.com/t1", "quota": 0, "used_count": 3, "review_status": "auto_approved" }
    ],
    "daily_clicks": [], "top_referrers": [], "browser_stats": [], "device_stats": [], "os_stats": []
  }
}

编辑短链接

PUT/api/links/:code需认证

可修改 title / maxClicks / password / expiresAt / split_mode / targets;不可修改 url / short_code / domain。

{
  "title": "新标题",
  "split_mode": "by_quota",
  "targets": [
    { "url": "https://example.com/t1", "quota": 500 },
    { "url": "https://example.com/t2", "quota": 500 }
  ]
}
传入 targets 为全量替换:相同 URL 保留审核状态,新 URL 需重新审核,缺席目标被删除;split_mode=single 且 targets: [] 可清空分流。

删除短链接

DELETE/api/links/:code需认证

删除指定短码的链接及其点击记录。

分流模式

高级版及以上可将一条短链配置最多 5 个跳转目标,访问时按所选模式自动分流。

split_mode名称行为
single单链接(默认)始终跳转主链接
round_robin轮询在已通过审核的目标间依次轮换
random随机在已通过审核的目标中随机选择
by_quota按余量选择剩余配额(quota - used_count)最大者,quota=0 视为不限
POST /api/links
{
  "url": "https://example.com/t1",
  "agree": true,
  "split_mode": "round_robin",
  "targets": [
    { "url": "https://example.com/t1", "quota": 0 },
    { "url": "https://example.com/t2", "quota": 0 }
  ]
}

仅从已通过审核的目标中分流;任一目标被拒绝则整体拒绝,任一目标待审核则整体提示「审核中」。目标数量为 2~5 个。

点击超量提醒

针对设置了 maxClicks 的短链,当点击量达到上限后按天递进:

阶段动作
第 1 天发送超量提醒邮件,链接仍可访问
第 2 天再次发送提醒邮件
第 3 天链接转入「超出点击次数」状态并暂停跳转
升级套餐后可解除限制、恢复正常访问。

字段说明

链接对象(部分)

字段说明
short_code短码
short_url完整短链地址
long_url目标网址
split_mode分流模式
review_statusauto_approved / pending / approved / rejected

分流目标对象

字段说明
url目标跳转网址
quota配额上限(0 = 不限,仅按余量模式使用)
used_count已使用次数
review_status该目标的审核状态