Node.js y navegador

Lix.li JavaScript SDK

SDK oficial de JavaScript para la API de acortamiento de URL de Lix.li. Funciona en entornos Node.js y navegador. Crea enlaces cortos, gestiona grupos y rastrea clics con async/await y DTOs limpios basados en clases.

// 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();
Características

Todo lo necesario para integraciones con API de acortamiento de URL en JavaScript

Construido con async/await, DTOs limpios basados en clases y una función fetch intercambiable para Node.js o navegador.

Gestión de enlaces

Crea, obtén, actualiza, elimina y lista enlaces cortos. CRUD completo con respuestas tipadas de clase.

Gestión de grupos

Organiza enlaces en grupos. Crea grupos rotativos para pruebas A/B de páginas de destino.

Cuenta y API de uso

Recupera perfil de cuenta, detalles de plan y límites de uso en tiempo real para enlaces y llamadas API.

DTOs basados en clases

Cada respuesta de API es una instancia de clase JavaScript. Sin objetos crudos: estructura predecible con acceso por notación de punto.

Excepciones tipadas

6 tipos de excepciones dedicados para validación, autorización, límites de tasa, errores de servidor y fallos de transporte.

Fetch personalizado

Inyecta cualquier función compatible con fetch. Funciona con Node.js fetch, undici o navegador fetch listo para usar.

Inicio rápido

Comienza en 30 segundos

Funciona en cualquier entorno Node.js o navegador con soporte fetch. Sin dependencias pesadas: solo una capa de cliente HTTP limpia.

Node.js 18+ MIT License Browser
1
Instala vía npm

Añade el SDK a tu proyecto Node.js o navegador.

 npm install lix-url
2
Instancia el cliente

Pasa tu clave API. Opcionalmente inyecta una función fetch personalizada para pruebas o entornos 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
Crea tu primer enlace

Acorta una URL y recibe un LinkShortenResult tipado con la URL corta e información de uso.

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 de grupos

Organiza y rota enlaces

Los grupos ayudan a categorizar enlaces por campaña, equipo o proyecto. Los grupos rotativos habilitan pruebas A/B distribuyendo el tráfico entre múltiples enlaces.

  • create() Crea un grupo con nombre, descripción opcional y modo de rotación.
  • get() Recupera un grupo por ID con todos sus metadatos.
  • update() Renombra, actualiza descripción o cambia el modo de rotación.
  • delete() Elimina un grupo manteniendo los datos de enlaces intactos.
  • list() Explora grupos con paginación y respuestas de colección tipadas.
// 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 de cuenta y uso

Cuenta y detalles de uso

Recupera tu perfil, plan y límites de uso en tiempo real: todo devuelto como instancias de clase anidadas con acceso completo a propiedades.

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);

Cliente

Metadatos de organización y cuenta.

Usuario

Información del usuario autenticado y detalles de cuenta.

Plan

Suscripción actual y período de facturación.

Uso

Límites de API, cuotas de enlaces y uso restante.

Manejo de errores

7 excepciones tipadas para un control preciso

Captura exactamente lo que necesitas. Todas las excepciones extienden LixException. ValidationException incluye los datos completos de errores de validación a nivel de campo en 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 — Entrada inválida. Accede a err.data para errores de campo.

UnauthorizedException

401 — Credenciales de API faltantes, inválidas o expiradas.

NotFoundException

404 — Enlace, grupo o recurso no encontrado.

RateLimitException

429 — Límite de tasa excedido.

ServerException

500 — Error de servidor inesperado.

HttpClientException

Fallo de red / transporte.

Todas las excepciones extienden LixException, que extiende el Error nativo. Captura la clase base para cualquier error de SDK o apunta a clases específicas para un manejo granular.

Ecosistema

SDKs oficiales para pilas populares

Usa la misma API de Lix.li desde PHP, JavaScript, Python o Go con SDKs adaptados a cada ecosistema.

Python SDK
Cliente Python tipado para enlaces cortos, grupos, analítica y automatización. Construido para aplicaciones modernas en Python y flujos de trabajo.
Go SDK
SDK nativo de Go con estructuras tipadas, soporte de contexto y manejo de errores idiomático para integraciones con API de acortamiento de URL.
PHP SDK
SDK moderno de PHP con DTOs tipados, modelos de solo lectura, excepciones dedicadas e instalación vía Composer.
JS SDK
SDK de JavaScript basado en Promises para entornos Node.js y navegador. Crea y gestiona enlaces cortos con una experiencia de desarrollo limpia.

¿Listo para acortar enlaces en JavaScript?

Instala el SDK, obtén una clave API y comienza a crear enlaces cortos en menos de un minuto.