rdurl API

コードでショートリンクを作成・管理

API 一般情報

  • すべてのリクエストにAPIトークンが必要です。認証セクションを参照してください。
  • ベースエンドポイントは: https://rdurl.link/api
  • HTTPSのみ対応しています。
  • すべてのエンドポイントはJSONオブジェクトを返します。
  • リクエストはJSONで送信されます(Content-Type: application/json)。
  • すべての時間およびタイムスタンプ関連フィールドはミリ秒単位です。
  • すべての文字コードはUTF-8です。

認証

APIはトークンによって、リクエストがどのアカウントのものであるかを判別します。トークンはアカウントのパスワードと同等です。トークンを所持すれば、そのアカウントのリンクを作成・削除できます。

ステップ1. トークンを発行する

ダッシュボードにログインし、「API連携トークン」メニューからトークンを発行してください。発行するたびに新しいトークンが生成され、発行後は1回しか確認できません。

ステップ2. リクエストにトークンを追加する

以下の2つの方法のいずれかを選んでください。

1. Authorization: Bearer (推奨)

ほとんどの公開APIで使われる標準的な認証方法です。

curl https://rdurl.link/api/link/create   -H "Authorization: Bearer rd_YOUR_TOKEN"   -H "Content-Type: application/json"   -d '{ "url": "https://example.com/very/long/url" }'

2. x-api-key ヘッダー

Authorizationヘッダーを扱いにくいツールには便利な方法です。

curl https://rdurl.link/api/link/create   -H "x-api-key: rd_YOUR_TOKEN"   -H "Content-Type: application/json"   -d '{ "url": "https://example.com/very/long/url" }'

ステップ3. トークンを確認する

以下のコマンドを実行してください。リンク一覧が返されれば、トークンは正常に動作しています。

curl https://rdurl.link/api/link/list \
  -H "Authorization: Bearer rd_YOUR_TOKEN"

トークン管理

トークンは rd_ の後に16進数32文字で構成されます。発行時は1回しか確認できないため、安全に保管してください。漏洩が疑われる場合は、ダッシュボードですぐに失効させてください。失効したトークンは直ちに無効になります。

エンドポイント

POST /api/link/create

ショートリンクを作成します。URLを送信するとスラッグとショートリンクが返されます。

パラメータ

  • url短縮する対象 URL(必須)
  • titleリンクタイトル(任意、100文字以内)
  • folderリンクフォルダ(任意、100文字以内 — フォルダ別に一覧をフィルタ可能)
  • domainカスタムドメイン(任意、例: example.com)

リクエスト

{ "url": "https://example.com/very/long/url" }

レスポンス

{
  "success": true,
  "message": {
    "slug": "abc123",
    "short": "https://rdurl.link/abc123",
    "domain_no": 0,
    "domain": ""
  }
}
GET /api/link/list

リンクをページ単位で一覧表示します。1ページ20件です。検索とドメインフィルターに対応します。

パラメータ

  • pageページ番号(デフォルト 1)
  • domainカスタムドメイン(任意、例: example.com)
  • search検索キーワード(スラッグ/URL の部分一致)
  • folderリンクフォルダ(任意、100文字以内 — フォルダ別に一覧をフィルタ可能)

リクエスト

GET /api/link/list?page=1&domain=example.com&search=keyword

レスポンス

{
  "success": true,
  "message": {
    "total": 42,
    "page": 1,
    "list": [
      {
        "slug": "abc123",
        "url": "https://example.com/very/long/url",
        "short": "https://rdurl.link/abc123",
        "clicks": 128,
        "tm": 1789379625000
      }
    ]
  }
}
GET /api/link/info

1つのリンクの詳細とクリック数を取得します。

パラメータ

  • slugスラッグ(必須)
  • domainカスタムドメイン(任意、例: example.com)

リクエスト

GET /api/link/info?slug=abc123

レスポンス

{
  "success": true,
  "message": {
    "slug": "abc123",
    "url": "https://example.com/very/long/url",
    "short": "https://rdurl.link/abc123",
    "clicks": 128,
    "tm": 1789379625000
  }
}
GET /api/link/stats

リンク別のクリック統計 — 累計、今日、上位10カ国を取得します。

パラメータ

  • slugスラッグ(必須)
  • domainカスタムドメイン(任意、例: example.com)

リクエスト

GET /api/link/stats?slug=abc123

レスポンス

{
  "success": true,
  "message": {
    "clicks": 128,
    "clicksToday": 5,
    "countries": [
      { "country": "KR", "clicks": 80 },
      { "country": "US", "clicks": 30 }
    ]
  }
}
DELETE /api/link

リンクを削除します。グローバルリンクは30日間復元可能、カスタムドメインリンクは即座に完全削除されます。

パラメータ

  • slugスラッグ(必須)
  • domainカスタムドメイン(任意、例: example.com)

リクエスト

DELETE /api/link
{ "slug": "abc123" }

レスポンス

{ "success": true }

レート制限

IPあたり分10回、アカウントあたり日1,000件までリクエストできます。超過すると429が返されます。

エラーコード

失敗時は success: false とともにエラーコードが返されます。

{ "success": false, "message": "api_invalid_token" }
codestatus意味
api_invalid_token401トークンがありません、または無効です
link_invalid_url400URLが正しくありません(http/httpsのみ)
link_invalid_slug400スラッグの形式が正しくありません
link_not_found400リンクが存在しません
domain_not_found400カスタムドメインが存在しません
link_own_domain400自分のドメインを短縮できません
link_create_failed400リンクの作成に失敗しました
link_rate_limit429リクエストの上限を超えました
koenjazh-TWzh-CNviesptfrru