Viso.li

Link Stats Summary

GEThttps://www.viso.li/api/link/:slug/stats/summary

Returns counted totals for a short link you own: visits, unique visitors, countries, and the breakdowns your plan includes.

Without dates, the range is the last 7 days through today (start of day, server time).

deviceTypes and operatingSystems are null on FREE. referers.items is null below PRO. referers.unique is always a number.

Send Authorization: Bearer sk_api_your_api_key on every request. See authentication.

Path parameters

FieldTypeDescription
slugstringRequired. Public slug of the shortened link.

Query parameters

FieldTypeDescription
startDatestringISO 8601 start of the range. Defaults to 7 days ago.
endDatestringISO 8601 end of the range. Defaults to today.

Example request

This reads the counted overview for 12–19 October 2026. On FREE, deviceTypes and operatingSystems are null. Below PRO, referers.items is null.

1curl "https://www.viso.li/api/link/abc123/stats/summary?startDate=2026-10-12T00:00:00.000Z&endDate=2026-10-19T00:00:00.000Z" \
2 -H "Authorization: Bearer sk_api_your_api_key"

Success response

Returns 200 OK. deviceTypes and operatingSystems are null on FREE. referers.items is null below PRO.

response.json
1{
2 "slug": "abc123",
3 "startDate": "2026-10-12T00:00:00.000Z",
4 "endDate": "2026-10-19T00:00:00.000Z",
5 "visits": 120,
6 "visitors": 80,
7 "referers": {
8 "unique": 4,
9 "items": [
10 {
11 "hostname": "google.com",
12 "count": 40
13 }
14 ]
15 },
16 "countries": [
17 {
18 "code": "US",
19 "name": "United States",
20 "count": 70
21 }
22 ],
23 "deviceTypes": [
24 {
25 "type": "DESKTOP",
26 "count": 90
27 }
28 ],
29 "operatingSystems": [
30 {
31 "os": "macOS",
32 "count": 50
33 }
34 ]
35}

Response fields

FieldTypeDescription
slugstringRequired. The requested short-link slug.
startDatestringRequired. ISO 8601 start of the resolved range.
endDatestringRequired. ISO 8601 end of the resolved range.
visitsnumberRequired. Total clicks in the range.
visitorsnumberRequired. Unique visitors in the range.
referers.uniquenumberRequired. Number of distinct referring hostnames.
referers.itemsobject[] | nullRequired. Hostname counts. Null below PRO.
referers.items[].hostnamestringRequired. Referring hostname.
referers.items[].countnumberRequired. Clicks from this hostname.
countriesobject[]Required. Clicks by country.
countries[].codestringRequired. ISO country code.
countries[].namestringRequired. Country name.
countries[].countnumberRequired. Clicks from this country.
deviceTypesobject[] | nullRequired. Clicks by device type. Null on FREE. Included on STARTER, PRO, and ENTERPRISE.
deviceTypes[].typestringRequired. MOBILE, TABLET, DESKTOP, BOT, or UNKNOWN.
deviceTypes[].countnumberRequired. Clicks from this device type.
operatingSystemsobject[] | nullRequired. Clicks by operating system. Null on FREE. Included on STARTER, PRO, and ENTERPRISE.
operatingSystems[].osstringRequired. Operating system name.
operatingSystems[].countnumberRequired. Clicks from this operating system.

Errors

StatusErrorDescription
400Bad RequeststartDate or endDate is not a valid ISO 8601 datetime, or endDate is before startDate.
401UnauthorizedMissing, malformed, or invalid Bearer token.
404Not FoundThe slug does not exist or does not belong to you.
429Too Many RequestsMore than 10 requests per minute and 50 requests per day. Some responses include a Retry-After header.
500Internal Server ErrorUnexpected server error. Retry the request.