Instala con Composer
Añade el SDK a tu proyecto con un solo comando.
composer require lix-url/php-sdk
SDK oficial de PHP para la API de acortamiento de URL de Lix.li. Crea enlaces cortos, gestiona grupos y rastrea clics con un cliente limpio, tipado e inmutable.
# Install via Composer $ composer require lix-url/php-sdk // Quick start use Lix\Client; $client = new Client('lix_live_xxx'); $link = $client->links()->create('https://example.com'); echo $link->link->shortUrl; // https://lix.li/a3b7k2
Construido para aplicaciones modernas en PHP con DTOs tipados, excepciones predecibles, clientes HTTP compatibles con PSR y soporte IDE de primera clase.
Crea, actualiza, elimina y organiza enlaces cortos con DTOs tipados y respuestas de API predecibles.
Organiza enlaces en grupos. Crea grupos rotativos para pruebas A/B de páginas de destino.
Accede a información de cuenta, límites de API, estadísticas de uso y detalles de plan directamente desde tu aplicación.
Todas las respuestas son clases PHP de solo lectura con propiedades tipadas. Sin matrices mágicas: autocompletado IDE listo para usar.
6 tipos de excepciones dedicados para validación, autorización, límites de tasa, errores de servidor y fallos de transporte.
Reemplaza Guzzle por cualquier cliente HTTP compatible PSR-18. Flexibilidad total para pruebas y entornos personalizados.
Instala vía Composer y comienza a crear enlaces cortos en minutos. Construido para PHP 8.2+ con DTOs tipados, respuestas inmutables, clientes HTTP compatibles con PSR y flujos de trabajo modernos.
Añade el SDK a tu proyecto con un solo comando.
composer require lix-url/php-sdk
Pasa tu clave API. Opcionalmente inyecta un cliente HTTP PSR-18 personalizado.
use Lix\Client; $client = new Client('lix_live_xxx');
Acorta una URL y recibe un LinkShortenResult tipado con la URL corta e información de uso.
$result = $client->links()->create('https://example.com'); echo $result->link->shortUrl; // https://lix.li/a3b7k2 // Links used: 42 / 100 echo $result->usage->used . ' / ' . $result->usage->limit;
Crea, actualiza y gestiona enlaces cortos con alias personalizados, parámetros UTM, píxeles de seguimiento, contraseñas, reglas de expiración y grupos. Cada operación devuelve DTOs tipados para una integración predecible.
// Create a basic link $result = $client->links()->create( 'https://example.com' ); // With custom alias and UTM $result = $client->links()->create( url: 'https://example.com', alias: 'summer-sale', utm: [ 'source' => 'newsletter', 'medium' => 'email', 'campaign' => 'summer-sale', ], tags: ['marketing', '2026'], isPublic: true ); // Password protection + expiration $result = $client->links()->create( url: 'https://example.com', password: 'secret123', activeBeforeDatetime: '2026-12-31T23:59:59Z', trackingPixelIds: [1, 2] );
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.
Organiza enlaces por campaña, producto, equipo o proyecto. Los grupos rotativos distribuyen el tráfico entre múltiples destinos y simplifican los flujos de trabajo de pruebas A/B.
// Create a regular group $group = $client->groups()->create( name: 'Marketing' ); echo $group->name; // Create a rotating group for A/B testing $group = $client->groups()->create( name: 'Landing Pages', isRotate: true ); // Update group $group = $client->groups()->update( groupId: 10, description: 'Updated description' ); // List with pagination $response = $client->groups()->list( limit: 10, fromId: 1000 ); foreach ($response->groups as $group) { echo $group->name . PHP_EOL; }
Accede a información de cuenta, detalles de suscripción y límites de uso a través de una sola respuesta tipada. Los DTOs anidados de solo lectura proporcionan autocompletado IDE completo y estructuras de datos predecibles.
$profile = $client->profile()->me(); // Account info echo $profile->client->name; echo $profile->user->email; // Plan details echo $profile->plan->name; echo $profile->plan->endDatetime; // Usage limits echo $profile->usages->links->remaining; echo $profile->usages->apiLinks->used; echo $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.
Maneja errores de API con clases de excepción dedicadas en lugar de respuestas genéricas. Cada error HTTP se mapea a un tipo de excepción específico, mientras que ValidationException expone detalles de validación a nivel de campo.
use Lix\Exceptions\ValidationException; use Lix\Exceptions\UnauthorizedException; use Lix\Exceptions\NotFoundException; use Lix\Exceptions\RateLimitException; use Lix\Exceptions\ServerException; try { $client->links()->create( url: 'invalid-url' ); } catch (ValidationException $e) { // Field-level validation errors // $e->data; } catch (UnauthorizedException $e) { // Invalid or expired API key } catch (NotFoundException $e) { // Link or group does not exist } catch (RateLimitException $e) { // Too many requests — retry after } catch (ServerException $e) { // 5xx server error }
400 — Entrada inválida. Accede a $e->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 del SDK extienden LixException. Captura la clase base para un manejo global o apunta a tipos específicos según sea necesario.
Usa la misma API de Lix.li desde PHP, JavaScript, Python o Go con SDKs adaptados a cada ecosistema.
Install the SDK, get your API key, and start creating short links in under a minute.