Instala vía pip
Añade el SDK a tu entorno Python.
pip install lix-sdk
SDK oficial de Python para la API de acortamiento de URL y analítica de enlaces de Lix.li. Construido con dataclasses, anotaciones de tipo y argumentos de palabra clave limpios. Crea enlaces cortos, gestiona grupos y rastrea clics con simplicidad 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
Construido con dataclasses, anotaciones de tipo y argumentos de palabra clave limpios. Pythonic por diseño.
Crea, obtén, actualiza, elimina y lista enlaces cortos. CRUD completo con argumentos de palabra clave y valores por defecto opcionales.
Organiza enlaces en grupos. Crea grupos rotativos para pruebas A/B de páginas de destino. CRUD completo con respuestas de dataclass tipadas.
Recupera perfil de cuenta, detalles de plan y límites de uso en tiempo real para enlaces, API y enlaces masivos.
Cada respuesta de API es un @dataclass con anotaciones de tipo completas. Representación limpia, autocompletado IDE y acceso natural a atributos.
7 clases de excepciones dedicadas que extienden LixException base. Captura lo que necesitas, accede a datos de error de validación en .data.
Pasa tu propio requests.Session para tiempos de espera personalizados, reintentos o pruebas. Retrocede a una sesión por defecto.
Requiere Python 3.8+ y requests. Instala con pip y comienza a acortar URLs inmediatamente.
Añade el SDK a tu entorno Python.
pip install lix-sdk
Pasa tu clave API. Opcionalmente proporciona un requests.Session personalizado para control avanzado.
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)
Acorta una URL y recibe un LinkShortenResult con la URL corta e información de uso.
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)
Crea enlaces cortos con alias personalizados, parámetros UTM, píxeles de seguimiento, protección por contraseña y fechas de expiración. Cada operación devuelve un dataclass tipado.
# Create a basic link result = client.links().create('https://example.com') print(result.link.short_url) # With custom alias and UTM result = client.links().create( 'https://example.com', alias='my-link', title='My Page Title', tags=['sale', 'promo'], utm={'utm_source': 'google', 'utm_medium': 'email', 'utm_campaign': 'summer'}, tracking_pixel_ids=[1001, 1002], is_public=True, ) # Password protection + expiration result = client.links().create( 'https://example.com', password='secret123', active_before_datetime='2026-12-31T23:59:59+00:00', ) # Update a link updated = client.links().update(79697, title='New Title') print(updated.link.title)
Ejemplo de paginación:
client.links().list(limit=20, from_id=79500)
devuelve los siguientes 20 enlaces con ResponseMeta que contiene el total y la URL siguiente. Omite ambos para los valores por defecto de la API.
Los grupos ayudan a categorizar enlaces por campaña, equipo o proyecto. Los grupos rotativos habilitan pruebas A/B distribuyendo el tráfico entre múltiples enlaces.
# 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)
Recupera tu perfil, plan y límites de uso en tiempo real: todo devuelto como instancias de dataclass anidadas con acceso completo a atributos.
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)
id, nombre, email, created_datetime
Nombre, email, created_datetime
ID, nombre, start_datetime, end_datetime
Enlaces, api_links, mass_links: cada uno con limit, used, remaining
Captura exactamente lo que necesitas. Todas las excepciones extienden LixException. ValidationException incluye los datos completos de errores de validación a nivel de campo en .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)
400 — Entrada inválida. Accede a e.data para errores de campo.
401 — Clave API inválida o autenticación faltante.
404 — Enlace o grupo no encontrado.
429 — Límite de tasa excedido.
500 — Error del servidor inesperado.
Fallo de red / transporte.
Todas las excepciones extienden LixException, que extiende Exception. Captura la clase base para cualquier error de SDK o apunta a clases específicas para un manejo granular.
Usa la misma API de Lix.li desde PHP, JavaScript, Python o Go con SDKs adaptados a cada ecosistema.
Instala el SDK, obtén una clave API y comienza a crear enlaces cortos en menos de un minuto.