Wistia Channel Episodes API

The Channel Episodes API from Wistia — 6 operation(s) for channel episodes.

Operations 8

GET /channels/{channelHashedId}/channel_episodes/{channelEpisodeId} Show Channel Episode
GET /channels/{channelHashedId}/channel_episodes List Channel Episodes by Channel
POST /channels/{channelHashedId}/channel_episodes Create Channel Episode
GET /channel_episodes List Channel Episodes
PUT /channel_episodes/{channelEpisodeHashedId} Channel Episode Update
DELETE /channel_episodes/{channelEpisodeHashedId} Channel Episode Delete
PUT /channel_episodes/{channelEpisodeHashedId}/publish Publish Channel Episode
PUT /channel_episodes/{channelEpisodeHashedId}/unpublish Un-publish Channel Episode

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-channel-episodes-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-channel-episodes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wistia Channel Episodes API
  version: '1.0'
  description: 'Operations tagged Channel Episodes across 3 of this provider''s published API definitions: wistia-data-api-2026-01-openapi.yml, wistia-data-api-modern-edge-openapi.yml, wistia-data-api-v1-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
tags:
- name: Channel Episodes
  x-wistia-mcp-toolsets: channels
  x-displayName: Channel Episodes
paths:
  /channels/{channelHashedId}/channel_episodes/{channelEpisodeId}:
    get:
      summary: Show Channel Episode
      description: 'Returns the Channel Episode associated with a channel hashed id

        and channel episode hashed id.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read all folder and media data

        ```

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

        '
      parameters:
      - name: channelHashedId
        in: path
        description: The hashed ID of the channel.
        required: true
        schema:
          description: Hashed ID of the channel (e.g., "4d23503f70")
          type: string
      - name: channelEpisodeId
        in: path
        description: The hashed ID of the channel episode.
        required: true
        schema:
          description: Hashed ID of the channel episode (e.g., "4d23503f70")
          type: string
      responses:
        '200':
          description: Channel Episode retrieval successful
          content:
            application/json:
              schema:
                type: object
                description: 'A channel episode represents a media that has been added to a channel. Only published

                  episodes are displayed in a channel.

                  '
                properties:
                  live_stream_event_hashed_id:
                    description: A unique alphanumeric identifier for the channel episode's live stream event, if any. Null when the episode is not linked to a live stream event.
                    type:
                    - string
                    - 'null'
                  id:
                    description: A unique numeric identifier for the channel episode.
                    type: integer
                  channel_hashed_id:
                    description: A unique alphanumeric identifier for the channel episode's channel.
                    type: string
                  created:
                    description: The date when the channel episode was originally created.
                    type: string
                    format: date-time
                  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'
                  description:
                    description: The channel episode's description or episode notes.
                    type: string
                  summary:
                    description: A short summary of the episode that is displayed when space is limited.
                    type: string
                    examples:
                    - A short description.
                  hashed_id:
                    description: A unique alphanumeric identifier for the channel episode.
                    type: string
                  media_hashed_id:
                    description: A unique alphanumeric identifier for the channel episode's media.
                    type: string
                  published:
                    description: Whether the channel episode has been published or is still in draft form.
                    type: boolean
                  publish_at:
                    description: The date and time when the episode is scheduled to be published in UTC timezone (only present when publish_status is 'scheduled').
                    type: string
                    format: date-time
                    examples:
                    - '2024-12-31T23:59:59Z'
                  title:
                    description: The title of the channel episode
                    type:
                    - string
                    - 'null'
                  updated:
                    description: The date when the channel was last updated.
                    type: string
                    format: date-time
                  podcast_settings:
                    description: 'Podcast specific settings for the episode. Only present when podcasting

                      is enabled for the channel.

                      '
                    x-readme-hidden: true
                    x-speakeasy-ignore: true
                    unevaluatedProperties: false
                    type: object
                    properties:
                      episode_type:
                        type: string
                        description: The type of episode.
                        enum:
                        - full
                        - trailer
                        - bonus
                      episode_number:
                        type: integer
                        description: The number of the episode.
                      season_number:
                        type: integer
                        description: The season number of the episode.
                      explicit_content:
                        type: boolean
                        description: Whether the episode contains explicit content.
                      hide_from_feed:
                        type: boolean
                        description: Whether to hide the episode from the podcast feed.
                required:
                - channel_hashed_id
                - created
                - description
                - summary
                - hashed_id
                - media_hashed_id
                - published
                - title
                - updated
        '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.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Channel Episodes
      security:
      - BearerAuth: []
    servers:
    - url: https://api.wistia.com/modern
  /channels/{channelHashedId}/channel_episodes:
    get:
      summary: List Channel Episodes by Channel
      description: 'Lists Channel Episodes belonging to the channel passed in the path.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read all folder and media data

        ```

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

        '
      parameters:
      - name: channelHashedId
        in: path
        description: The hashed ID of the channel to grab channel episodes from.
        required: true
        schema:
          type: string
      - name: sort_by
        in: query
        description: 'Ordering. Default is ID ASC. When using cursor pagination (see cursor param),

          only `id` and `created` are supported. All other sort_by options (`position`, `title`, `updated`)

          require offset pagination.

          '
        required: false
        schema:
          type: string
          enum:
          - position
          - title
          - created
          - updated
          - id
      - name: sort_direction
        in: query
        description: Ordering Sort Direction (0 = desc, 1 = asc; default is 1)
        required: false
        schema:
          type: integer
          enum:
          - 0
          - 1
      - 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: media_id[]
        in: query
        description: Filter by media id
        required: false
        schema:
          type: array
          items:
            type: string
      - name: hashed_ids[]
        in: query
        description: Filter by hashed id
        required: false
        schema:
          type: array
          items:
            type: string
      - name: published
        in: query
        description: Filter by published status.
        required: false
        schema:
          type: boolean
      - name: title
        in: query
        description: Filter by channel episode name/title.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Channel Episodes retrieval successful
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  description: 'A channel episode represents a media that has been added to a channel. Only published

                    episodes are displayed in a channel.

                    '
                  properties:
                    live_stream_event_hashed_id:
                      description: A unique alphanumeric identifier for the channel episode's live stream event, if any. Null when the episode is not linked to a live stream event.
                      type:
                      - string
                      - 'null'
                    id:
                      description: A unique numeric identifier for the channel episode.
                      type: integer
                    channel_hashed_id:
                      description: A unique alphanumeric identifier for the channel episode's channel.
                      type: string
                    created:
                      description: The date when the channel episode was originally created.
                      type: string
                      format: date-time
                    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'
                    description:
                      description: The channel episode's description or episode notes.
                      type: string
                    summary:
                      description: A short summary of the episode that is displayed when space is limited.
                      type: string
                      examples:
                      - A short description.
                    hashed_id:
                      description: A unique alphanumeric identifier for the channel episode.
                      type: string
                    media_hashed_id:
                      description: A unique alphanumeric identifier for the channel episode's media.
                      type: string
                    published:
                      description: Whether the channel episode has been published or is still in draft form.
                      type: boolean
                    publish_at:
                      description: The date and time when the episode is scheduled to be published in UTC timezone (only present when publish_status is 'scheduled').
                      type: string
                      format: date-time
                      examples:
                      - '2024-12-31T23:59:59Z'
                    title:
                      description: The title of the channel episode
                      type:
                      - string
                      - 'null'
                    updated:
                      description: The date when the channel was last updated.
                      type: string
                      format: date-time
                    podcast_settings:
                      description: 'Podcast specific settings for the episode. Only present when podcasting

                        is enabled for the channel.

                        '
                      x-readme-hidden: true
                      x-speakeasy-ignore: true
                      unevaluatedProperties: false
                      type: object
                      properties:
                        episode_type:
                          type: string
                          description: The type of episode.
                          enum:
                          - full
                          - trailer
                          - bonus
                        episode_number:
                          type: integer
                          description: The number of the episode.
                        season_number:
                          type: integer
                          description: The season number of the episode.
                        explicit_content:
                          type: boolean
                          description: Whether the episode contains explicit content.
                        hide_from_feed:
                          type: boolean
                          description: Whether to hide the episode from the podcast feed.
                  required:
                  - channel_hashed_id
                  - created
                  - description
                  - summary
                  - hashed_id
                  - media_hashed_id
                  - published
                  - title
                  - updated
        '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.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                unevaluatedProperties: false
                type: object
                properties:
                  error:
                    type: string
                    examples:
                    - Internal server error
      tags:
      - Channel Episodes
      security:
      - BearerAuth: []
    post:
      summary: Create Channel Episode
      description: 'Creates a new channel episode in a channel.


        <!--- HIDE-MCP -->

        ## Requires api token with one of the following permissions

        ```

        Read, update & delete anything

        ```

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

        '
      parameters:
      - name: channelHashedId
        in: path
        description: The hashed ID of the channel to add the episode to.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              unevaluatedProperties: false
              type: object
              x-wistia-mcp-properties:
                media_id:
                  description: The alphanumeric hashed ID of the media to be added as a channel episode.
                  type: string
                title:
                  description: The episode's title.  If not provided, the channel episode uses the title of the media used to create it.
                  type: string
                  examples:
                  - My New Episode
                description:
                  description: The episode's description or episode notes.
                  type: string
                  examples:
                  - My Episode Description.
                summary:
                  description: A short summary of the episode that is displayed when space is limited.
                  type: string
                  examples:
                  - A short description.
                publish_status:
                  description: The status of whether or not the episode has been published to your channel.
                  type: string
                  enum:
                  - draft
                  - published
                  - scheduled
                publish_at:
                  description: The date and time when the episode should be published in UTC timezone. Required when publish_status is 'scheduled'. Must be a valid ISO8601 timestamp in UTC (ending with 'Z').  Can only be provided when publish_status is 'scheduled.'
                  type: string
                  format: date-time
                  examples:
                  - '2024-12-31T23:59:59Z'
                podcast_settings:
                  unevaluatedProperties: false
                  type: object
                  description: 'Podcast specific settings for a channel episode. These settings only take effect

                    if podcasting is enabled for the channel.

                    '
                  properties:
                    episode_type:
                      type: string
                      description: The type of episode.
                      enum:
                      - full
                      - trailer
                      - bonus
                    episode_number:
                      type: integer
                      description: The number of the episode.
                    season_number:
                      type: integer
                      description: The season number of the episode.
                    explicit_content:
                      type: boolean
                      description: Whether the episode contains explicit content.
                    hide_from_feed:
                      type: boolean
                      description: Whether to hide the episode from the podcast feed.
              properties:
                podcast_settings:
                  unevaluatedProperties: false
                  type: object
                  description: 'Podcast specific settings for a channel episode. These settings only take effect

                    if podcasting is enabled for the channel.

                    '
                  properties:
                    episode_type:
                      type: string
                      description: The type of episode.
                      enum:
                      - full
                      - trailer
                      - bonus
                    episode_number:
                      type: integer
                      description: The number of the episode.
                    season_number:
                      type: integer
                      description: The season number of the episode.
                    explicit_content:
                      type: boolean
                      description: Whether the episode contains explicit content.
                    hide_from_feed:
                      type: boolean
                      description: Whether to hide the episode from the podcast feed.
                media_id:
                  description: The alphanumeric hashed ID of the media to be added as a channel episode.
                  type: string
                title:
                  description: The episode's title.  If not provided, the channel episode uses the title of the media used to create it.
                  type: string
                  examples:
                  - My New Episode
                description:
                  description: The episode's description or episode notes.
                  type: string
                  examples:
                  - My Episode Description.
                summary:
                  description: A short summary of the episode that is displayed when space is limited.
                  type: string
                  examples:
                  - A short description.
                publish_status:
                  description: The status of whether or not the episode has been published to your channel.
                  type: string
                  enum:
                  - draft
                  - published
                  - scheduled
                publish_at:
                  description: The date and time when the episode should be published in UTC timezone. Required when publish_status is 'scheduled'. Must be a valid ISO8601 timestamp in UTC (ending with 'Z').  Can only be provided when publish_status is 'scheduled.'
                  type: string
                  format: date-time
                  examples:
                  - '2024-12-31T23:59:59Z'
                episode_type:
                  description: The episode type for your podcast.  This parameter only takes effect if podcasting is enabled for the channel.
                  type: string
                  enum:
                  - full
                  - trailer
                  - bonus
                episode_number:
                  description: The episode number for this episode in your podcast.  This parameter only takes effect if podcasting is enabled for the channel.
                  type: integer
                season_number:
                  description: The season number for this episode in your podcast.  This parameter only takes effect if podcasting is enabled for the channel.
                  type: integer
                explicit_content:
                  description: Whether this episode contains explicit content.  This parameter only takes effect if podcasting is enabled for the channel.
                  type: boolean
                hide_from_feed:
                  description: Whether or not to hide this episode from your podcast feed.  Set to true to hide the episode, false to show the episode.  This parameter only takes effect if podcasting is enabled for the channel.
                  type: boolean
      responses:
        '200':
          description: Channel Episode creation successful
          content:
            application/json:
              schema:
                type: object
                description: 'A channel episode represents a media that has been added to a channel. Only published

                  episodes are displayed in a channel.

                  '
                properties:
                  live_stream_event_hashed_id:
                    description: A unique alphanumeric identifier for the channel episode's live stream event, if any. Null when the episode is not linked to a live stream event.
                    type:
                    - string
                    - 'null'
                  id:
                    description: A unique numeric identifier for the channel episode.
                    type: integer
                  channel_hashed_id:
                    description: A unique alphanumeric identifier for the channel episode's channel.
                    type: string
                  created:
                    description: The date when the channel episode was originally created.
                    type: string
                    format: date-time
                  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'
                  description:
                    description: The channel episode's description or episode notes.
                    type: string
                  summary:
                    description: A short summary of the episode that is displayed when space is limited.
                    type: string
                    examples:
                    - A short description.
                  hashed_id:
                    description: A unique alphanumeric identifier for the channel episode.
                    type: string
                  media_hashed_id:
                    description: A unique alphanumeric identifier for the channel episode's media.
                    type: string
                  published:
                    description: Whether the channel episode has been published or is still in draft form.
                    type: boolean
                  publish_at:
                    description: The date and time when the episode is scheduled to be published in UTC timezone (only present when publish_status is 'scheduled').
                    type: string
                    format: date-time
                    examples:
                    - '2024-12-31T23:59:59Z'
                  title:
                    description: The title of the channel episode
                    type:
                    - string
                    - 'null'
                  updated:
                    description: The date when the channel was last updated.
                    type: string
                    format: date-time
                  podcast_settings:
                    description: 'Podcast specific settings for the episode. Only present when podcasting

                      is enabled for the channel.

                      '
                    x-readme-hidden: true
                    x-speakeasy-ignore: true
                    unevaluatedProperties: false
                    type: object
                    properties:
                      episode_type:
                        type: string
                        description: The type of episode.
                        enum:
                        - full
                        - trailer
                        - bonus
                      episode_number:
                        type: integer
                        description: The number of the episode.
                      season_number:
                        type: integer
                        description: The season number of the episode.
                      explicit_content:
                        type: boolean
                        description: Whether the episode contains explicit content.
                      hide_from_feed:
                        type: boolean
                        description: Whether to hide the episode from the podcast feed.
                required:
                - channel_hashed_id
                - created
                - description
                - summary
                - hashed_id
                - media_hashed_id
                - published
                - title
                - updated
        '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.
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
     

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