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()
Create Short Link
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']}")
Update Short Link
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)
List Short Links
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']}")
Get Short Link
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}")
