Releasing & Maintaining Extensions

Releasing Your Extension

Once an extension is approved, you release it for live use by clicking the Release button on the Version Status page, for the version that was approved. If a prior version of your extension already has a state of Released, the state of that version automatically is changed to Deprecated. For a given extension, only one version can be in the Released state at a time.

Managing Extension Versions

On your Extensions dashboard, you can select a version of an extension and click Manage to go to the extension management interface. One tab of this interface is Version.

You are sent here when you click Create Extension to create your extension manifest; specifically, you go to the initial page of the Version tab, Version Status.

All Version pages are listed on the left navigation bar and described below.

Version Status

Here, you see the state of your extension and change the state as needed. Follow the Learn more link for information about the extension life cycle.

Before you can submit your extension for review, you must upload the assets to Twitch’s CDN. This is done on the Version Assets page. For more information, see Hosted Test.

The extension parameters listed on this screen (Base URI, etc) are set on the Asset Hosting page.

Depending on where your extension is in the life cycle, different information and buttons appear on this page. For example, if your extension is in the Local Test state, there will be a button to Move to Hosted Test. If a button to move to the next stage is grayed out, hover over it for information on what to do to move to the next stage.

Click Preview your extension on Twitch to go to the extension details page on Twitch and install your extension on This can be done at any point in the extension life cycle, for testing.

Version Assets

Before you can transition your extension to the Review state, you need to upload your assets to the Twitch CDN. To do that, zip up your assets and upload them here.

Version Details

Before you can transition your extension to the Review state, you need to enter the information on this page.

Extension Capabilities

UI Item Description
Will you monetize your extension? Indicate whether you plan to use Bits in Extensions. Note: You cannot change this selection once you release the first version of your extension.
Request Identity Link Check this if your extension needs to know the viewer’s numeric Twitch ID. Once the viewer accepts your request to share his Twitch identity, the viewer’s numeric Twitch ID is provided in the Extension Helper's onAuthorized callback function. For details about these callbacks and the JWT format, see the Extensions Reference.
Chat Capabilities Check this only if your extension makes calls to Send Extension Chat Message. If you select this, be sure to include details of your extension's chat functionality in your extension description.
Select how you will configure your extension

Select the source of the configuration for your extension:

  • No configuration — Choose this if your extension has no need for per-channel customization.
  • Custom/My Own Service — Your Extension Backend Service provides the configuration. If you choose this, you can optionally specify another field:
    • Required Per Channel Configuration — Use this to require that a broadcaster successfully configure your extension before activation is allowed. This can be useful if, for example, an active extension would show a confusing error message to all viewers if misconfigured. The contents of this string can be whatever you want. This is covered further in Creating Your Extension Backend Service (EBS).
  • Extensions Configuration Service — This is the default. Your extension will use a Twitch-hosted configuration. If you select this, you also may specify other fields related to required configuration information (see instructions on the UI):
    • Developer Writable Channel Segment Version
    • Broadcaster Writable Channel Segment Version
Whitelist Config URLs, Whitelisted Panel URLs Optionally, if your extension is required to open an external URL for configuration or as a core functionality for the panel, list the URLs here. See information about off-site linking in Extensions Guidelines & Policies.

Asset Hosting

UI Item Description
Testing Base URI Change this to reflect the root URI for all assets related to this extension version. The URI must end with a forward slash. The URI is completely up to you; it need not match the version in any way. During test, the assets are served directly from this URI, so you can update your code without re-submitting anything. For more information on how to test locally, see Local Test.
Type of Extension Select one or more types: Panel, Video - Fullscreen (i.e., video overlay), Video - component, or mobile.
Viewer Path Path to the HTML file that is shown to viewers on the channel page. There is a “path” box for each item selected under Type of Extension.
Panel Height For panel extensions, the panel height in pixels. The range is 100-500. Default: 300.
Config Path Path to the HTML file that is shown to broadcasters while they are configuring the extension but before activating it within the Extension Manager. This page is displayed in an iframe with a dynamic width (up to 1100px) and a fixed height (700px). This should be a path relative to the testing base URI. It should be used for infrequent, install-time configuration.
Live Config Path (Optional) Path to the HTML file that is shown to broadcasters in the Live module of the Dashboard. It is used for broadcaster actions taken while the extension is active, such as creating a new poll. It should be a path relative to the testing base URI.

If this “live configuration view” is specified/set, it will be enabled for pop-out control.


UI Item Description
Broadcaster Whitelist

You may want to add the account IDs of specific broadcasters here. This prevents broadcasters outside the whitelist from installing the extension once it is approved. If this is empty or missing, all broadcasters can use this extension. To convert account names to account IDs, see Translating from User Names to User IDs. Note the broadcaster whitelist applies only during release, not testing. Accounts on the testing whitelist can install the extension even if they are not on the broadcaster whitelist.

If your extension has whitelisted broadcasters when you submit it for review, the approved extension will be visible only to those broadcasters. After review, changing the whitelist requires resubmitting your extension for review. So, be sure to check your whitelist before submitting your extension for review.

Testing Accounts

Add the account IDs of all accounts being used to test the extension. Specify a comma-separated list of account IDs (not names). Accounts on this list have access to this version of the extension while it is in many stages of the Extensions life cycle: hosted test, review, pending approval, accepted, and released.

Review Details

Before you can transition your extension to the Review state, you need to enter the information on this page.

UI Item Description
Name of Channel for Review This is the channel on which the Extensions review team will test your extension. This channel needs to be streaming during the review process.
Walkthrough Guide and Change Log When you submit the first version of the extension, please provide detailed guidance on both broadcaster configuration settings and user stories (i.e., ways in which you expect viewers to use your extension); this will help Twitch in reviewing your extension. For subsequent version submissions, a short description of your updates suffices.

Updating Your Extension

To update your extension after it is released, you must create a new version of the extension and submit it for review. (This does not affect the version of your extension that is live.) To create a new version, start by clicking the Version tab within the extension you want to manage. This displays a table with all extension versions and their statuses.

Once you submit your new extension version for review and it is approved, you can Release it live to broadcasters to use. This retires your previous extension, which is displayed on the bottom of the Version Status page.

Deleting Your Extension

If you decide to no longer support your extension, you can choose to delete your extension: click Delete Extension in the Settings section of your extension. This removes your extension from all broadcasters’ Extension Manager pages.

You cannot delete specific versions of your extension; deleting removes all versions of your extension. Deleting an extension is irreversible.