---
title: "List Webinars"
method: GET
path: "/webinars"
tags: ["Webinars"]
---

# List Webinars

`GET /webinars`

## Request

- Base URL: `https://api.wistia.com/modern`
- URL: `https://api.wistia.com/modern/webinars`
- Auth: HTTP bearer

Lists webinars belonging to the account. This endpoint can also be used to
do a batch fetch based off of the hashed id.

## Requires api token with one of the following permissions
```
Read all data
```

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 naming a webinar (any permission) can also be used; it
lists the webinars the token names.

## Query parameters

- `page` integer
- `per_page` integer
- `cursor` object
  - `enabled` 0 | 1: If `cursor[enabled]` is set to 1, the first result set will be fetched with cursor pagination enabled. This values is ignored if `cursor[before]` or `cursor[after]` are set.
  - `before` string: If `cursor[before]` is set then cursor pagination is enabled and all records before the cursor up to the `per_page` are returned. This feature is useful for fetching "new records", for example, in a "pull to refersh" feature when showing records in a descending order.
  - `after` string: If `cursor[after]` is set then cursor pagination is enabled and all records after the cursor up to the `per_page` are returned.
- `sort_by` 'scheduled_for' | 'title' | 'created' | 'updated' | 'id'
- `sort_direction` 0 | 1
- `hashed_ids[]` string[]
- `started` 'true' | 'false'

## Headers

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

## Response `200`

Successful response with a list of webinars

- object[]
  - `id` string, required: The hashed ID of the webinar
  - `hashed_id` string, required: The hashed ID of the webinar. Identical to `id`, named to match every other Wistia resource.
  - `title` string, required: The title of the webinar
  - `description` string, nullable: The description of the webinar
  - `scheduled_for` string, date-time, nullable: The scheduled start time in W3C format with timezone
  - `event_duration` integer, nullable: Duration of the webinar in minutes
  - `time_zone` string, required: The IANA time zone identifier the webinar is scheduled in
  - `lifecycle_status` 'pending' | 'ready' | 'starting' | 'started' | 'ended' | 'vod_ready' | 'failed', required: The current lifecycle status of the webinar. This is a read-only, system-managed field that Wistia updates as the event moves through its lifecycle; it cannot be set or changed via the API.
  - `registration_status` string, required: Registration status of the event
  - `created_at` string, date-time, required: When the event was created (UTC)
  - `updated_at` string, date-time, required: When the event was last updated (UTC)
  - `audience_link` string, required: Link for the audience to join the event
  - `host_link` string, required: Link for the host to manage the event
  - `panelist_link` string, required: Link for panelists to join the event
  - `thumbnail_url` string, nullable: URL of the webinar's custom thumbnail image, or null if no custom thumbnail has been set
  - `folder` object, nullable: The folder (project) this webinar belongs to
    - `id` string, required: A unique alphanumeric identifier for the record.
    - `index_url` string, required: A URL for fetching all the records of the given record type. You can pass hashed_ids as a param with multiple values to do a batch fetch for this records type.
    - `url` string, required: A URL that can be used to fetch this record.
  - `cursor` string, nullable: A cursor for stable pagination based on current `sort_by` order. You can pass this to `cursor[before]` or `cursor[after]` as a parameter to fetch the records before or after this record in the same sort order. This is only populated if records were fetched with `cursor[enabled]`, or `cursor[before]` or `cursor[after]`.

## Other responses

- `400`: Bad request
- `401`: Unauthorized, invalid or missing token
- `403`: Webinar feature not available
- `500`: Internal server error

## Changes

- **2026-11-03** `b86cb2a7b420`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/wistia/apis/data-api/changes/webinars/get.md)

---

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