A6 FOR DEVELOPERS & AGENTS
少一点重复,多一点自动化。
用一个 API,把短链接接入你的网站、商品推广系统或 AI Agent。仅有效付费会员可调用。
三步开始
- 登录 A6,开通有效的付费会员。
- 在密钥管理创建 API Key,保存至服务端环境变量
A6_API_KEY。 - 向
https://a6.cm/api/v1发起请求,使用Authorization: Bearer YOUR_API_KEY鉴权。
创建短链接
POST /links · 请求格式 application/json
curl --fail-with-body --max-time 45 https://a6.cm/api/v1/links \
-H "Authorization: Bearer $A6_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: campaign-20261103-001' \
--data '{
"url": "https://example.com/product",
"custom_code": "product2026",
"remark": "商品推广 / 公众号"
}'| 字段 | 必填 | 说明 |
|---|---|---|
| url | 是 | HTTP / HTTPS 目标网址,最长 4096 字节。 |
| custom_code | 否 | 1–20 位英文字母或数字;不填则随机生成。系统保留名称不可使用。 |
| expire_days | 否 | 1–36500 个有效天数;不填或 0 表示不设到期日。 |
| max_clicks | 否 | 1–2147483647 次访问上限;不填或 0 表示不限。 |
| remark | 否 | 最多 1000 字,建议注明用途或渠道。 |
成功响应 · HTTP 201
{
"success": true,
"data": {
"id": 123,
"short_code": "product2026",
"short_url": "https://a6.cm/product2026",
"original_url": "https://example.com/product",
"remark": "商品推广 / 公众号",
"expire_at": null,
"max_clicks": null,
"click_count": 0,
"created_at": "2026-11-03 12:00:00"
}
}上面为返回格式示例。请使用真实响应中的 data.short_url。
Python 示例
import os
import requests
response = requests.post(
"https://a6.cm/api/v1/links",
headers={
"Authorization": f"Bearer {os.environ['A6_API_KEY']}",
"Idempotency-Key": "campaign-20261103-001",
"X-A6-Client": "agent",
"User-Agent": "A6PythonClient/1.0",
},
json={"url": "https://example.com/product"},
timeout=45,
)
response.raise_for_status()
print(response.json()["data"]["short_url"])所有生成入口均接受 AI 风险审查
网页普通生成、AI 生成、API 和 Agent 创建短链接前,均须通过 DeepSeek Flash 风险审查。金融类与疑似钓鱼链接拒绝生成,付费会员同样适用。
金融范围包括银行、支付、借贷、理财、股票、外汇、保险、基金、加密货币等。网页无法读取、模型不可用或结论不明确时暂停生成;不会静默改用其他模型或直接生成普通短链接。
| HTTP / error.code | 含义与处理 |
|---|---|
| 403 · LINK_BLOCKED | 金融类或疑似钓鱼等风险内容被拒绝。停止此目标的生成,不要改走其他入口绕过。 |
| 422 · LINK_REVIEW_REQUIRED | 网页无法读取或无法获得明确审查结论。当前未生成链接;核对公开页面内容后再提交。 |
| 503 · SAFETY_UNAVAILABLE | 风险审查服务暂不可用,当前未生成链接。稍后使用原 Idempotency-Key 退避重试。 |
修改目标网址、独立 AI 分析及现有短链接跳转也执行同一审查。有效审查结果最多复用 5 分钟;没有有效放行结果、结论不明或审查不可用时阻断,受阻跳转不计入成功访问。动态脚本、按地区或 User-Agent 显示不同内容、以及缓存有效期内的内容变化可能影响识别,无法承诺绝对防钓鱼。
审查基于当次可读取内容,不能保证目标页面今后始终安全,也不替代用户对网站身份与分享权限的核对。同一原网址可再次生成不同短链接;自定义短码必须在新旧链接记录中保持唯一。
查询自己的链接
| 方法与路径 | 作用 |
|---|---|
| GET /links | 按 ID 倒序分页查询自己的链接。 |
| GET /links/{short_code} | 查询某条自有链接及累计点击次数。 |
| GET /links/{short_code}/stats | 查询自有链接的访问汇总与分布趋势。 |
| GET /links/{short_code}/visits | 分页查询自有链接的访问时间与设备、地区明细。 |
| GET /account | 查询付费有效期和当前调用限制。 |
curl 'https://a6.cm/api/v1/links?limit=20' \
-H "Authorization: Bearer $A6_API_KEY"
curl 'https://a6.cm/api/v1/links/product2026' \
-H "Authorization: Bearer $A6_API_KEY"列表 limit 为 1–50,默认 20。用返回的 next_before_id 作为下一次请求的 before_id;为 null 时没有下一页。仅能查询当前账户自己的链接。
查询链接的访问效果
GET /links/{short_code}/stats 返回汇总、国家/地区、设备、浏览器、系统、来源网站和访问趋势;GET /links/{short_code}/visits 返回逐次访问明细。两者均要求有效付费会员,且只能查询当前账户自己的链接。
curl --fail-with-body \
'https://a6.cm/api/v1/links/product2026/stats?from=2026-11-01&to=2026-11-03&interval=day' \
-H "Authorization: Bearer $A6_API_KEY"
curl --fail-with-body \
'https://a6.cm/api/v1/links/product2026/visits?from=2026-11-01&to=2026-11-03&limit=50' \
-H "Authorization: Bearer $A6_API_KEY"| 参数 | 说明 |
|---|---|
| from / to | YYYY-MM-DD,包含起止两天。默认最近 7 天(含今天),最多 90 天,结束日期不能晚于今天。 |
| interval | day(默认)按天、hour 按小时。按小时最多查询 7 天。明细接口接受并回显此参数,明细仍按访问 ID 倒序。 |
| limit | 仅明细:1–100,默认 50。 |
| before_id | 仅明细:用上一页的 data.next_before_id 翻页;保持短码和日期区间不变。为 null 时没有下一页。 |
日期、趋势分组与访问时间统一使用北京时间 Asia/Shanghai;访问时间带 +08:00。没有访问的趋势时段返回 0,便于直接绘图。
汇总响应示例(节选,非真实业务数据)
{
"success": true,
"data": {
"short_code": "product2026",
"range": {"from":"2026-11-03","to":"2026-11-03","timezone":"Asia/Shanghai","interval":"day"},
"summary": {
"visits": 2,
"unique_visitors_estimate": 1,
"bot_visits": 0,
"non_bot_visits": 2,
"geolocated_visits": 2,
"identified_visits": 2,
"all_time_click_count": 12,
"first_visit_at": "2026-11-03T12:00:00+08:00",
"last_visit_at": "2026-11-03T12:05:00+08:00"
},
"countries": [{"value":"CN","name":"中国大陆","visits":2}],
"devices": [{"value":"mobile","visits":2}],
"timeline": [{"period":"2026-11-03","visits":2,"unique_visitors_estimate":1}],
"detailed_tracking_since": "2026-11-03T11:00:00+08:00"
}
}| 字段 | 含义 |
|---|---|
| summary.visits | 区间内成功记录的详细访问次数,包含识别出的机器人。 |
| summary.unique_visitors_estimate | 按每条链接的 IP 哈希去重估算独立访客,包含机器人,不能当作真实人数;每日估算值相加不等于整个区间去重值。 |
| summary.bot_visits / non_bot_visits | User-Agent 规则识别的机器人与未被识别为机器人的访问次数,可能漏判。 |
| summary.geolocated_visits / identified_visits | 具备国家/地区信息的访问次数 / 具备可用访客哈希的访问次数,用于判断数据覆盖情况。 |
| summary.all_time_click_count | 链接历史累计点击,包含详细采集上线前的记录,不受 from/to 限制。 |
| summary.first_visit_at / last_visit_at | 当前区间首末访问时间,无记录时为 null。 |
| countries / locations | 国家/地区分布,以及地区、城市分布。未知国家为 ZZ,未提供的地区、城市为空字符串;由可信 CDN 的 IP 定位提供,代理出口可能影响位置。 |
| devices / browsers / operating_systems | 设备类型、浏览器、操作系统分布。设备值为 mobile、tablet、desktop、bot 或 unknown。 |
| referrers | 来源网站主机名分布,只含域名、不含路径与参数;direct_or_unknown 表示直接访问或来源不可识别。 |
| timeline | 按天或小时返回访问次数、估算独立访客;空时段补 0。 |
| detailed_tracking_since / notes | 详细采集启用时间与数据口径说明。旧数据缺少的国家、设备等维度不会补造。 |
维度分组最多返回前 100 项;汇总仍覆盖区间内全部已记录访问。明细中的 visited_at 为访问时间,其他字段包括 country_code、country_name、region、city、device、browser、os、is_bot、referrer_host。API 不返回访客 IP、IP 哈希或 User-Agent 原文。
Python:查询汇总并遍历明细
import os
import requests
base = "https://a6.cm/api/v1/links/product2026"
headers = {"Authorization": f"Bearer {os.environ['A6_API_KEY']}"}
params = {"from": "2026-11-01", "to": "2026-11-03"}
response = requests.get(f"{base}/stats", headers=headers,
params={**params, "interval": "day"}, timeout=45)
response.raise_for_status()
print(response.json()["data"]["summary"])
cursor = None
while True:
page_params = {**params, "limit": 50}
if cursor is not None:
page_params["before_id"] = cursor
response = requests.get(f"{base}/visits", headers=headers,
params=page_params, timeout=45)
response.raise_for_status()
data = response.json()["data"]
for visit in data["visits"]:
print(visit["visited_at"], visit["country_name"], visit["device"])
cursor = data["next_before_id"]
if cursor is None:
break让 Agent 直接调用
把 Agent Skill 提供给支持技能的 Agent,或将 OpenAPI 文档导入支持自定义 HTTP 工具的 Agent 平台。通过平台的密钥配置保存 API Key,避免把密钥写进提示词或对话。
- 工具入口:
POST https://a6.cm/api/v1/links。 - 鉴权:
Authorization: Bearer $A6_API_KEY。 - 请求头可加
X-A6-Client: agent,便于识别 Agent 创建记录。 - Agent 将用户指定的目标网址放入
url,返回真实data.short_url。
任务示例:
为 https://example.com/product 创建短链接,
备注“新品推广 / 微信”,有效期 30 天。
请使用 A6 API,返回接口实际生成的 short_url。
效果分析示例:
查询 product2026 最近 7 天的访问效果,
比较国家/地区、设备与每日趋势,并列出最近 20 条访问时间。
请区分估算独立访客与真实人数,说明未知地区和数据覆盖起点。Agent 与普通 API 使用相同的付费权限和额度。没有开放免鉴权生成接口。当前接入方式为 HTTP API / OpenAPI / Skill,无需将浏览器 Cookie 交给 Agent。
调用与会员限制
- 每个用户最多创建 5 个有效密钥。
- 每用户每分钟最多创建 60 条短链接,与网页生成共享计数。
- 每用户每 UTC 日最多通过 API / Agent 创建 1000 条。
- 每用户每分钟最多 120 次已认证 API 请求。
- 风险审查:免费账户每分钟 5 次、每 UTC 日 20 次;付费账户每分钟 60 次、每 UTC 日 1000 次。
- 同一请求中的 AI 分析与创建共享审查计数;跨请求即使命中审查缓存也计数。风险审查缓存最长 300 秒。
- 可选内容分析另按额度计算:免费每天 3 次、付费每天 30 次,均每分钟最多 3 次。
- 同一用户的多个密钥共享限额;免费、到期或被撤销的密钥不能绕过限制。
可通过 GET /account 查询当前付费限制;其中 risk_checks_per_minute 为 60、risk_checks_per_day 为 1000、risk_cache_seconds 为 300。二维码和网页访问的点击数据不等于商品成交、报名或下载完成数据。
错误、去重与重试
| 状态码 | 含义 | 处理方式 |
|---|---|---|
| 400 | 参数无效 | 检查网址、短码、字段长度与数值范围。 |
| 401 | 密钥缺失、无效或已撤销 | 检查 Bearer Key 或重新创建密钥。 |
| 403 | PAID_REQUIRED:会员无效;LINK_BLOCKED:风险审查拒绝 | 按 error.code 区分;风险拒绝不可通过其他入口绕过。 |
| 404 | 链接不存在或不属于当前用户 | 核对短码和密钥所属账户。 |
| 409 | 短码占用、请求去重冲突 | 更换短码;新任务使用新的 Idempotency-Key。 |
| 422 | LINK_REVIEW_REQUIRED:无法读取或结论不明 | 当前未生成,核对公开目标页面后再提交。 |
| 429 | 超过调用限制 | 按 Retry-After 等待后重试。 |
| 503 | SAFETY_UNAVAILABLE:风险审查不可用;或其他服务错误 | 当前未生成;使用原 Idempotency-Key 退避重试,不跳过审查。 |
Idempotency-Key 可选,但推荐自动化任务使用。长度 8–80,允许字母、数字和 ._:-。同一用户使用相同标识与相同参数重试,返回 HTTP 200 及同一条链接;参数不同则返回 409。去重记录保留 7 天。
创建请求建议设置至少 45 秒超时。收到 503 时使用原 Idempotency-Key 退避重试,例如间隔 5、10、20 秒并加入随机抖动;不要每秒循环重试。429 优先遵守 Retry-After。
密钥与数据安全
客户端建议发送自己的应用标识,例如 User-Agent: MyApp/1.0。如收到含 error code: 1010 的纯文本 403,这是边缘服务拒绝请求,并非 A6 的 JSON 会员鉴权响应;请检查客户端标识,或参考本文已验证的 Python requests 示例配置。
- 密钥明文仅创建时展示,服务器保存哈希;泄露后请立即撤销。
- 将 Key 保存在服务端环境变量或平台的凭据管理中,不放入网页前端、URL、Git 或截图。
- 使用 HTTPS 主域名
https://a6.cm,每次请求都检查会员状态。 - 只缩短可信且有权分享的网址,不要把密码、验证码或个人敏感信息写进 URL 参数。
