---
title: "Get page analytics"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.sureshake.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Sureshake API › reports

`GET /v2/reports/{id}/page-analytics`

## Path parameters

- `id` (`report-get-page-analytics.path.id`; string, required)
  - format `uuid`

## Code samples

### cURL

```bash
curl --request GET \
  --url 'https://api.sureshake.com/v2/reports/<id>/page-analytics'
```

### TypeScript

```typescript
const url = 'https://api.sureshake.com/v2/reports/<id>/page-analytics';
const options = {method: 'GET'};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.sureshake.com/v2/reports/<id>/page-analytics"

response = requests.get(url)

print(response.text)
```

## Responses

### 200

Default Response

#### Example

```json
{
  "data": {
    "reportId": "836df459-dc40-4aa1-972a-6eb0a864dff9",
    "periodDays": 90,
    "pages": [
      {
        "page": 0,
        "totalMs": 0,
        "viewers": 0
      }
    ],
    "viewers": [
      {
        "userId": "string",
        "name": "string",
        "email": "string",
        "totalMs": 0,
        "pagesViewed": 0,
        "lastViewedAt": "2019-08-24T14:15:22Z",
        "pages": [
          {
            "page": 0,
            "ms": 0
          }
        ]
      }
    ]
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
```

- `data` (`report-get-page-analytics.response.200.data`; object, required)
  - `reportId` (`report-get-page-analytics.response.200.data.reportId`; string, required)
    - format `uuid`
  - `periodDays` (`report-get-page-analytics.response.200.data.periodDays`; number, required)
    - one of `90`
  - `pages` (`report-get-page-analytics.response.200.data.pages`; array<object>, required)
    - `page` (`report-get-page-analytics.response.200.data.pages.page`; integer, required)
    - `totalMs` (`report-get-page-analytics.response.200.data.pages.totalMs`; integer, required)
      - min 0
    - `viewers` (`report-get-page-analytics.response.200.data.pages.viewers`; integer, required)
      - min 0
  - `viewers` (`report-get-page-analytics.response.200.data.viewers`; array<object>, required)
    - `userId` (`report-get-page-analytics.response.200.data.viewers.userId`; string, required)
    - `name` (`report-get-page-analytics.response.200.data.viewers.name`; string, required, nullable)
    - `email` (`report-get-page-analytics.response.200.data.viewers.email`; string, required, nullable)
    - `totalMs` (`report-get-page-analytics.response.200.data.viewers.totalMs`; integer, required)
      - min 0
    - `pagesViewed` (`report-get-page-analytics.response.200.data.viewers.pagesViewed`; integer, required)
      - min 0
    - `lastViewedAt` (`report-get-page-analytics.response.200.data.viewers.lastViewedAt`; string, required)
      - format `date-time`
    - `pages` (`report-get-page-analytics.response.200.data.viewers.pages`; array<object>, required)
      - `page` (`report-get-page-analytics.response.200.data.viewers.pages.page`; integer, required)
      - `ms` (`report-get-page-analytics.response.200.data.viewers.pages.ms`; integer, required)
- `meta` (`report-get-page-analytics.response.200.meta`; object, optional)
  - `timestamp` (`report-get-page-analytics.response.200.meta.timestamp`; string, required)
    - format `date-time`

### 400

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-get-page-analytics.response.400.error`; object, required)
  - `code` (`report-get-page-analytics.response.400.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-get-page-analytics.response.400.error.message`; string, required) — Human-readable error message
  - `details` (`report-get-page-analytics.response.400.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-get-page-analytics.response.400.error.traceId`; string, optional) — Unique ID for log correlation

### 401

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-get-page-analytics.response.401.error`; object, required)
  - `code` (`report-get-page-analytics.response.401.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-get-page-analytics.response.401.error.message`; string, required) — Human-readable error message
  - `details` (`report-get-page-analytics.response.401.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-get-page-analytics.response.401.error.traceId`; string, optional) — Unique ID for log correlation

### 403

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-get-page-analytics.response.403.error`; object, required)
  - `code` (`report-get-page-analytics.response.403.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-get-page-analytics.response.403.error.message`; string, required) — Human-readable error message
  - `details` (`report-get-page-analytics.response.403.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-get-page-analytics.response.403.error.traceId`; string, optional) — Unique ID for log correlation

### 404

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-get-page-analytics.response.404.error`; object, required)
  - `code` (`report-get-page-analytics.response.404.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-get-page-analytics.response.404.error.message`; string, required) — Human-readable error message
  - `details` (`report-get-page-analytics.response.404.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-get-page-analytics.response.404.error.traceId`; string, optional) — Unique ID for log correlation

### 500

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-get-page-analytics.response.500.error`; object, required)
  - `code` (`report-get-page-analytics.response.500.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-get-page-analytics.response.500.error.message`; string, required) — Human-readable error message
  - `details` (`report-get-page-analytics.response.500.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-get-page-analytics.response.500.error.traceId`; string, optional) — Unique ID for log correlation


Source: https://docs.sureshake.com/reference/report-get-page-analytics/index.md
