List the sizes of browser window visitors used
/v1/results/analytics/browser-sizesLists how wide visitors' browser windows were, grouped into sizes, with the visitors and page views at each, smallest first. It answers with a plain list, not a table.
A size is a range of window widths, not a kind of device: a phone turned sideways, or a narrow desktop window, can count as Tablet. Each size runs from the breakpoint of the size before it up to its own. By default there are three:
| Size | Window width |
|---|---|
Mobile | up to 425 pixels |
Tablet | 426 to 1,024 |
Desktop | wider than 1,024 (its breakpoint reads 1440) |
With simple set to false, there are seven: Mobile (small) up to 320, Mobile (medium) up to 375, Mobile (large) up to 425, Tablet up to 768, Desktop (small) up to 1,024, Desktop (medium) up to 1,440 and Desktop (large) wider (its breakpoint reads 2560).
Two things can make the figures differ from other queries. limit counts distinct window widths, before they are grouped, so only the ten most-visited widths are counted by default; on a busy website, send a larger limit to count them all. And visitors adds up each width's visitors, so a visitor who resized their window can be counted more than once. pageViews adds up correctly.
curl "https://api.eu.silktide.com/v1/results/analytics/browser-sizes?view=all&period=last-90-days" \
-H "Authorization: silktide token=$SILKTIDE_API_KEY"{
"result": [
{
"screenSizeName": "Mobile",
"breakpoint": 425,
"pageViews": 1111,
"visitors": 442
},
{
"screenSizeName": "Tablet",
"breakpoint": 1024,
"pageViews": 208,
"visitors": 84
},
{
"screenSizeName": "Desktop",
"breakpoint": 1440,
"pageViews": 706,
"visitors": 278
}
],
"selector": "/v1/results/analytics/browser-sizes",
"duration": 0.01
}Request
Query parameters
viewstringmatches^(all|[1-9]\d*)$The analytics view to read: its id, the number after
/analytics/in its address in Silktide, orallfor all of the account's analytics. Send this orwebsiteId.websiteIdintegerat least 1Instead of
view, a website whose analytics to read. The website must have Analytics set up.sectionIdintegerWith
websiteId, a section of the website. Defaults to0, the whole website.periodstringThe date range. Defaults to
all. The spaced forms (-7 days,month to date) are older names that keep working.customneedsfromandto.One of
alltodaylast-7-dayslast-30-dayslast-90-daysmonth-to-datelast-monthyear-to-datelast-12-monthscustom-7 days-30 days-90 days-1 monthmonth to dateyear to date-12 monthsfromstringWith
period=custom, the first day, such as2026-10-01.tostringWith
period=custom, the last day.timezonestringThe IANA time zone days are read in, such as
America/New_York. Defaults toUTC.filtersmap of stringsOnly visits matching every filter, keyed by what is filtered:
filters[url]=contains:/blog. Each value is{operator}:{value}, with operatoris,not,contains,starts,gtorlt. Keys includeurl,hostName,entryUrl,exitUrl,event,outgoingUrl,referrer,source,medium,campaign,content,term,countryCode,regionCode,language,deviceType(desktop,tabletormobile),operatingSystemandbrowser.simplebooleanfalsefor seven finer sizes, fromMobile (small)toDesktop (large), instead ofMobile,TabletandDesktop. Defaults totrue. In a query string, send0orfalse.limitintegerat least 1How many distinct window widths to count, most visitors first, before they are grouped into sizes. Defaults to
10.
Response
200JSON.
resultlist of objectsrequiredThe answer.
Show 4 fieldsHide fields
screenSizeNamestringrequiredThe size:
Mobile,TabletorDesktop, or withsimplefalse,Mobile (small),Mobile (medium),Mobile (large),Tablet,Desktop (small),Desktop (medium)orDesktop (large).breakpointintegerrequiredat least 1The widest browser window the size covers, in CSS pixels, such as
425. The widest size also covers every window wider than its breakpoint.pageViewsintegerrequiredPage views in a window of the size.
visitorsintegerrequiredVisitors in a window of the size, added up across the window widths it covers, so someone seen at two widths counts twice.
selectorstringrequiredThe query that answered, as its path:
/v1/results/scores.durationnumberrequiredSeconds Silktide took to answer.
Errors
| Status | Type | When |
|---|---|---|
| 404 | ModelNotFound | No view or website with that id exists in the account, or the API key's user cannot see it. |
| 403 | AccessDenied | The API key's user cannot read that analytics view. |
| 200 | ModelNotFound | The website has no Analytics set up. The body is an error despite the status. |
| 200 | InvalidRequest | Neither view nor websiteId was sent. The error's own status is 400 and properties.field is view. The body is an error despite the status. |
| 200 | InvalidArgument | A filter names a key or operator Analytics does not know. The body is an error despite the status. |
| 200 | InvalidArgument | period is not one of its values, or is custom without both from and to. The body is an error despite the status. |
| 401 | NotLoggedIn | No API key was sent, or it is not a key for this region.(any operation) |
| 429 | TooManyRequests | Too many requests to this path in five seconds. Retry after the number of seconds in the Retry-After header, which properties.retryAfter repeats.(any operation) |
| 503 | - | Silktide is busy. Retry after the number of seconds in the Retry-After header.(any operation) |
Every error has the same body. See Errors.
Access
- Permission
- View analytics view (View all analytics for `view=all`)
- Plan feature
- None
- Edition
- Silktide 4 and Silktide 5
- Cost
- Free
- Available since
- v1.0.0
Try it
Sends a real request to your account from this browser. Your key stays in this tab and goes only to the Silktide API.