Python Examples

Complete examples for using the yLnk API with Python.

Setup

import requests

API_KEY = 'your-api-key-here'
BASE_URL = 'https://api.ylnk.cc/v2/external/client'

# Helper function for API requests
def api_request(method, endpoint, **kwargs):
    url = f'{BASE_URL}{endpoint}'
    headers = {
        'X-API-Key': API_KEY,
        'Content-Type': 'application/json',
        **kwargs.pop('headers', {})
    }
    
    response = requests.request(method, url, headers=headers, **kwargs)
    response.raise_for_status()
    return response.json()
def create_short_link(original_url, **options):
    data = {
        'originalUrl': original_url,
        **{k: v for k, v in options.items() if v is not None}
    }
    response = api_request('POST', '/short-links', json=data)
    return response['data']

# Usage
link = create_short_link(
    'https://example.com/very/long/url',
    title='My Link',
    customUrl='my-link'
)
print(f"Created: {link['shortUrl']}")
def update_short_link(link_id, **updates):
    data = {'id': link_id, **updates}
    response = api_request('PUT', f'/short-links/{link_id}', json=data)
    return response['data']

# Usage
updated = update_short_link('abc123', title='Updated Title', isActive=True)
def list_short_links(page=1, size=10, **filters):
    params = {'page': page, 'size': size}
    params.update({k: v for k, v in filters.items() if v is not None})
    response = api_request('GET', '/short-links', params=params)
    return response['data']

# Usage
links = list_short_links(page=1, size=20, search='example', status='active')
print(f"Total: {links['totalElements']}")
for link in links['content']:
    print(f"{link['shortUrl']}: {link['title']}")
def get_short_link(link_id):
    response = api_request('GET', f'/short-links/{link_id}')
    return response['data']

# Usage
link = get_short_link('abc123')
print(f"Clicks: {link['visitCount']}")

Get Analytics Details

def get_analytics_details(short_url):
    params = {'shortUrl': short_url}
    response = api_request('GET', '/analytics/details', params=params)
    return response['data']

# Usage
details = get_analytics_details('abc123')
print(f"Total clicks: {details['visitCount']}")

Get Click Traffic

def get_click_traffic(short_url):
    params = {'shortUrl': short_url}
    response = api_request('GET', '/analytics/click-traffic-platforms', params=params)
    return response['data']

# Usage
traffic = get_click_traffic('abc123')
print("Clicks by country:", traffic['clicksTraffic'])
print("Top platforms:", traffic['topPlatforms'])

Get Visit Logs

def get_visit_logs(short_url, start_date, end_date, page=1, page_size=10):
    params = {
        'shortUrl': short_url,
        'startDate': start_date,
        'endDate': end_date,
        'page': page,
        'pageSize': page_size
    }
    response = api_request('GET', '/analytics/visit-logs', params=params)
    return response['data']

# Usage
logs = get_visit_logs('abc123', '2024-01-01', '2024-01-31', page=1, page_size=20)
print(f"Total visits: {logs['totalElements']}")
for log in logs['content']:
    print(f"{log['countryName']}: {log['browserName']} on {log['osName']}")

Filter Visit Logs by UTM

def filter_visit_logs(short_url, start_date, end_date, **utm_filters):
    params = {
        'shortUrl': short_url,
        'startDate': start_date,
        'endDate': end_date
    }
    params.update({k: v for k, v in utm_filters.items() if v})
    response = api_request('GET', '/analytics/filter-visit-logs', params=params)
    return response['data']  # Returns a number (count)

# Usage
count = filter_visit_logs(
    'abc123',
    '2024-01-01',
    '2024-01-31',
    utmSource='google',
    utmMedium='cpc',
    utmCampaign='summer-sale'
)
print(f"Matching visits: {count}")