Instala vía npm
Añade el SDK a tu proyecto Node.js o navegador.
npm install lix-url
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();
Construido con async/await, DTOs limpios basados en clases y una función fetch intercambiable para Node.js o navegador.
Crea, obtén, actualiza, elimina y lista enlaces cortos. CRUD completo con respuestas tipadas de clase.
Organiza enlaces en grupos. Crea grupos rotativos para pruebas A/B de páginas de destino.
Recupera perfil de cuenta, detalles de plan y límites de uso en tiempo real para enlaces y llamadas API.
Cada respuesta de API es una instancia de clase JavaScript. Sin objetos crudos: estructura predecible con acceso por notación de punto.
6 tipos de excepciones dedicados para validación, autorización, límites de tasa, errores de servidor y fallos de transporte.
Inyecta cualquier función compatible con fetch. Funciona con Node.js fetch, undici o navegador fetch listo para usar.
Funciona en cualquier entorno Node.js o navegador con soporte fetch. Sin dependencias pesadas: solo una capa de cliente HTTP limpia.
Añade el SDK a tu proyecto Node.js o navegador.
npm install lix-url
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);
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);
Crea enlaces cortos con alias personalizados, parámetros UTM, píxeles de seguimiento, protección por contraseña y fechas de expiración. Cada operación devuelve una instancia de clase tipada.
// Create a basic link const result = await client.links().create('https://example.com'); // With custom alias and UTM const result = await client.links().create( 'https://example.com', 'summer-sale', // alias 'My Summer Sale', // title null, // groupId ['marketing', '2026'], // tags [], // meta { // utm source: 'newsletter', medium: 'email', campaign: 'summer-sale', }, [1, 2], // trackingPixelIds null, // activeBeforeDatetime null, // password true // isPublic ); // Password protection + expiration const result = await client.links().create( 'https://example.com', null, null, null, [], [], [], [], '2026-12-31T23:59:59Z', // activeBeforeDatetime 'secret123' // password );
Ejemplo de paginación: $client->links()->list(limit: 100, fromId: 500) devuelve los siguientes 100 enlaces comenzando desde el ID 500, con ResponseMeta que contiene el total y la URL siguiente.
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 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); }
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);
Metadatos de organización y cuenta.
Información del usuario autenticado y detalles de cuenta.
Suscripción actual y período de facturación.
Límites de API, cuotas de enlaces y uso restante.
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); } }
400 — Entrada inválida. Accede a err.data para errores de campo.
401 — Credenciales de API faltantes, inválidas o expiradas.
404 — Enlace, grupo o recurso no encontrado.
429 — Límite de tasa excedido.
500 — Error de servidor inesperado.
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.
Usa la misma API de Lix.li desde PHP, JavaScript, Python o Go con SDKs adaptados a cada ecosistema.
Instala el SDK, obtén una clave API y comienza a crear enlaces cortos en menos de un minuto.