直接回答
RedirHub API は https://api.redirhub.com/v1 にあり、Bearer トークンを使用します。POST /links と handler redirect でリダイレクトを作成します。PUT /bulk または DELETE /bulk とフィルターを使って多数のリンクを一括で変更または削除でき、変更前には POST /bulk/summary でプレビューします。API は Core、Pro、Enterprise に含まれています。
1. トークンを取得してテストする#
API トークンの作成と管理に記載されているとおりにトークンを作成します。各トークンは 1 つのワークスペースに属します。サーバーに保管し、ブラウザコードには絶対に含めないでください。
bashexport REDIRHUB_TOKEN="your-token"
curl "https://api.redirhub.com/v1/test" \
-H "Authorization: Bearer $REDIRHUB_TOKEN"2. 1 つのリダイレクトを作成する#
リダイレクトでは、url が元の 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"]
}'レスポンスには、新しいリンクが id とともに data 配列内で返されます。website-migration のマッピングには handler migration を、ブランドリンクや QR コードには url の代わりに host と alias を使って short-url または qr を使用します。
3. ファイルから数百件を作成する#
ダッシュボードのインポートと同じ列(source_url、destination、type)を持つCSVをループ処理し、各行ごとに1件のリクエストを送信します。レート制限内に収め、429では再試行してください。1回限りのインポートなら、ダッシュボードの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. 1つのリンクを変更する#
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は、作成後に変更できません。元URLを移すには、新しいリンクを作成して古いリンクを削除してください。
6. 複数の宛先を一度に変更する#
まずプレビューします。POST /bulk/summary は、フィルターに一致するリンク数、過去4週間に訪問があったリンク数、そして最初の5件の変更内容を返します。
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"}}'少なくとも 1 つのフィルターに値が必要なので、誤ってワークスペース全体に一致してしまうことはありません。レスポンスでは affected(削除されたリンク)と pending(バックグラウンドでまだ削除中のリンク)が返されます。
代わりに AI アシスタントから操作する#
RedirHub MCP サーバー を使えば、Claude、ChatGPT、Cursor からでも同じ作業を自然言語で実行できます。1 回の呼び出しで最大約 5,000 行のインポートも可能です。MCP 経由の一括変更は常に最初にドライランが返され、確認後にのみ適用されます。
完全なリファレンス: RedirHub API リファレンス。
よくある質問
Core、Pro、Enterpriseです。各APIトークンは1つのワークスペースにスコープされます。
POST https://api.redirhub.com/v1/links に、handler redirect、url(ソース。例: old-site.com/pricing)、destination(完全なターゲットURL)、必要に応じて type(例: 301)を送信します。
はい。POST /bulk/summary に同じフィルターと変更を指定すると、どれだけのリンクが一致するか、どれだけに最近の訪問があったか、そして最初の5件の変更前後の宛先が表示されます。
いいえ。POST /bulk/summary でプレビューし、DELETE /bulk を呼び出す前に GET /links からコピーを保持してください。
