Skip to content
Menu
SilktideDevelopers

List the sizes of browser window visitors used

GET/v1/results/analytics/browser-sizes
View as Markdown

Lists 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:

SizeWindow width
Mobileup to 425 pixels
Tablet426 to 1,024
Desktopwider 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.

Request
curl "https://api.eu.silktide.com/v1/results/analytics/browser-sizes?view=all&period=last-90-days" \
  -H "Authorization: silktide token=$SILKTIDE_API_KEY"
Response: Mobile, tablet and desktop
{
  "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, or all for all of the account's analytics. Send this or websiteId.

  • websiteIdintegerat least 1

    Instead of view, a website whose analytics to read. The website must have Analytics set up.

  • sectionIdinteger

    With websiteId, a section of the website. Defaults to 0, the whole website.

  • periodstring

    The date range. Defaults to all. The spaced forms (-7 days, month to date) are older names that keep working. custom needs from and to.

    One ofalltodaylast-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 months

  • fromstring

    With period=custom, the first day, such as 2026-10-01.

  • tostring

    With period=custom, the last day.

  • timezonestring

    The IANA time zone days are read in, such as America/New_York. Defaults to UTC.

  • filtersmap of strings

    Only visits matching every filter, keyed by what is filtered: filters[url]=contains:/blog. Each value is {operator}:{value}, with operator is, not, contains, starts, gt or lt. Keys include url, hostName, entryUrl, exitUrl, event, outgoingUrl, referrer, source, medium, campaign, content, term, countryCode, regionCode, language, deviceType (desktop, tablet or mobile), operatingSystem and browser.

  • simpleboolean

    false for seven finer sizes, from Mobile (small) to Desktop (large), instead of Mobile, Tablet and Desktop. Defaults to true. In a query string, send 0 or false.

  • limitintegerat least 1

    How many distinct window widths to count, most visitors first, before they are grouped into sizes. Defaults to 10.

Response

200JSON.

  • resultlist of objectsrequired

    The answer.

    Show 4 fields
    • screenSizeNamestringrequired

      The size: Mobile, Tablet or Desktop, or with simple false, Mobile (small), Mobile (medium), Mobile (large), Tablet, Desktop (small), Desktop (medium) or Desktop (large).

    • breakpointintegerrequiredat least 1

      The widest browser window the size covers, in CSS pixels, such as 425. The widest size also covers every window wider than its breakpoint.

    • pageViewsintegerrequired

      Page views in a window of the size.

    • visitorsintegerrequired

      Visitors in a window of the size, added up across the window widths it covers, so someone seen at two widths counts twice.

  • selectorstringrequired

    The query that answered, as its path: /v1/results/scores.

  • durationnumberrequired

    Seconds Silktide took to answer.

Errors

StatusTypeWhen
404ModelNotFoundNo view or website with that id exists in the account, or the API key's user cannot see it.
403AccessDeniedThe API key's user cannot read that analytics view.
200ModelNotFoundThe website has no Analytics set up. The body is an error despite the status.
200InvalidRequestNeither 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.
200InvalidArgumentA filter names a key or operator Analytics does not know. The body is an error despite the status.
200InvalidArgumentperiod is not one of its values, or is custom without both from and to. The body is an error despite the status.
401NotLoggedInNo API key was sent, or it is not a key for this region.(any operation)
429TooManyRequestsToo 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.