---
title: "Show Media Analytics Timeseries"
method: GET
path: "/analytics/medias/{mediaId}/timeseries"
tags: ["Analytics:Media"]
---

# Show Media Analytics Timeseries

`GET /analytics/medias/{mediaId}/timeseries`

## Request

- Base URL: `https://api.wistia.com/modern`
- URL: `https://api.wistia.com/modern/analytics/medias/{mediaId}/timeseries`
- Auth: HTTP bearer

Retrieve analytics timeseries data for a video over a date range with configurable
granularity. Returns an array of timestamped metric buckets.

The date range between `start_date` and `end_date` must not exceed 2 years.


## Requires api token with one of the following permissions
```
Read detailed stats
```

Tokens with the "Act with a team member's permissions" permission
(`all:delegate_to_contact_permissions` scope) can also be used. Requests
made with such a token are authorized using the permissions of the
contact assigned to the token.

An [expiring access token](https://docs.wistia.com/reference/post_expiring-token)
created with the `all:delegate_to_contact_permissions` scope and an
authorization granting the `view-stats` permission on this media can also
be used.

## Path parameters

- `mediaId` string, required: The hashed ID of the media (e.g., "4d23503f70")

## Query parameters

- `start_date` string, date, required
- `end_date` string, date, required
- `granularity` 'daily' | 'weekly' | 'monthly', required

## Headers

- `X-Wistia-API-Version` string, required

## Response `200`

Success response with timeseries analytics data.

- object[]
  - `timestamp` string, date-time: The start of the time bucket in ISO 8601 format.
  - `unique_loads` integer, nullable: The number of unique video loads.
  - `unique_plays` integer, nullable: The number of unique video plays.
  - `plays` integer, nullable: The total number of video plays.
  - `play_rate` number, float, nullable: The percentage of loads that resulted in a play (between 0 and 1).
  - `played_time` integer, nullable: Total time spent watching the video in seconds.
  - `unique_visitors` integer, nullable: The number of unique visitors who loaded the video.
  - `engagement_rate` number, float, nullable: The average percentage of the video watched (between 0 and 1).
  - `cta_impressions` integer, nullable: The number of times a call-to-action was shown.
  - `cta_conversions` integer, nullable: The number of times a call-to-action was clicked.
  - `cta_conversion_rate` number, float, nullable: The rate of CTA clicks over impressions (between 0 and 1).
  - `form_conversions` integer, nullable: The number of form submissions.

## Other responses

- `400`: Bad request
- `401`: Unauthorized, invalid or missing token
- `403`: Forbidden, token is valid but account does not have access to feature
- `404`: Media not found or does not belong to account
- `500`: Internal server error
- `503`: Analytics service is temporarily unavailable

---

[API](https://skmtc.dev/wistia/apis/analytics-api.md) - [All operations](https://skmtc.dev/wistia/apis/analytics-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wistia/apis/analytics-api/revisions/51b37cd3d37c?raw)
