Get Time On Page Report

Returns the average time on page over a time window — as a single aggregate value, or bucketed by day or week with `granularityPeriod`. Choose how the average is computed with `metricScope` (per session, user, or pageview). Filter the report with top-level query parameters (`country`, `deviceType`, `pagePath`, etc.) or via the `filter` parameter for multi-value and negation matching. <Warning title="Analyze add-on required">This endpoint requires a workspace with the Analyze add-on.</Warning> <Note title="Concurrency limit: 1 request at a time">Each access token can have one Analyze request in flight at a time, across all Analyze endpoints. Additional concurrent requests return `429 Too Many Requests`; wait for your in-flight request to finish, or for the `Retry-After` interval, then retry.</Note> Required scope | `sites:read`

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

site_idstringRequiredformat: "objectid"
Unique identifier for a Site

Query parameters

startTimestringRequiredformat: "date-time"

Inclusive start of the reporting window. Must be a UTC timestamp in ISO 8601 / RFC 3339 format ending in Z (for example, 2026-04-01T00:00:00Z); numeric offsets such as -04:00 or +00:00 are not accepted. Must be on or after 2025-04-09T00:00:00Z.

endTimestringRequiredformat: "date-time"

Exclusive end of the reporting window. Must be a UTC timestamp in ISO 8601 / RFC 3339 format ending in Z (for example, 2026-04-08T00:00:00Z); numeric offsets such as -04:00 or +00:00 are not accepted. Must be greater than startTime and within 100 days of it.

metricScopeenumRequired

How the average time on page is computed — per session, user, or pageview.

Allowed values:
granularityPeriodenumOptional

Bucket size for the time series. Omit for a single aggregate value covering the window; day or week returns one value per bucket.

Allowed values:
deviceTypeenumOptional
Restrict the report to a single device type.
Allowed values:
countrystringOptional=2 characters

Restrict the report to a single country. ISO 3166-1 alpha-2 (two letters, normalized to uppercase).

pagePathstringOptional
Restrict the report to a single page path.
trafficSourcestringOptional

Restrict the report to a single traffic source code (for example, SO for Organic Search).

referrerstringOptional
Restrict the report to a single referrer domain.
browserstringOptional
Restrict the report to a single browser.
utmCampaignstringOptional

Restrict the report to a single utm_campaign value.

utmMediumstringOptional

Restrict the report to a single utm_medium value.

utmSourcestringOptional

Restrict the report to a single utm_source value.

filterobjectOptional
Filter the report by dimension. Use bracket notation. Scalars take a single value (`filter[country][eq]=US`, `filter[country][ne]=US`). Arrays use indexed brackets (`filter[country][in][0]=US&filter[country][in][1]=CA`, `filter[country][nin][0]=US&filter[country][nin][1]=CA`). Each dimension entry takes at least one of `eq`, `in`, `ne`, or `nin`. Filter a given dimension in one place — either a top-level query parameter or a `filter` entry. See the `TimeOnPageFilter` schema for the full list of supported dimensions.

Response

Average time on page for the requested window and filters.
reportenum
Discriminator identifying the report type.
windowobject

A reporting time window. endTime must be greater than startTime.

metricScopeenum

The unit each averageSeconds value is averaged over.

  • session: average time on page per session.
  • user: average time on page per unique user.
  • pageview: average time on page per pageview.
datalist of objects

Average time on page over the requested window — one aggregate point when granularityPeriod is omitted, otherwise one point per bucket.

granularityPeriodenum

Bucket size for the time series. Omit it to get a single aggregate value covering the whole window; day returns one value per day and week one value per week. Buckets are aligned to UTC.

filterobject

Filter the time on page report by dimension. Each property is an optional set of AnalyzeFilterOperators (eq, in, ne, nin) applied to the named dimension. Filter a given dimension in one place — either inside filter or as a top-level query parameter.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error