URL 短縮サービスを手動で操作するだけでなく、API を通じてプログラムから自動的に短縮 URL を生成できます。大量の URL を一括処理したり、自社システムに短縮機能を組み込んだりする場合に、API 連携は不可欠な手段です。
URL 短縮 API の基本的な仕組みは、HTTP リクエストで元の URL を送信し、レスポンスとして短縮 URL を受け取るというシンプルな構造です。一般的には REST API として提供され、POST メソッドで JSON 形式のリクエストボディを送信します。レスポンスには短縮 URL、ショートコード、作成日時などの情報が含まれます。
curl コマンドによる API リクエストの例を示します。「 curl -X POST https://api.example.com/shorten -H 'Content-Type: application/json' -H 'Authorization: Bearer YOUR_API_KEY' -d '{"url": "https://example.com/very/long/page?utm_source=campaign"}' 」を実行すると、レスポンスとして「{"shortUrl": "https://short.example/abc123", "shortCode": "abc123", "originalUrl": "https://example.com/very/long/page?utm_source=campaign", "createdAt": "2025-01-15T10:30:00Z"}」のような JSON が返されます。
JavaScript (fetch) による実装例も紹介します。「 async function shortenUrl(longUrl) { const response = await fetch('https://api.example.com/shorten', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + process.env.API_KEY }, body: JSON.stringify({ url: longUrl }) }); if (!response.ok) { throw new Error('API request failed: ' + response.status); } return await response.json(); }」のように、fetch API を使えば数行で短縮 URL を生成できます。
API を利用する際の認証方式は、サービスによって異なります。 API キーをリクエストヘッダーに含める方式が最も一般的です。 OAuth 2.0 を採用するサービスもあり、より細かいアクセス制御が可能です。認証情報はソースコードにハードコードせず、環境変数やシークレット管理サービスで安全に管理しましょう。
エラーハンドリングは API 連携の信頼性を左右する重要な要素です。代表的なエラーケースと対処法を具体的に示します。レート制限 (HTTP 429 Too Many Requests) に達した場合は、レスポンスヘッダーの Retry-After 値を参照し、指定された秒数だけ待機してからリトライします。指数バックオフ (Exponential Backoff) を実装すれば、初回 1 秒、2 回目 2 秒、3 回目 4 秒と待機時間を倍増させることで、サーバーへの負荷を抑えつつ確実にリトライできます。タイムアウト (接続タイムアウト / 読み取りタイムアウト) が発生した場合は、接続タイムアウトを 5 秒、読み取りタイムアウトを 10 秒に設定し、超過した場合はリトライするのが一般的です。無効な URL 形式 (HTTP 400 Bad Request) の場合は、リクエスト前に URL のバリデーションを行い、不正な入力を事前に排除します。サーバーエラー (HTTP 500/503) の場合は、一時的な障害の可能性が高いため、最大 3 回までリトライし、それでも失敗する場合はエラーログを記録してアラートを発報します。
一括処理 (バッチ処理) は、API 活用の代表的なユースケースです。 CSV ファイルやデータベースから URL のリストを読み込み、ループ処理で順次短縮 URL を生成します。並列処理を導入すれば処理速度を向上できますが、レート制限を超えないよう同時リクエスト数を制御する必要があります。
Webhook やコールバック URL を設定できる API では、短縮 URL がクリックされた際にリアルタイムで通知を受け取れます。この仕組みを活用すれば、自社のダッシュボードやアラートシステムと連携し、キャンペーンのパフォーマンスをリアルタイムで監視できます。
API 連携のデメリットも理解しておきましょう。外部 API への依存が生じるため、サービス障害時に自社システムも影響を受けます。レート制限により大量処理が制約される場合もあります。また、API の仕様変更やサービス終了のリスクも考慮し、抽象化レイヤーを設けて特定サービスへの依存を最小限に抑える設計が推奨されます。