---
title: "POST /v1/designs/{designId}/analytics/page-views"
method: POST
path: "/v1/designs/{designId}/analytics/page-views"
tags: ["analytics"]
---

# POST /v1/designs/{designId}/analytics/page-views

`POST /v1/designs/{designId}/analytics/page-views`

<Warning>

This API is currently provided as a preview. Be aware of the following:

- There might be unannounced breaking changes.
- Any breaking changes to preview APIs won't produce a new [API version](https://www.canva.dev/docs/connect/versions/).
- Public integrations that use preview APIs will not pass the review process, and can't be made available to all Canva users.

</Warning>

<Availability>
To use this API, your integration must act on behalf of a user who is a member of a [Canva Enterprise](https://www.canva.com/enterprise/) organization.
</Availability>

Lists the page-level view duration data for a design.

The request body can include page filters and pagination controls.

## Path parameters

- `designId` string, required

## Request body

- GetDesignAnalyticsPageViewsRequest — Filters and pagination controls for page-level analytics.
  - `page_ids` string[], required — The design page IDs to retrieve view duration data for.
  - `limit` integer — The maximum number of page results to return per page.
  - `continuation` string — If the success response contains a continuation token, there are more page results you can list. You can use this token in the request body and retrieve more page results from the list. To retrieve all page results, you might need to make multiple requests.
  - `filter` union — A filter for page view data.
    - object
      - `type` 'by_viewer', required
      - `link_id` string — Filters to viewer traffic from a specific trackable link. Omit this field to target viewer traffic that did not come from a trackable link.
      - `viewer_id` string, required — The viewer ID to filter by.
    - object
      - `type` 'for_editor', required
    - object
      - `type` 'by_link', required
      - `link_id` string, required — The trackable link ID to filter by.

## Response `200`

OK

- GetDesignAnalyticsPageViewsResponse — Successful response from a `getDesignAnalyticsPageViews` request.
  - `items` PageViewDuration[], required — The list of page view durations.
    - `page_id` string — The page ID. This is omitted for design types that do not support page IDs.
    - `total_view_duration_seconds` integer, required — The total time spent viewing this page, in seconds.
    - `average_duration_seconds` number, double — The average time spent viewing this page, in seconds. This is omitted for `by_viewer` filters.
    - `unique_view_count` integer — The number of unique viewers for this page. This is omitted for `by_viewer` filters.
  - `continuation` string — If the success response contains a continuation token, there are more page results you can list. You can use this token in the request body and retrieve more page results from the list. To retrieve all page results, you might need to make multiple requests.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests
- `default` — Error Response

---

[API](https://skmtc.net/canva/apis/canva-connect-api.md) · [All operations](https://skmtc.net/canva/apis/canva-connect-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/canva/canva-connect-api/versions/499c392c7720/schema)
