Instale via npm
Adicione o SDK ao seu projeto Node.js ou navegador.
npm install lix-url
SDK oficial de JavaScript para a API de encurtamento de URL do Lix.li. Funciona em ambientes Node.js e navegador. Crie links curtos, gerencie grupos e rastreie cliques com async/await e DTOs limpos baseados em classes.
// 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();
Construído com async/await, DTOs limpos baseados em classes e uma função fetch intercambiável para Node.js ou navegador.
Crie, obtenha, atualize, exclua e liste links curtos. CRUD completo com respostas tipadas de classe.
Organize links em grupos. Crie grupos rotativos para testes A/B de páginas de destino.
Recupere perfil de conta, detalhes de plano e limites de uso em tempo real para links e chamadas de API.
Cada resposta de API é uma instância de classe JavaScript. Sem objetos brutos: estrutura previsível com acesso por notação de ponto.
6 tipos de exceções dedicados para validação, autorização, limites de taxa, erros de servidor e falhas de transporte.
Injete qualquer função compatível com fetch. Funciona com Node.js fetch, undici ou navegador fetch pronto para usar.
Funciona em qualquer ambiente Node.js ou navegador com suporte a fetch. Sem dependências pesadas: apenas uma camada de cliente HTTP limpa.
Adicione o SDK ao seu projeto Node.js ou navegador.
npm install lix-url
Passe sua chave de API. Opcionalmente injete uma função fetch personalizada para testes ou runtimes 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);
Encurte uma URL e receba um LinkShortenResult tipado com a URL curta e informações 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);
Crie links curtos com aliases personalizados, parâmetros UTM, pixels de rastreamento, proteção por senha e datas de expiração. Cada operação retorna uma instância de classe 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 );
Exemplo de paginação: $client->links()->list(limit: 100, fromId: 500) retorna os próximos 100 links começando do ID 500, com ResponseMeta contendo o total e a URL seguinte.
Os grupos ajudam a categorizar links por campanha, equipe ou projeto. Grupos rotativos habilitam testes A/B distribuindo o tráfego entre vários links.
// 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); }
Recupere seu perfil, plano e limites de uso em tempo real: tudo retornado como instâncias de classe aninhadas com acesso completo a propriedades.
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);
Metadados de organização e conta.
Informações do usuário autenticado e detalhes de conta.
Assinatura atual e período de faturamento.
Limites de API, cotas de links e uso restante.
Capture exatamente o que você precisa. Todas as exceções estendem LixException. ValidationException inclui os dados completos de erros de validação a nível de campo em 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. Acesse err.data para erros de campo.
401 — Credenciais de API ausentes, inválidas ou expiradas.
404 — Link, grupo ou recurso não encontrado.
429 — Limite de taxa excedido.
500 — Erro de servidor inesperado.
Falha de rede / transporte.
Todas as exceções estendem LixException, que estende o Error nativo. Capture a classe base para qualquer erro de SDK ou aponte para classes específicas para tratamento granular.
Use a mesma API do Lix.li do PHP, JavaScript, Python ou Go com SDKs adaptados a cada ecossistema.
Instale o SDK, obtenha uma chave de API e comece a criar links curtos em menos de um minuto.