Wistia Webinars API

The Webinars API from Wistia — 3 operation(s) for webinars.

Operations 6

GET /webinars List Webinars
POST /webinars Create Webinar
GET /webinars/{id} Show Webinar
PUT /webinars/{id} Update Webinar
DELETE /webinars/{id} Delete Webinar
POST /webinars/{id}/registrations Register for webinar #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/wistia-webinars-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

wistia-webinars-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wistia Webinars API
  version: '1.0'
  description: 'Operations tagged Webinars across 3 of this provider''s published API definitions: wistia-data-api-2026-01-openapi.yml, wistia-data-api-modern-edge-openapi.yml, wistia-webinars-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.wistia.com/modern
- url: https://api.wistia.com/v1
  description: Wistia Data API production server
tags:
- name: Webinars
  x-displayName: Webinars
paths:
  /webinars:
    get:
      summary: List Webinars
      description: 'Lists webinars belonging to the account. This endpoint can also be used to

        do a batch fetch based off of the hashed id.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read all data

        ```

        <!--- /HIDE-MCP -->

        '
      parameters:
      - name: page
        in: query
        description: 'The page number to retrieve. This cannot be combined with `cursor`,

          pagination.

          '
        required: false
        schema:
          type: integer
      - name: per_page
        in: query
        description: The number of medias per page. Use this for both offset pagination and cursor pagination.
        required: false
        schema:
          type: integer
      - name: cursor
        in: query
        description: 'If `cursor[enabled]` is set to 1 than cursor pagination is enabled and the

          first set of records are fetched up to the `per_page`. Cursor

          pagination will also be turned on if `cursor[before]` or `cursor[after]`

          are set. Records returned will have a `cursor` property set which can be used to fetch more records in the same `sort_by` ordering.

          The cursor value of the last record can be used to fetch records after the current result set and

          the cursor of the first record can be used to fetch records before the result set.


          NOTE: a cursor value is only valid if the `sort_by` value hasn''t changed from the

          last fetch. For example, you cannot fetch using `sort_by` id and than pass that

          cursor value to a `sort_by` name.

          '
        required: false
        schema:
          unevaluatedProperties: false
          type: object
          properties:
            enabled:
              description: '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.

                '
              type: integer
              enum:
              - 0
              - 1
            before:
              description: 'If `cursor[before]` is set than 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.

                '
              type: string
            after:
              description: 'If `cursor[after]` is set than cursor pagination is enabled and all records

                after the cursor up to the `per_page` are returned.

                '
              type: string
        style: deepObject
      - name: sort_by
        in: query
        description: 'Field to sort by. When using cursor pagination (see cursor param),

          only `id` and `scheduled_for` are supported.

          '
        required: false
        schema:
          type: string
          enum:
          - scheduled_for
          - id
      - name: sort_direction
        in: query
        description: Sort direction (0 = desc, 1 = asc; default is 1)
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      - name: hashed_ids[]
        in: query
        description: Filter by specific webinars IDs
        required: false
        schema:
          type: array
          items:
            type: string
      - name: started
        in: query
        description: Filter by whether the webinar has started. Use "true" for webinars that have started, "false" for webinars that have not started yet
        required: false
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      responses:
        '200':
          description: Successful response with a list of webinars
          content:
            application/json:
              schema:
                type: array
                items:
                  unevaluatedProperties: false
                  type: object
                  description: '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.

                    '
                  properties:
                    id:
                      description: The hashed ID of the webinar
                      type: string
                      examples:
                      - abc123def456
                    title:
                      description: The title of the webinar
                      type: string
                      examples:
                      - 'Wellness Session: Coping with Outie Memories'
                    description:
                      description: The description of the webinar
                      type:
                      - string
                      - 'null'
                      examples:
                      - A comprehensive session on managing work-life balance
                    scheduled_for:
                      description: The scheduled start time in W3C format with timezone
                      type:
                      - string
                      - 'null'
                      format: date-time
                      examples:
                      - '2024-03-20T15:30:00-05:00'
                    event_duration:
                      description: Duration of the webinar in minutes
                      type:
                      - integer
                      - 'null'
                      examples:
                      - 60
                    lifecycle_status:
                      description: Current lifecycle status of the event
                      type: string
                      examples:
                      - scheduled
                    registration_status:
                      description: Registration status of the event
                      type: string
                      examples:
                      - published
                    created_at:
                      description: When the event was created (UTC)
                      type: string
                      format: date-time
                      examples:
                      - '2024-03-15T10:30:00Z'
                    updated_at:
                      description: When the event was last updated (UTC)
                      type: string
                      format: date-time
                      examples:
                      - '2024-03-15T10:30:00Z'
                    audience_link:
                      description: Link for the audience to join the event
                      type: string
                      examples:
                      - https://lumon-industries.wistia.com/live/events/abc123def456
                    host_link:
                      description: Link for the host to manage the event
                      type: string
                      examples:
                      - https://lumon-industries.wistia.com/live/events/abc123def456/onair
                    panelist_link:
                      description: Link for panelists to join the event
                      type: string
                      examples:
                      - https://lumon-industries.wistia.com/live/events/abc123def456/onair/a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    cursor:
                      description: 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]`.
                      type:
                      - string
                      - 'null'
                  required:
                  - id
                  - title
                  - lifecycle_status
                  - registration_status
                  - created_at
                  - updated_at
                  - audience_link
                  - host_link
                  - panelist_link
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    description: Error message detailing the reason for the bad request.
                    type: string
                    examples:
                    - Bad request
                  errors:
                    description: Array of error messages detailing the reasons for the bad request.
                    type: array
                    items:
                      type: string
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '403':
          description: Webinar feature not available
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Webinars are not available on your current plan
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Webinars
      security:
      - BearerAuth: []
    post:
      summary: Create Webinar
      description: 'Creates a new webinar.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read, update & delete anything

        ```

        <!--- /HIDE-MCP -->

        '
      requestBody:
        required: true
        content:
          application/json:
            schema:
              unevaluatedProperties: false
              type: object
              properties:
                folder_id:
                  description: Hashed ID of the folder to place this webinar in. Defaults to the account's default webinar folder if not provided.
                  type: string
                  examples:
                  - abc123def456
                time_zone:
                  description: The IANA time zone identifier the webinar is scheduled in.
                  type: string
                  examples:
                  - America/New_York
                title:
                  description: The title of the webinar
                  type: string
                  examples:
                  - 'Wellness Session: Coping with Outie Memories'
                description:
                  description: The description of the webinar
                  type: string
                  examples:
                  - A comprehensive session on managing work-life balance
                scheduled_for:
                  description: The scheduled start time in W3C format with timezone
                  type: string
                  format: date-time
                  examples:
                  - '2024-03-20T15:30:00-05:00'
                event_duration:
                  description: Duration of the event in minutes (minimum 15)
                  type: integer
                  examples:
                  - 60
                  minimum: 15
              required:
              - title
              - scheduled_for
              - event_duration
      responses:
        '201':
          description: Webinar created successfully
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                description: '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.

                  '
                properties:
                  id:
                    description: The hashed ID of the webinar
                    type: string
                    examples:
                    - abc123def456
                  title:
                    description: The title of the webinar
                    type: string
                    examples:
                    - 'Wellness Session: Coping with Outie Memories'
                  description:
                    description: The description of the webinar
                    type:
                    - string
                    - 'null'
                    examples:
                    - A comprehensive session on managing work-life balance
                  scheduled_for:
                    description: The scheduled start time in W3C format with timezone
                    type:
                    - string
                    - 'null'
                    format: date-time
                    examples:
                    - '2024-03-20T15:30:00-05:00'
                  event_duration:
                    description: Duration of the webinar in minutes
                    type:
                    - integer
                    - 'null'
                    examples:
                    - 60
                  lifecycle_status:
                    description: Current lifecycle status of the event
                    type: string
                    examples:
                    - scheduled
                  registration_status:
                    description: Registration status of the event
                    type: string
                    examples:
                    - published
                  created_at:
                    description: When the event was created (UTC)
                    type: string
                    format: date-time
                    examples:
                    - '2024-03-15T10:30:00Z'
                  updated_at:
                    description: When the event was last updated (UTC)
                    type: string
                    format: date-time
                    examples:
                    - '2024-03-15T10:30:00Z'
                  audience_link:
                    description: Link for the audience to join the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456
                  host_link:
                    description: Link for the host to manage the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456/onair
                  panelist_link:
                    description: Link for panelists to join the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456/onair/a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  cursor:
                    description: 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]`.
                    type:
                    - string
                    - 'null'
                required:
                - id
                - title
                - lifecycle_status
                - registration_status
                - created_at
                - updated_at
                - audience_link
                - host_link
                - panelist_link
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '403':
          description: Webinar feature not available
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Webinars are not available on your current plan
        '422':
          description: Validation errors
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: string
                    examples:
                    - - Title is required
                      - Event duration must be at least 15 minutes
        '429':
          description: Rate limit exceeded
          content:
            text/plain:
              schema:
                type: string
                examples:
                - Rate limit exceeded
        '500':
          description: Internal server error during webinar creation
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    description: Error message describing the server-side failure.
                    type: string
                  errors:
                    type: array
                    items:
                      type: string
                    examples:
                    - - An error occurred while creating the webinar. Please try again.
      tags:
      - Webinars
      security:
      - BearerAuth: []
    servers:
    - url: https://api.wistia.com/modern
  /webinars/{id}:
    get:
      summary: Show Webinar
      description: 'Returns the webinar associated with the hashed id.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read all data

        ```

        <!--- /HIDE-MCP -->

        '
      parameters:
      - name: id
        in: path
        description: The hashed ID of the webinar
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with the webinar details
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                description: '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.

                  '
                properties:
                  id:
                    description: The hashed ID of the webinar
                    type: string
                    examples:
                    - abc123def456
                  title:
                    description: The title of the webinar
                    type: string
                    examples:
                    - 'Wellness Session: Coping with Outie Memories'
                  description:
                    description: The description of the webinar
                    type:
                    - string
                    - 'null'
                    examples:
                    - A comprehensive session on managing work-life balance
                  scheduled_for:
                    description: The scheduled start time in W3C format with timezone
                    type:
                    - string
                    - 'null'
                    format: date-time
                    examples:
                    - '2024-03-20T15:30:00-05:00'
                  event_duration:
                    description: Duration of the webinar in minutes
                    type:
                    - integer
                    - 'null'
                    examples:
                    - 60
                  lifecycle_status:
                    description: Current lifecycle status of the event
                    type: string
                    examples:
                    - scheduled
                  registration_status:
                    description: Registration status of the event
                    type: string
                    examples:
                    - published
                  created_at:
                    description: When the event was created (UTC)
                    type: string
                    format: date-time
                    examples:
                    - '2024-03-15T10:30:00Z'
                  updated_at:
                    description: When the event was last updated (UTC)
                    type: string
                    format: date-time
                    examples:
                    - '2024-03-15T10:30:00Z'
                  audience_link:
                    description: Link for the audience to join the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456
                  host_link:
                    description: Link for the host to manage the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456/onair
                  panelist_link:
                    description: Link for panelists to join the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456/onair/a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  cursor:
                    description: 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]`.
                    type:
                    - string
                    - 'null'
                required:
                - id
                - title
                - lifecycle_status
                - registration_status
                - created_at
                - updated_at
                - audience_link
                - host_link
                - panelist_link
        '401':
          description: Unauthorized, invalid or missing token
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  code:
                    description: A machine-readable identifier for the specific authorization failure.
                    type: string
                    enum:
                    - unauthorized_credentials
                    - account_inactive
                    - unauthorized_scope
                    - unauthorized_params
                  error:
                    type: string
                    examples:
                    - Invalid credentials.
        '403':
          description: Webinar feature not available
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Webinars are not available on your current plan
        '404':
          description: Webinar not found
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Webinars
      security:
      - BearerAuth: []
    put:
      summary: Update Webinar
      description: 'Updates an existing webinar.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read, update & delete anything

        ```

        <!--- /HIDE-MCP -->

        '
      parameters:
      - name: id
        in: path
        description: The hashed ID of the webinar
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              unevaluatedProperties: false
              type: object
              properties:
                webinar:
                  unevaluatedProperties: false
                  type: object
                  properties:
                    folder_id:
                      description: Hashed ID of the folder to move this webinar to. Can only be changed before the webinar has started.
                      type: string
                      examples:
                      - abc123def456
                    time_zone:
                      description: The IANA time zone identifier the webinar is scheduled in.
                      type: string
                      examples:
                      - America/New_York
                    title:
                      description: The title of the webinar
                      type: string
                      examples:
                      - Updated Webinar Title
                    description:
                      description: The description of the webinar
                      type: string
                      examples:
                      - Updated webinar description
                    scheduled_for:
                      description: The scheduled start time in W3C format with timezone
                      type: string
                      format: date-time
                      examples:
                      - '2024-03-20T15:30:00-05:00'
                    event_duration:
                      description: Duration of the webinar in minutes (minimum 15)
                      type: integer
                      examples:
                      - 90
                      minimum: 15
      responses:
        '200':
          description: Webinar updated successfully
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                description: '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.

                  '
                properties:
                  id:
                    description: The hashed ID of the webinar
                    type: string
                    examples:
                    - abc123def456
                  title:
                    description: The title of the webinar
                    type: string
                    examples:
                    - 'Wellness Session: Coping with Outie Memories'
                  description:
                    description: The description of the webinar
                    type:
                    - string
                    - 'null'
                    examples:
                    - A comprehensive session on managing work-life balance
                  scheduled_for:
                    description: The scheduled start time in W3C format with timezone
                    type:
                    - string
                    - 'null'
                    format: date-time
                    examples:
                    - '2024-03-20T15:30:00-05:00'
                  event_duration:
                    description: Duration of the webinar in minutes
                    type:
                    - integer
                    - 'null'
                    examples:
                    - 60
                  lifecycle_status:
                    description: Current lifecycle status of the event
                    type: string
                    examples:
                    - scheduled
                  registration_status:
                    description: Registration status of the event
                    type: string
                    examples:
                    - published
                  created_at:
                    description: When the event was created (UTC)
                    type: string
                    format: date-time
                    examples:
                    - '2024-03-15T10:30:00Z'
                  updated_at:
                    description: When the event was last updated (UTC)
                    type: string
                    format: date-time
                    examples:
                    - '2024-03-15T10:30:00Z'
                  audience_link:
                    description: Link for the audience to join the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456
                  host_link:
                    description: Link for the host to manage the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456/onair
                  panelist_link:
                    description: Link for panelists to join the event
                    type: string
                    examples:
                    - https://lumon-industries.wistia.com/live/events/abc123def456/onair/a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  cursor:
                    description: 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]`.
                    type:
                    - string
                    - 'null'
                required:
                - id
                - title
                - lifecycle_status
                - registration_status
                - created_at
                - updated_at
                - audience_link
   

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wistia/refs/heads/main/openapi/wistia-webinars-api-openapi.yml