Python 3.8+

Lix.li Python SDK

Официальный Python SDK для API сокращения URL и аналитики ссылок Lix.li. Создан с dataclasses, подсказками типов и чистыми именованными аргументами. Создавайте короткие ссылки, управляйте группами и отслеживайте клики с Pythonic простотой.

from lix_sdk import Client

client = Client('lix_live_xxx')

result = client.links().create('https://example.com')
print(result.link.short_url)
# https://lix.li/a3b7k2
print(result.usage.remaining)
# 42
Возможности

Всё необходимое для управления ссылками в Python

Создан с dataclasses, подсказками типов и чистыми именованными аргументами. Pythonic по дизайну.

Управление ссылками

Создавайте, получайте, обновляйте, удаляйте и перечисляйте короткие ссылки. Полный CRUD с именованными аргументами и опциональными значениями по умолчанию.

Управление группами

Организуйте ссылки в группы. Создавайте ротирующие группы для A/B-тестирования посадочных страниц. Полный CRUD с типизированными ответами dataclass.

Аккаунт и API использования

Получайте профиль аккаунта, детали плана и лимиты использования в реальном времени для ссылок, API-ссылок и массовых ссылок.

DTO на основе dataclass

Каждый ответ API — это @dataclass с полными подсказками типов. Чистый repr, автодополнение IDE и естественный доступ к атрибутам.

Типизированные исключения

7 выделенных классов исключений, расширяющих базовый LixException. Ловите то, что нужно, получайте доступ к данным ошибок валидации в .data.

Внедряемый Session

Передайте ваш собственный requests.Session для пользовательских таймаутов, повторных попыток или тестирования. Возвращается к сессии по умолчанию.

Быстрый старт

Начните работу за 30 секунд

Требуется Python 3.8+ и requests. Установите через pip и сразу начните сокращать URL.

Python 3.8+ MIT License
1
Установка через pip

Добавьте SDK в ваше Python-окружение.

 pip install lix-sdk
2
Создайте клиент

Передайте ваш API-ключ. При желании предоставьте пользовательский requests.Session для расширенного контроля.

from lix_sdk import Client

client = Client('lix_live_xxx')

# With custom session
import requests
session = requests.Session()
session.headers.update({'X-Custom-Header': 'value'})
client = Client('lix_live_xxx', session=session)
3
Создайте первую ссылку

Сократите URL и получите LinkShortenResult с короткой ссылкой и информацией об использовании.

result = client.links().create('https://example.com')
print(result.link.short_url)
# https://lix.li/a3b7k2
# API links used: 42 / 100
print(result.usage.used, '/', result.usage.limit)
API групп

Организуйте и ротируйте ссылки

Группы помогают категоризировать ссылки по кампаниям, командам или проектам. Ротирующие группы позволяют проводить A/B-тестирование, распределяя трафик между несколькими ссылками.

  • create(name, ...) Создайте группу с названием, необязательным описанием и режимом ротации.
  • get(id) Получите группу по ID со всеми метаданными.
  • update(id, ...) Переименуйте, обновите описание или переключите режим ротации.
  • delete(id) Удалите группу по ID.
  • list(limit, from_id) Пагинация с типизированным dataclass Groups и ResponseMeta.
# Create a regular group
group = client.groups().create('Marketing')
print(group.name, group.url)

# Create a rotating group for A/B testing
group = client.groups().create(
    'Landing Pages',
    description='Rotating landing pages',
    is_rotate=True,
)

# Update group
group = client.groups().update(
    10,
    description='Updated description',
)

# List with pagination
page = client.groups().list(limit=10, from_id=1000)
for g in page.groups:
    print(g.name, g.url)
print(page.meta.total)
API аккаунта и использования

Аккаунт и детали использования

Получите ваш профиль, план и лимиты использования в реальном времени — всё возвращается как вложенные экземпляры dataclass с полным доступом к атрибутам.

profile = client.profile().me()

# Account info
print(profile.client.name, profile.client.email)
print(profile.user.email)

# Plan details
print(profile.plan.name, profile.plan.end_datetime)

# Usage limits
print(profile.usages.links.remaining)
print(profile.usages.api_links.used)
print(profile.usages.mass_links.limit)

ClientDto

id, name, email, created_datetime

User

name, email, created_datetime

Plan

id, name, start_datetime, end_datetime

Usage

Ссылки, api_links, mass_links — каждая с limit, used, remaining

Обработка ошибок

7 типизированных исключений для Pythonic контроля

Ловите точно то, что нужно. Все исключения расширяют LixException. ValidationException включает полные данные об ошибках валидации на уровне полей в .data.

from lix_sdk import (
    ValidationException,
    NotFoundException,
    UnauthorizedException,
    RateLimitException,
    ServerException,
)

try:
    result = client.links().create('invalid-url')
except ValidationException as e:
    # Field-level validation errors
    print('Validation:', e.data)
except NotFoundException:
    print('Not found')
except UnauthorizedException:
    # Invalid API key
except RateLimitException:
    # Too many requests — retry after
except ServerException:
    # 5xx server error
except LixException as e:
    # Generic SDK error
    print('Error:', e)
ValidationException

400 — Неверный ввод. Доступ к e.data для ошибок полей.

UnauthorizedException

401 — Неверный API-ключ или отсутствующая авторизация.

NotFoundException

404 — Ссылка или группа не найдены.

RateLimitException

429 — Превышен лимит запросов.

ServerException

500 — Неожиданная серверная ошибка.

HttpClientException

Сбой сети / транспорта.

Все исключения расширяют LixException, который расширяет Exception. Ловите базовый класс для любой ошибки SDK или нацеливайтесь на конкретные классы для детальной обработки.

Экосистема

Официальные SDK для каждого стека

Используйте один и тот же API Lix.li из PHP, JavaScript, Python или Go с SDK, адаптированными под каждую экосистему.

Python SDK
Типизированный Python-клиент для коротких ссылок, групп, аналитики и автоматизации. Создан для современных Python-приложений и рабочих процессов.
Go SDK
Нативный Go SDK с типизированными структурами, поддержкой контекста и идиоматичной обработкой ошибок для интеграций с API сокращения URL.
PHP SDK
Современный PHP SDK с типизированными DTO, неизменяемыми моделями, выделенными исключениями и установкой через Composer.
JS SDK
JavaScript SDK на основе Promise для Node.js и браузерных сред. Создавайте и управляйте короткими ссылками с чистым опытом разработчика.

Готовы сокращать ссылки в Python?

Установите SDK, получите API-ключ и начните создавать короткие ссылки менее чем за минуту.