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回しか確認できないため、安全に保管してください。漏洩が疑われる場合は、ダッシュボードですぐに失効させてください。失効したトークンは直ちに無効になります。
エンドポイント
/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": ""
}
} /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
}
]
}
} /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
}
} /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 }
]
}
} /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" } | code | status | 意味 |
|---|---|---|
api_invalid_token | 401 | トークンがありません、または無効です |
link_invalid_url | 400 | URLが正しくありません(http/httpsのみ) |
link_invalid_slug | 400 | スラッグの形式が正しくありません |
link_not_found | 400 | リンクが存在しません |
domain_not_found | 400 | カスタムドメインが存在しません |
link_own_domain | 400 | 自分のドメインを短縮できません |
link_create_failed | 400 | リンクの作成に失敗しました |
link_rate_limit | 429 | リクエストの上限を超えました |