API v2 + TypeScript SDK

Revolink API та SDK
Керуйте посиланнями зі свого коду

Створюйте посилання з правилами маршрутизації, керуйте тегами й власними доменами та читайте статистику кліків через REST API зі специфікацією OpenAPI 3.1 або типізований TypeScript SDK без залежностей.

Створіть ключ у Профіль → API

Оновлено: листопад 2026

термінал
npm install revolink

Встановлення одним рядком

Працює в Node.js 18+ і в будь-якому середовищі з глобальним fetch. Без залежностей, з повними типами TypeScript, згенерованими зі специфікації API.

Швидкий старт

Від нуля до першого короткого посилання за три кроки.

1

Створіть API-ключ

У Revolink відкрийте Профіль → API і створіть ключ. Виберіть лише ті дозволи, які потрібні ключу.

2

Скопіюйте id робочого простору

Id робочого простору надсилається з кожним запитом, тож ключ завжди діє в одному просторі.

3

Створіть посилання

Ініціалізуйте клієнт ключем та id простору й викличте links.create.

Тримайте ключ на сервері. Той, хто його має, може діяти у вашому просторі в межах дозволів ключа.

Інтегруйте у свій проєкт без зусиль

З Revolink SDK ви створюєте короткі посилання з правилами маршрутизації за кілька рядків коду.

index.ts
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

Дослідіть ендпоінти API

Запит

TypeScript
await revolink.links.create({
  url: 'https://example.com',
});

Відповідь

JSON
{
  id: "65f1c0a2e4b0a1d2c3b4a5f6",
  name: "example.com",
  domain: "rvlnk.link",
  slug: "k3x9a",
  shortLink: "https://rvlnk.link/k3x9a",
  url: "https://example.com",
  active: true,
  clicks: 0,
  ...
}

Що покриває SDK

Чотири ресурси та виклик me. Кожен метод відповідає одному REST-ендпоінту.

РесурсМетодиЩо робить
revolink.links
createupsertgetlistiterateupdatedeletecreateManyupdateManydeleteMany
Створення, читання, оновлення та видалення посилань, upsert за slug, список з фільтрами й пагінацією, обхід усіх сторінок і масові операції (до 100 за виклик).
revolink.tags
listgetcreateupdatedelete
Створення, список, перейменування та видалення тегів.
revolink.domains
listgetcreatedelete
Додавання власного домену, перевірка статусу верифікації та видалення.
revolink.analytics
linkworkspace
Статистика кліків по одному посиланню або по всьому простору за період.
revolink.me()
Хто діє за ключем, робочий простір і дозволи ключа.

Розумна маршрутизація з коду

Ведіть різних відвідувачів на різні адреси. Рівно одне правило є типовим, інші спрацьовують за країною, пристроєм, ОС та іншими умовами.

routing.ts
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'],
    },
  ],
});

API-ключі та дозволи

Кожен ключ має scope-и. Ендпоінт відповідає 403, якщо потрібного scope немає, тож давайте кожній інтеграції лише те, що вона використовує.

Заголовки автентифікації

Authorization: Bearer <key>

Надішліть ключ як bearer-токен.

X-Api-Key

Або надішліть ключ у цьому заголовку.

X-Workspace-Id

Обов'язковий. Робочий простір, у якому діє запит. Власник ключа має бути його учасником.

Scope-и

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-статусом, машинозчитуваним кодом і повідомленням, що саме виправити.

errors.ts
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?

Ні. SDK - це тонка типізована обгортка над REST API. Можна викликати https://api.revolink.link/apiv2 напряму з будь-якої мови з API-ключем і заголовком X-Workspace-Id або згенерувати клієнт зі специфікації OpenAPI 3.1.

Які середовища підтримує SDK?

Node.js 18 або новіший і будь-яке середовище з глобальним fetch. Залежностей немає, є збірки ESM і CommonJS з типами TypeScript, згенерованими зі специфікації API.

Які є ліміти запитів?

Не більше 300 запитів на хвилину на один API-ключ. Понад це API відповідає 429 із заголовком Retry-After, а SDK сам чекає й повторює запит. Окремо виклики API враховуються в місячній квоті тарифу власника простору.

Що буде з API v1?

API v1 заморожений, а його відповіді мають заголовки Deprecation. Нові інтеграції варто робити на API v2.

Чи може SDK створити дубль посилання під час повтору?

Ні. POST або PATCH, які могли бути оброблені, ніколи не повторюються. Повторюються лише відповіді 429 та ідемпотентні запити (GET, PUT, DELETE).

Чи можна користуватися Revolink з AI-агента?

Так. MCP-сервер Revolink дає Claude, Cursor та іншим MCP-клієнтам керувати посиланнями звичайною мовою. SDK - вибір для вашого коду й скриптів.

Готові почати з Revolink?

Приєднуйтесь до команд та креаторів, які контролюють кожен клік за допомогою інтелектуальної маршрутизації. Запускайте розумніші кампанії, оптимізуйте трафік у реальному часі та зростайте без обмежень.

Почати безкоштовно

Безкоштовно назавжди · Без кредитної картки · Скасуйте будь-коли

Вже маєте посилання? Імпортуйте їх