Node.js и браузер

Lix.li JavaScript SDK

Официальный JavaScript SDK для API сокращения URL Lix.li. Работает в средах Node.js и браузера. Создавайте короткие ссылки, управляйте группами и отслеживайте клики с async/await и чистыми DTO на основе классов.

// npm install lix-url
const { Client } = require('lix-url');

const client = new Client('lix_live_xxx');

async function main() {
    const result = await client.links().create('https://example.com');
    console.log(result.link.shortUrl);
    // https://lix.li/a3b7k2
}

main();
Возможности

Всё необходимое для интеграции с API сокращения URL в JavaScript

Создан с async/await, чистыми DTO на основе классов и заменяемой функцией fetch для Node.js или браузера.

Управление ссылками

Создавайте, получайте, обновляйте, удаляйте и перечисляйте короткие ссылки. Полный CRUD с типизированными ответами классов.

Управление группами

Организуйте ссылки в группы. Создавайте ротирующие группы для A/B-тестирования посадочных страниц.

Аккаунт и API использования

Получайте профиль аккаунта, детали плана и лимиты использования в реальном времени для ссылок и API-вызовов.

DTO на основе классов

Каждый ответ API — это экземпляр обычного JavaScript-класса. Никаких сырых объектов — предсказуемая структура с доступом через точечную нотацию.

Типизированные исключения

6 выделенных типов исключений для валидации, авторизации, ограничений скорости, серверных ошибок и сбоев транспорта.

Пользовательский fetch

Внедрите любую функцию, совместимую с fetch. Работает с Node.js fetch, undici или браузерным fetch из коробки.

Быстрый старт

Начните работу за 30 секунд

Работает в любой среде Node.js или браузера с поддержкой fetch. Никаких тяжелых зависимостей — только чистый HTTP-клиент.

Node.js 18+ MIT License Browser
1
Установка через npm

Добавьте SDK в ваш проект Node.js или браузера.

 npm install lix-url
2
Создайте клиент

Передайте ваш API-ключ. При желании внедрите пользовательскую функцию fetch для тестирования или edge-рантаймов.

const { Client } = require('lix-url');
const client = new Client('lix_live_xxx');

// With custom fetch (e.g., for testing)
const client = new Client('lix_live_xxx', myFetchFn);
3
Создайте первую ссылку

Сократите URL и получите типизированный LinkShortenResult с короткой ссылкой и информацией об использовании.

const result = await client.links().create('https://example.com');
console.log(result.link.shortUrl);
// https://lix.li/a3b7k2
// Links used: 42 / 100
console.log(result.usage.used, '/', result.usage.limit);
API групп

Организуйте и ротируйте ссылки

Группы помогают категоризировать ссылки по кампаниям, командам или проектам. Ротирующие группы позволяют проводить A/B-тестирование, распределяя трафик между несколькими ссылками.

  • create() Создайте группу с названием, необязательным описанием и режимом ротации.
  • get() Получите группу по ID со всеми метаданными.
  • update() Переименуйте, обновите описание или переключите режим ротации.
  • delete() Удалите группу, сохранив данные ссылок.
  • list() Просмотр групп с пагинацией и типизированными коллекциями.
// Create a regular group
const group = await client.groups().create('Marketing');
console.log(group.name);

// Create a rotating group for A/B testing
const group = await client.groups().create(
    'Landing Pages',
    null,
    true   // isRotate
);

// Update group
const group = await client.groups().update(
    10,
    null,
    'Updated description'
);

// List with pagination
const response = await client.groups().list(10, 1000);
for (const group of response.groups) {
    console.log(group.name);
}
API аккаунта и использования

Аккаунт и детали использования

Получите ваш профиль, план и лимиты использования в реальном времени — всё возвращается как вложенные экземпляры классов с полным доступом к свойствам.

const profile = await client.profile().me();

// Account info
console.log(profile.client.name, profile.client.email);
console.log(profile.user.email);

// Plan details
console.log(profile.plan.name, profile.plan.endDatetime);

// Usage limits
console.log(profile.usages.links.remaining);
console.log(profile.usages.apiLinks.used);
console.log(profile.usages.massLinks.limit);

Клиент

Метаданные организации и аккаунта.

Пользователь

Информация об аутентифицированном пользователе и детали аккаунта.

План

Текущая подписка и платежный период.

Использование

Лимиты API, квоты ссылок и оставшееся использование.

Обработка ошибок

7 типизированных исключений для точного контроля

Ловите точно то, что нужно. Все исключения расширяют LixException. ValidationException включает полные данные об ошибках валидации на уровне полей в err.data.

const {
    ValidationException,
    NotFoundException,
    UnauthorizedException,
    RateLimitException,
    ServerException
} = require('lix-url');

try {
    await client.links().create('invalid-url');
} catch (err) {
    if (err instanceof ValidationException) {
        // Field-level validation errors
        console.error('Validation:', err.data);
    } else if (err instanceof NotFoundException) {
        console.error('Not found:', err.message);
    } else if (err instanceof UnauthorizedException) {
        // Invalid API key
    } else if (err instanceof RateLimitException) {
        // Too many requests — retry after
    } else if (err instanceof ServerException) {
        // 5xx server error
    } else {
        // Generic Lix or network error
        console.error('Error:', err.message);
    }
}
ValidationException

400 — Неверный ввод. Доступ к err.data для ошибок полей.

UnauthorizedException

401 — Отсутствующие, неверные или просроченные API-учетные данные.

NotFoundException

404 — Ссылка, группа или ресурс не найдены.

RateLimitException

429 — Превышен лимит запросов.

ServerException

500 — Неожиданная серверная ошибка.

HttpClientException

Сбой сети / транспорта.

Все исключения расширяют LixException, который расширяет нативный Error. Ловите базовый класс для любой ошибки SDK или нацеливайтесь на конкретные классы для детальной обработки.

Экосистема

Официальные SDK для популярных стеков

Используйте один и тот же API Lix.li из PHP, JavaScript, Python или Go с SDK, адаптированными под каждую экосистему.

Python SDK
Типизированный Python-клиент для коротких ссылок, групп, аналитики и автоматизации. Создан для современных Python-приложений и рабочих процессов.
Go SDK
Нативный Go SDK с типизированными структурами, поддержкой контекста и идиоматичной обработкой ошибок для интеграций с API сокращения URL.
PHP SDK
Современный PHP SDK с типизированными DTO, неизменяемыми моделями, выделенными исключениями и установкой через Composer.
JS SDK
JavaScript SDK на основе Promise для Node.js и браузерных сред. Создавайте и управляйте короткими ссылками с чистым опытом разработчика.

Готовы сокращать ссылки в JavaScript?

Установите SDK, получите API-ключ и начните создавать короткие ссылки менее чем за минуту.