---
title: "Show Webinar Audience"
method: GET
path: "/analytics/webinars/{webinarId}/audience"
tags: ["Analytics:Webinar"]
---

# Show Webinar Audience

`GET /analytics/webinars/{webinarId}/audience`

## Request

- Base URL: `https://api.wistia.com/modern`
- URL: `https://api.wistia.com/modern/analytics/webinars/{webinarId}/audience`
- Auth: HTTP bearer

Retrieve audience data for a webinar. Returns a paginated list of
registrants with their attendance status, engagement metrics,
attribution data, and per-attendee histograms.


## 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 webinar can also
be used.

## Path parameters

- `webinarId` string, required: The hashed ID of the webinar (e.g., "abc123xyz")

## Query parameters

- `per_page` integer
- `cursor` string

## Headers

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

## Response `200`

Success response with webinar audience data.

- object
  - `data` object[]
    - `first_name` string, nullable: The registrant's first name.
    - `last_name` string, nullable: The registrant's last name.
    - `email` string, nullable: The registrant's email address.
    - `phone_number` string, nullable: The registrant's phone number.
    - `company` string, nullable: The registrant's company name.
    - `job_title` string, nullable: The registrant's job title.
    - `country` string, nullable: The registrant's country.
    - `registered_at` string, date-time, nullable: When the registrant registered in ISO 8601 format.
    - `attended_at` string, date-time, nullable: When the registrant joined the live event in ISO 8601 format.
    - `attendance_status` string, nullable: Whether the registrant attended the event.
    - `restriction_status` string, nullable: The registrant's restriction status (e.g., approved, blocked).
    - `origin_method` string, nullable: How the registrant was added (e.g., registration_form, import).
    - `utm_campaign` string, nullable: The UTM campaign that referred this registrant.
    - `utm_source` string, nullable: The UTM source that referred this registrant.
    - `utm_medium` string, nullable: The UTM medium that referred this registrant.
    - `referrer_domain` string, nullable: The referring domain for this registrant.
    - `ip_country` string, nullable: The registrant's country based on IP geolocation.
    - `ip_city` string, nullable: The registrant's city based on IP geolocation.
    - `engagement_rate` number, float, nullable: The registrant's engagement rate during the event (between 0 and 1).
    - `focused_rate` number, float, nullable: The registrant's focused viewing rate during the event (between 0 and 1).
    - `played_time` integer, nullable: Total time the registrant watched in seconds.
    - `focused_played_time` integer, nullable: Total time the registrant watched with the tab focused in seconds.
    - `chat_count` integer, nullable: The number of chat messages sent by this registrant.
    - `annotation_click_count` integer, nullable: The number of annotation clicks by this registrant.
    - `poll_responses_count` integer, nullable: The number of poll responses submitted by this registrant.
    - `attendee_histogram` integer[], nullable: Per-bucket attendance data for this registrant.
    - `focused_attendee_histogram` integer[], nullable: Per-bucket focused attendance data for this registrant.
    - `chats` object[]: Chat messages sent by this registrant with timestamps.
      - `rounded_player_position` integer: The approximate position in the event when the chat was sent (in seconds).
      - `chats` string[]: The chat message content.
  - `page_info` object
    - `has_next_page` boolean: Whether there are more results after this page.
    - `has_previous_page` boolean: Whether there are results before this page.
    - `end_cursor` string, nullable: Cursor to use for fetching the next page.
    - `start_cursor` string, nullable: Cursor to use for fetching the previous page.

## Other responses

- `401`: Unauthorized, invalid or missing token
- `403`: Forbidden, token is valid but account does not have access to feature
- `404`: Webinar 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)
