Skip to content

Analytics API

Base URL: https://qck.sh/public-api/v1

All endpoints require analytics:read permission.

All analytics responses wrap data under analytics and include tier usage info:

{
"success": true,
"data": {
"analytics": { ... },
"usage": {
"clicks_this_month": 4500,
"click_limit": 5000,
"limit_exceeded": false,
"tier": "basic",
"retention_days": 365
}
}
}

The click_limit is null for tiers with unlimited clicks. If limit_exceeded is true, date ranges are clamped to show only the most recent data within budget, and the usage object includes a cutoff_date field (YYYY-MM-DD), the earliest date queries are clamped to.

All analytics endpoints accept these query parameters:

ParamTypeDefaultDescription
daysinteger30Rolling window (1–365)
start_datestringNoneStart date (YYYY-MM-DD), overrides days
end_datestringNoneEnd date (YYYY-MM-DD)
bot_filterstringrealreal, bot, or all
domain_namestringNoneFilter to a custom domain

GET /analytics/summary
{
"success": true,
"data": {
"analytics": {
"total_clicks": 12500,
"unique_visitors": 8900,
"total_links": 150,
"last_click_at": "2026-04-08T10:30:00Z",
"today_clicks": 320,
"yesterday_clicks": 410,
"active_links": 120,
"total_links_count": 200,
"links_this_month": 18,
"clicks_this_month": 4500
},
"usage": { ... }
}
}

GET /analytics/timeseries

Returns daily click data over time.

{
"success": true,
"data": {
"analytics": [
{ "date": "2026-04-01", "clicks": 450, "unique_visitors": 320 },
{ "date": "2026-04-02", "clicks": 380, "unique_visitors": 290 }
],
"usage": { ... }
}
}

GET /analytics/geo

Clicks grouped by country.

{
"success": true,
"data": {
"analytics": [
{ "country_code": "US", "clicks": 5200, "unique_visitors": 3800 },
{ "country_code": "DE", "clicks": 1100, "unique_visitors": 900 }
],
"usage": { ... }
}
}

GET /analytics/devices

Clicks by device type, browser, and OS.

{
"success": true,
"data": {
"analytics": [
{ "device_type": "desktop", "browser": "Chrome", "os": "Windows", "clicks": 3200 },
{ "device_type": "mobile", "browser": "Safari", "os": "iOS", "clicks": 2100 }
],
"usage": { ... }
}
}

GET /analytics/referrers

Traffic sources.

{
"success": true,
"data": {
"analytics": [
{ "referrer": "google.com", "clicks": 2400, "unique_visitors": 1900 },
{ "referrer": "direct", "clicks": 1800, "unique_visitors": 1500 }
],
"usage": { ... }
}
}

GET /analytics/hourly

Click distribution by hour of day (0–23 UTC).

{
"success": true,
"data": {
"analytics": [
{ "hour": 9, "clicks": 520, "unique_visitors": 410 },
{ "hour": 14, "clicks": 680, "unique_visitors": 490 }
],
"usage": { ... }
}
}