---
updatedAt: 2026-04-20T20:26:21.000Z
agentTools:
  projectIndex: https://docs.wistia.com/llms.txt
---

# Un-publish Channel Episode

Un-publishes an existing channel episode in a channel.
## 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 the episode's channel
can also be used.


# OpenAPI definition

````json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Data API",
    "description": "Wistia Data API",
    "version": "2026.09.0"
  },
  "servers": [
    {
      "url": "https://api.wistia.com/modern"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Channel Episodes"
    }
  ],
  "paths": {
    "/channel_episodes/{channelEpisodeHashedId}/unpublish": {
      "put": {
        "summary": "Un-publish Channel Episode",
        "x-speakeasy-group": "channelEpisodes",
        "x-speakeasy-name-override": "unpublish",
        "description": "Un-publishes an existing channel episode in a channel.\n## Requires api token with one of the following permissions\n```\nRead, update & delete anything\n```\n\nTokens with the \"Act with a team member's permissions\" permission\n(`all:delegate_to_contact_permissions` scope) can also be used. Requests\nmade with such a token are authorized using the permissions of the\ncontact assigned to the token.\n\nAn [expiring access token](https://docs.wistia.com/reference/post_expiring-token)\ncreated with the `all:delegate_to_contact_permissions` scope and an\nauthorization granting the `update` permission on the episode's channel\ncan also be used.\n",
        "tags": [
          "Channel Episodes"
        ],
        "parameters": [
          {
            "name": "channelEpisodeHashedId",
            "description": "The hashed id of the Channel Episode",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Wistia-API-Version",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "default": "2026-09"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Channel Episode unpublished successfully",
            "content": {
              "application/json": {
                "schema": {
                  "unevaluatedProperties": false,
                  "type": "object",
                  "description": "A channel episode represents a media that has been added to a channel. Only published\nepisodes are displayed in a channel.\n",
                  "properties": {
                    "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"
                    },
                    "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"
                      ]
                    },
                    "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\nis enabled for the channel.\n",
                      "unevaluatedProperties": false,
                      "type": "object",
                      "properties": {
                        "episode_type": {
                          "unevaluatedProperties": false,
                          "description": "The type of episode.",
                          "oneOf": [
                            {
                              "type": "string",
                              "enum": [
                                "full",
                                "trailer",
                                "bonus"
                              ]
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "episode_number": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "The number of the episode."
                        },
                        "season_number": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "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."
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden, token is valid but account does not have access to feature",
            "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"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-readme": {
          "code-samples": [
            {
              "name": "Typescript (SDK)",
              "language": "javascript",
              "code": "import { Wistia } from \"@wistia/wistia-api-client\";\n\nconst wistia = new Wistia({\n  bearerAuth: process.env[\"WISTIA_BEARER_AUTH\"] ?? \"\",\n});\n\nasync function run() {\n  const result = await wistia.channelEpisodes.unpublish({\n    channelEpisodeHashedId: \"<id>\",\n  });\n\n  console.log(result);\n}\n\nrun();"
            }
          ]
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "x-readme": {
    "samples-languages": [
      "javascript",
      "shell",
      "node",
      "python",
      "ruby"
    ]
  }
}
````