Node.js e navegador

Lix.li JavaScript SDK

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

Tudo que você precisa para integrações com API de encurtamento de URL em JavaScript

Construído com async/await, DTOs limpos baseados em classes e uma função fetch intercambiável para Node.js ou navegador.

Gerenciamento de links

Crie, obtenha, atualize, exclua e liste links curtos. CRUD completo com respostas tipadas de classe.

Gerenciamento de grupos

Organize links em grupos. Crie grupos rotativos para testes A/B de páginas de destino.

Conta e API de uso

Recupere perfil de conta, detalhes de plano e limites de uso em tempo real para links e chamadas de API.

DTOs baseados em classes

Cada resposta de API é uma instância de classe JavaScript. Sem objetos brutos: estrutura previsível com acesso por notação de ponto.

Exceções tipadas

6 tipos de exceções dedicados para validação, autorização, limites de taxa, erros de servidor e falhas de transporte.

Fetch personalizado

Injete qualquer função compatível com fetch. Funciona com Node.js fetch, undici ou navegador fetch pronto para usar.

Início rápido

Comece em 30 segundos

Funciona em qualquer ambiente Node.js ou navegador com suporte a fetch. Sem dependências pesadas: apenas uma camada de cliente HTTP limpa.

Node.js 18+ MIT License Browser
1
Instale via npm

Adicione o SDK ao seu projeto Node.js ou navegador.

 npm install lix-url
2
Instancie o cliente

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);
3
Crie seu primeiro link

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);
API de grupos

Organize e rotacione links

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() Crie um grupo com nome, descrição opcional e modo de rotação.
  • get() Recupere um grupo por ID com todos os seus metadados.
  • update() Renomeie, atualize descrição ou altere o modo de rotação.
  • delete() Exclua um grupo mantendo os dados de links intactos.
  • list() Navegue por grupos com paginação e respostas de coleção 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 conta e uso

Conta e detalhes de uso

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

Cliente

Metadados de organização e conta.

Usuário

Informações do usuário autenticado e detalhes de conta.

Plano

Assinatura atual e período de faturamento.

Uso

Limites de API, cotas de links e uso restante.

Tratamento de erros

7 exceções tipadas para controle preciso

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

400 — Entrada inválida. Acesse err.data para erros de campo.

UnauthorizedException

401 — Credenciais de API ausentes, inválidas ou expiradas.

NotFoundException

404 — Link, grupo ou recurso não encontrado.

RateLimitException

429 — Limite de taxa excedido.

ServerException

500 — Erro de servidor inesperado.

HttpClientException

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.

Ecossistema

SDKs oficiais para pilhas populares

Use a mesma API do Lix.li do PHP, JavaScript, Python ou Go com SDKs adaptados a cada ecossistema.

Python SDK
Cliente Python tipado para links curtos, grupos, análise e automação. Construído para aplicações Python modernas e fluxos de trabalho.
Go SDK
SDK nativo de Go com estruturas tipadas, suporte de contexto e tratamento de erros idiomático para integrações com API de encurtamento de URL.
PHP SDK
SDK moderno de PHP com DTOs tipados, modelos somente leitura, exceções dedicadas e instalação via Composer.
JS SDK
SDK de JavaScript baseado em Promises para ambientes Node.js e navegador. Crie e gerencie links curtos com uma experiência de desenvolvimento limpa.

Pronto para encurtar links em JavaScript?

Instale o SDK, obtenha uma chave de API e comece a criar links curtos em menos de um minuto.