ルーティングルール付きリンクの作成、タグや独自ドメインの管理、クリック分析の取得を、OpenAPI 3.1 仕様の REST API、または依存ゼロで型付けされた TypeScript SDK から行えます。
プロフィール → API でキーを作成
最終更新:2026年11月
npm install revolink
Node.js 18 以上、およびグローバル fetch を持つあらゆるランタイムで動作します。依存ゼロで、API 仕様から生成された完全な TypeScript 型を備えています。
3ステップで最初の短縮リンクまで。
Revolink で プロフィール → API を開き、キーを作成します。必要な権限だけを選んでください。
ワークスペース ID はすべてのリクエストと一緒に送信されるため、キーは常に1つのワークスペースで動作します。
キーとワークスペース ID でクライアントを初期化し、links.create を呼び出します。
キーはサーバー上で保管してください。キーを持つ人は、その権限の範囲でワークスペースを操作できます。
import {Revolink} from 'revolink';
const revolink = new Revolink({
apiKey: process.env.REVOLINK_API_KEY!,
workspaceId: process.env.REVOLINK_WORKSPACE_ID!,
});
const {shortLink} = await revolink.links.create({
url: 'https://example.com',
});
console.log(shortLink); // https://rvlnk.link/k3x9aリクエスト
await revolink.links.create({
url: 'https://example.com',
});レスポンス
{
id: "65f1c0a2e4b0a1d2c3b4a5f6",
name: "example.com",
domain: "rvlnk.link",
slug: "k3x9a",
shortLink: "https://rvlnk.link/k3x9a",
url: "https://example.com",
active: true,
clicks: 0,
...
}4つのリソースと me 呼び出し。各メソッドは1つの REST エンドポイントに対応します。
| リソース | メソッド | できること |
|---|---|---|
| revolink.links | createupsertgetlistiterateupdatedeletecreateManyupdateManydeleteMany | リンクの作成・取得・更新・削除、slug による upsert、フィルターとページネーション付き一覧、全ページの走査、一括操作(1回あたり最大100件)。 |
| revolink.tags | listgetcreateupdatedelete | タグの作成、一覧、名前変更、削除。 |
| revolink.domains | listgetcreatedelete | 独自ドメインの追加、検証ステータスの確認、削除。 |
| revolink.analytics | linkworkspace | 1つのリンクまたはワークスペース全体の、期間指定クリック分析。 |
| revolink.me() | キーが誰として動作するか、ワークスペース、キーの権限。 |
訪問者ごとに異なる宛先へ振り分けます。デフォルトルールはちょうど1つで、ほかは国、デバイス、OS などの条件で一致します。
await revolink.links.create({
name: 'App download',
rules: [
{isDefault: true, targetUrl: 'https://example.com/download'},
{
isDefault: false,
targetUrl: 'https://apps.apple.com/app/id1',
device: ['mobile'],
os: ['iOS'],
},
],
});各キーにはスコープがあります。必要なスコープがないと、エンドポイントは 403 を返します。各連携には使うものだけを付与してください。
Authorization: Bearer <key>キーを bearer トークンとして送信します。
X-Api-Keyまたは、このヘッダーでキーを送信します。
X-Workspace-Id必須。リクエストが動作するワークスペース。キーの所有者はそのメンバーである必要があります。
| スコープ | 許可する操作 |
|---|---|
links:read | リンクの一覧と取得 |
links:write | リンクの作成、upsert、更新 |
links:delete | リンクの削除 |
links:bulk | 一括作成・更新・削除(1リクエストあたり最大100リンク) |
analytics:read | クリック分析の取得 |
tags:read | タグの一覧と取得 |
tags:write | タグの作成と更新 |
tags:delete | タグの削除 |
domains:read | 独自ドメインの一覧と取得 |
domains:write | 独自ドメインの追加 |
domains:delete | 独自ドメインの削除 |
API 呼び出しは、ワークスペース所有者のプランの月間 API クォータに加算されます。プランの上限でリクエストが止まった場合、エラーコードは license_limit_reached です。
失敗したリクエストはすべて、HTTP ステータス、機械可読なコード、修正点を示すメッセージを持つ RevolinkError を投げます。
import {RevolinkError} from 'revolink';
try {
await revolink.links.create({url: 'https://example.com', slug: 'taken'});
} catch (error) {
if (error instanceof RevolinkError) {
error.status; // 409
error.code; // 'conflict'
error.licenseLimitReached; // true when the plan's limit stopped the request
error.requiredPermission; // e.g. 'tags:write' when the key lacks a scope
error.retryAfter; // seconds, on 429
}
}429 は Retry-After の待機後に必ず再試行されます。ネットワークエラーと 5xx は GET、PUT、DELETE のみ再試行されます。すでに処理された可能性のある POST や PATCH は繰り返されないため、リンクが二重に作成されることはありません。デフォルトは1回あたり30秒のタイムアウトと2回の再試行で、maxRetries を 0 にすると再試行を無効にできます。
| コード | 意味 |
|---|---|
invalid_request | リクエストが不正です(400)。メッセージに内容が示されます。 |
unauthorized | キーがない、または無効・期限切れのキーです(401)。 |
forbidden | キーに権限がない、またはあなたのロールでは実行できません(403)。 |
license_limit_reached | プランの上限に達しました。リンク、タグ、ドメイン、または API 呼び出し(403)。 |
not_found | このワークスペースにそのアイテムはありません(404)。 |
conflict | すでに存在します。例:使用済みの slug やタグ名(409)。 |
rate_limited | キーあたり毎分300リクエストを超えました(429)。 |
network_error | 応答なし:ネットワーク障害またはタイムアウト(ステータスは 0)。 |
いいえ。SDK は REST API の薄い型付きラッパーです。API キーと X-Workspace-Id ヘッダーがあれば、どの言語からでも https://api.revolink.link/apiv2 を直接呼び出せます。OpenAPI 3.1 仕様からクライアントを生成することもできます。
Node.js 18 以上と、グローバル fetch を持つすべてのランタイムです。依存はなく、API 仕様から生成された TypeScript 型付きの ESM と CommonJS ビルドを提供します。
リクエストは API キーあたり毎分300件までです。超えると API は Retry-After ヘッダー付きで 429 を返し、SDK は自動で待機して再試行します。これとは別に、API 呼び出しはワークスペース所有者のプランの月間クォータに加算されます。
API v1 は凍結されており、レスポンスには Deprecation ヘッダーが付きます。新しい連携には API v2 をお使いください。
ありません。処理された可能性のある POST や PATCH は再試行されません。再試行されるのは 429 の応答と、冪等なリクエスト(GET、PUT、DELETE)だけです。
はい。Revolink MCP サーバーを使えば、Claude や Cursor などの MCP クライアントから自然な言葉でリンクを管理できます。自分のコードやスクリプトには SDK が向いています。
インテリジェントルーティングですべてのクリックをコントロールするチームやクリエイターに参加しましょう。よりスマートなキャンペーンを開始し、リアルタイムでトラフィックを最適化し、無制限に成長しましょう。
無料で始める無料プラン · クレジットカード不要 · いつでもキャンセル可能
すでにリンクをお持ちですか?インポートする