Установка через Composer
Добавьте SDK в ваш проект одной командой.
composer require lix-url/php-sdk
Официальный PHP SDK для API сокращения URL Lix.li. Создавайте короткие ссылки, управляйте группами и отслеживайте клики с помощью чистого типизированного клиента с неизменяемыми объектами.
# 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
Создан для современных PHP-приложений с типизированными DTO, предсказуемыми исключениями, совместимыми с PSR HTTP-клиентами и первоклассной поддержкой IDE.
Создавайте, обновляйте, удаляйте и организовывайте короткие ссылки с типизированными DTO и предсказуемыми ответами API.
Организуйте ссылки в группы. Создавайте ротирующие группы для A/B-тестирования посадочных страниц.
Получайте информацию об аккаунте, лимитах API, статистике использования и деталях плана прямо из вашего приложения.
Все ответы — это readonly PHP-классы с типизированными свойствами. Никаких магических массивов — автодополнение в IDE из коробки.
6 выделенных типов исключений для валидации, авторизации, ограничений скорости, серверных ошибок и сбоев транспорта.
Замените Guzzle на любой HTTP-клиент, совместимый с PSR-18. Полная гибкость для тестирования и кастомных сред.
Установка через Composer и начните создание коротких ссылок за минуты. Создан для PHP 8.2+ с типизированными DTO, неизменяемыми ответами, совместимыми с PSR HTTP-клиентами и современными рабочими процессами разработчиков.
Добавьте SDK в ваш проект одной командой.
composer require lix-url/php-sdk
Передайте ваш API-ключ. При желании внедрите пользовательский HTTP-клиент PSR-18.
use Lix\Client; $client = new Client('lix_live_xxx');
Сократите URL и получите типизированный LinkShortenResult с короткой ссылкой и информацией об использовании.
$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;
Создавайте, обновляйте и управляйте короткими ссылками с пользовательскими алиасами, UTM-параметрами, пикселями отслеживания, паролями, правилами истечения срока и группами. Каждая операция возвращает типизированные DTO для предсказуемой интеграции.
// 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] );
Пример пагинации: $client->links()->list(limit: 100, fromId: 500) возвращает следующие 100 ссылок начиная с ID 500, с ResponseMeta, содержащим общее количество и следующий URL.
Организуйте ссылки по кампаниям, продуктам, командам или проектам. Ротирующие группы распределяют трафик между несколькими назначениями и упрощают 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; }
Получите информацию об аккаунте, детали подписки и лимиты использования через единый типизированный ответ. Вложенные readonly DTO обеспечивают полное автодополнение IDE и предсказуемую структуру данных.
$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;
Метаданные организации и аккаунта.
Информация об аутентифицированном пользователе и детали аккаунта.
Текущая подписка и платежный период.
Лимиты API, квоты ссылок и оставшееся использование.
Обрабатывайте ошибки API с выделенными классами исключений вместо универсальных ответов. Каждая HTTP-ошибка соответствует определенному типу исключения, а ValidationException предоставляет детали валидации на уровне полей.
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 — Неверный ввод. Доступ к $e->data для ошибок полей.
401 — Отсутствующие, неверные или просроченные API-учетные данные.
404 — Ссылка, группа или ресурс не найдены.
429 — Превышен лимит запросов.
500 — Неожиданная серверная ошибка.
Сбой сети / транспорта.
Все исключения SDK расширяют LixException. Ловите базовый класс для глобальной обработки или нацеливайтесь на конкретные типы при необходимости.
Используйте один и тот же API Lix.li из PHP, JavaScript, Python или Go с SDK, адаптированными под каждую экосистему.
Install the SDK, get your API key, and start creating short links in under a minute.