直接回答

RedirHub API 位于 https://api.redirhub.com/v1,并使用 Bearer token。使用 POST /links 和 handler redirect 创建重定向。先通过 POST /bulk/summary 预览更改,然后使用 PUT /bulk 或 DELETE /bulk 结合筛选条件批量更改或删除多个链接。该 API 包含在 Core、Pro 和 Enterprise 套餐中。

1. 获取 token 并进行测试#

按照 创建和管理 API tokens 中的说明创建 token。每个 token 只属于一个工作区。请将其保存在服务器上,切勿放在浏览器代码中。

bashexport REDIRHUB_TOKEN="your-token"

curl "https://api.redirhub.com/v1/test" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN"

2. 创建一个重定向#

对于重定向,url 是源地址(一个域名,或域名加路径,不含 https://),destination 是完整的目标 URL。仅域名会将该域名下的所有路径都重定向。

bashcurl -X POST "https://api.redirhub.com/v1/links" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "handler": "redirect",
    "url": "old-site.com/pricing",
    "destination": "https://new-site.com/pricing",
    "type": "301",
    "forward_query": true,
    "tags": ["migration"]
  }'

响应会在 data 数组中返回新的链接及其 id。网站迁移映射请使用 handler migration;品牌链接和二维码请使用 short-url 或 qr(此时使用 host 和 alias 代替 url)。

3. 从文件创建数百个#

循环遍历一个与仪表板导入具有相同列的 CSV(source_url、destination、type),并为每一行发送一个请求。请保持在速率限制内,并在遇到 429 时重试。对于一次性导入,仪表板中的CSV 导入更快,并且会先显示审核。

pythonimport csv, os, time, requests

API = "https://api.redirhub.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REDIRHUB_TOKEN']}"}

with open("redirects.csv", newline="") as f:
    for row in csv.DictReader(f):
        body = {
            "handler": "redirect",
            "url": row["source_url"],
            "destination": row["destination"],
            "type": row.get("type") or "301",
        }
        while True:
            r = requests.post(f"{API}/links", json=body, headers=HEADERS)
            if r.status_code != 429:
                break
            time.sleep(int(r.headers.get("Retry-After", 5)))
        print(row["source_url"], r.status_code, r.json().get("errors", ""))

4. 查找链接#

bashcurl -G "https://api.redirhub.com/v1/links" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  --data-urlencode "filter[host]=old-site.com" \
  --data-urlencode "filter[handler]=redirect"

结果采用游标分页:继续跟随 meta.cursor.next,直到为空。其他筛选条件包括 tags、destination、search、created_after 和 created_before;参见筛选与排序。

5. 更改单个链接#

bashcurl -X PUT "https://api.redirhub.com/v1/links/LINK_ID" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"destination": "https://new-site.com/plans"}'

链接的源 URL 在创建后不能更改。要移动源地址,请创建一个新链接并删除旧链接。

6. 批量更改多个目标地址#

先预览。POST /bulk/summary 会返回筛选条件匹配的链接数量、过去四周内有访问量的链接数量,以及前五项更改:

bashcurl -X POST "https://api.redirhub.com/v1/bulk/summary" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {"tags": "migration"},
    "destination_find": "new-site.com",
    "destination_replace": "new-brand.com"
  }'

然后将相同的主体发送到 PUT /bulk 以应用更改。响应会告诉你有多少链接受到了影响。若要改为向每个目标添加 UTM 参数,请发送 destination_params,例如 {"utm_campaign": "fall-2026"}。

bashcurl -X PUT "https://api.redirhub.com/v1/bulk" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {"tags": "migration"},
    "destination_find": "new-site.com",
    "destination_replace": "new-brand.com"
  }'

7. 批量删除#

No undo

DELETE /bulk 会移除筛选器匹配到的每个链接,且无法撤销。请先使用相同的筛选条件运行 POST /bulk/summary,如果你想保留一份副本,请再用 GET /links 列出这些链接。

bashcurl -X DELETE "https://api.redirhub.com/v1/bulk" \
  -H "Authorization: Bearer $REDIRHUB_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"filter": {"tags": "summer-sale"}}'

至少必须有一个筛选条件有值,因此请求不会因意外而匹配整个工作区。响应会返回 affected(已删除的链接)和 pending(仍在后台删除中的链接)。

改为通过 AI 助手操作#

RedirHub MCP 服务器 让 Claude、ChatGPT 或 Cursor 也能用自然语言完成相同的工作,包括一次调用导入最多约 5,000 行。通过 MCP 进行的批量更改总是先返回试运行结果,只有在你确认后才会应用。

完整参考:RedirHub API 参考。

常见问题

Core、Pro 和 Enterprise。每个 API 令牌都仅限于一个工作区。

发送 POST https://api.redirhub.com/v1/links,使用 handler redirect、url(源地址,例如 old-site.com/pricing)、destination(完整目标 URL),并可选指定 type,例如 301。

可以。使用相同的筛选条件和更改发送 POST /bulk/summary,即可查看有多少链接匹配、其中有多少近期被访问过,以及前五个更改前后的目标地址。

不可以。可先使用 POST /bulk/summary 进行预览,并在调用 DELETE /bulk 之前从 GET /links 保留一份副本。

相关帮助

查看全部文章