Створюйте посилання з правилами маршрутизації, керуйте тегами й власними доменами та читайте статистику кліків через REST API зі специфікацією OpenAPI 3.1 або типізований TypeScript SDK без залежностей.
Створіть ключ у Профіль → API
Оновлено: листопад 2026
npm install revolink
Працює в Node.js 18+ і в будь-якому середовищі з глобальним fetch. Без залежностей, з повними типами TypeScript, згенерованими зі специфікації API.
Від нуля до першого короткого посилання за три кроки.
У Revolink відкрийте Профіль → API і створіть ключ. Виберіть лише ті дозволи, які потрібні ключу.
Id робочого простору надсилається з кожним запитом, тож ключ завжди діє в одному просторі.
Ініціалізуйте клієнт ключем та id простору й викличте links.create.
Тримайте ключ на сервері. Той, хто його має, може діяти у вашому просторі в межах дозволів ключа.
З Revolink SDK ви створюєте короткі посилання з правилами маршрутизації за кілька рядків коду.
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,
...
}Чотири ресурси та виклик me. Кожен метод відповідає одному REST-ендпоінту.
| Ресурс | Методи | Що робить |
|---|---|---|
| revolink.links | createupsertgetlistiterateupdatedeletecreateManyupdateManydeleteMany | Створення, читання, оновлення та видалення посилань, upsert за slug, список з фільтрами й пагінацією, обхід усіх сторінок і масові операції (до 100 за виклик). |
| revolink.tags | listgetcreateupdatedelete | Створення, список, перейменування та видалення тегів. |
| revolink.domains | listgetcreatedelete | Додавання власного домену, перевірка статусу верифікації та видалення. |
| revolink.analytics | linkworkspace | Статистика кліків по одному посиланню або по всьому простору за період. |
| revolink.me() | Хто діє за ключем, робочий простір і дозволи ключа. |
Ведіть різних відвідувачів на різні адреси. Рівно одне правило є типовим, інші спрацьовують за країною, пристроєм, ОС та іншими умовами.
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'],
},
],
});Кожен ключ має scope-и. Ендпоінт відповідає 403, якщо потрібного scope немає, тож давайте кожній інтеграції лише те, що вона використовує.
Authorization: Bearer <key>Надішліть ключ як bearer-токен.
X-Api-KeyАбо надішліть ключ у цьому заголовку.
X-Workspace-IdОбов'язковий. Робочий простір, у якому діє запит. Власник ключа має бути його учасником.
| Scope | Дозволяє |
|---|---|
links:read | Список і читання посилань |
links:write | Створення, upsert і оновлення посилань |
links:delete | Видалення посилань |
links:bulk | Масове створення, оновлення й видалення (до 100 посилань за запит) |
analytics:read | Читання статистики кліків |
tags:read | Список і читання тегів |
tags:write | Створення й оновлення тегів |
tags:delete | Видалення тегів |
domains:read | Список і читання власних доменів |
domains:write | Додавання власних доменів |
domains:delete | Видалення власних доменів |
Виклики API враховуються в місячній квоті API тарифу власника простору. Якщо ліміт тарифу зупиняє запит, код помилки - license_limit_reached.
Кожен невдалий запит кидає RevolinkError з HTTP-статусом, машинозчитуваним кодом і повідомленням, що саме виправити.
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, які могли бути вже оброблені, ніколи не повторюються, тож посилання не створиться двічі. Типово: тайм-аут 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. Можна викликати https://api.revolink.link/apiv2 напряму з будь-якої мови з API-ключем і заголовком X-Workspace-Id або згенерувати клієнт зі специфікації OpenAPI 3.1.
Node.js 18 або новіший і будь-яке середовище з глобальним fetch. Залежностей немає, є збірки ESM і CommonJS з типами TypeScript, згенерованими зі специфікації API.
Не більше 300 запитів на хвилину на один API-ключ. Понад це API відповідає 429 із заголовком Retry-After, а SDK сам чекає й повторює запит. Окремо виклики API враховуються в місячній квоті тарифу власника простору.
API v1 заморожений, а його відповіді мають заголовки Deprecation. Нові інтеграції варто робити на API v2.
Ні. POST або PATCH, які могли бути оброблені, ніколи не повторюються. Повторюються лише відповіді 429 та ідемпотентні запити (GET, PUT, DELETE).
Так. MCP-сервер Revolink дає Claude, Cursor та іншим MCP-клієнтам керувати посиланнями звичайною мовою. SDK - вибір для вашого коду й скриптів.
Приєднуйтесь до команд та креаторів, які контролюють кожен клік за допомогою інтелектуальної маршрутизації. Запускайте розумніші кампанії, оптимізуйте трафік у реальному часі та зростайте без обмежень.
Почати безкоштовноБезкоштовно назавжди · Без кредитної картки · Скасуйте будь-коли
Вже маєте посилання? Імпортуйте їх