---
title: "Update Webinar"
method: PUT
path: "/webinars/{id}"
tags: ["Webinars"]
---

# Update Webinar

`PUT /webinars/{id}`

## Request

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

Updates an existing webinar.

## Requires api token with one of the following permissions
```
Read, update & delete anything
```

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 `update` permission on this webinar can also
be used. The `update` permission also allows registering attendees and
managing the webinar's collaborators.

## Path parameters

- `id` string, required

## Headers

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

## Request body

- object
  - `webinar` object
    - `title` string: The title of the webinar
    - `description` string: The description of the webinar
    - `scheduled_for` string, date-time: The scheduled start time as a UTC formatted ISO 8601 string (offset `Z` or `+00:00`).
    - `event_duration` integer: Duration of the webinar in minutes (minimum 15)
    - `time_zone` string: The IANA time zone identifier the webinar is scheduled in.
    - `folder_id` string: Hashed ID of the folder to move this webinar to. Can only be changed before the webinar has started.

## Response `200`

Webinar updated successfully

- object: A webinar is an event which allows you to stream a video to multiple participants. See our [Webinars Guide](https://support.wistia.com/en/articles/8288501-getting-started-with-webinars) for more info.
  - `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

- `401`: Unauthorized, invalid or missing token
- `403`: Webinar feature not available
- `404`: Webinar not found
- `422`: Validation errors
- `500`: Internal server error

## Changes

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

[Operation history](https://skmtc.dev/wistia/apis/data-api/changes/webinars/:id/put.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)
