Twitch Extensions API

Manage and query extension information

Operations 7

GET /extensions Twitch Get Extensions #
GET /extensions/released Twitch Get Released Extensions #
GET /users/extensions/list Twitch Get User Extensions #
GET /users/extensions Twitch Get User Active Extensions #
PUT /users/extensions Twitch Update User Extensions #
POST /extensions/chat Twitch Send Extension Chat Message #
GET /extensions/live Twitch Get Extension Live Channels #

Documentation

Specifications

Other Resources

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/twitch-extensions-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

twitch-extensions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Twitch Extensions API
  description: APIs for building interactive extensions that run as overlays or panels on Twitch channels. Extensions enable developers to create interactive experiences using a sandboxed iframe, with access to configuration, transactions, and live channel data.
  version: '1.0'
  contact:
    name: Twitch Developer Support
    url: https://dev.twitch.tv/support/
  termsOfService: https://www.twitch.tv/p/legal/terms-of-service/
servers:
- url: https://api.twitch.tv/helix
  description: Twitch Helix API Production
security:
- oauth2: []
tags:
- name: Extensions
  description: Manage and query extension information
paths:
  /extensions:
    get:
      operationId: getExtensions
      summary: Twitch Get Extensions
      description: Gets information about an extension.
      tags:
      - Extensions
      parameters:
      - $ref: '#/components/parameters/clientId'
      - name: extension_id
        in: query
        required: true
        schema:
          type: string
      - name: extension_version
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Extension information returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Extension'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /extensions/released:
    get:
      operationId: getReleasedExtensions
      summary: Twitch Get Released Extensions
      description: Gets information about a released extension.
      tags:
      - Extensions
      parameters:
      - $ref: '#/components/parameters/clientId'
      - name: extension_id
        in: query
        required: true
        schema:
          type: string
      - name: extension_version
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Released extension information returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Extension'
  /users/extensions/list:
    get:
      operationId: getUserExtensions
      summary: Twitch Get User Extensions
      description: Gets a list of all extensions (active and inactive) the broadcaster has installed.
      tags:
      - Extensions
      parameters:
      - $ref: '#/components/parameters/clientId'
      responses:
        '200':
          description: User extensions returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/InstalledExtension'
  /users/extensions:
    get:
      operationId: getUserActiveExtensions
      summary: Twitch Get User Active Extensions
      description: Gets the active extensions the broadcaster has installed.
      tags:
      - Extensions
      parameters:
      - $ref: '#/components/parameters/clientId'
      - name: user_id
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Active extensions returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ActiveExtensions'
    put:
      operationId: updateUserExtensions
      summary: Twitch Update User Extensions
      description: Updates the active extensions the broadcaster has installed.
      tags:
      - Extensions
      parameters:
      - $ref: '#/components/parameters/clientId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/ActiveExtensions'
      responses:
        '200':
          description: Extensions updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ActiveExtensions'
  /extensions/chat:
    post:
      operationId: sendExtensionChatMessage
      summary: Twitch Send Extension Chat Message
      description: Sends a chat message to a broadcaster's channel from the extension.
      tags:
      - Extensions
      parameters:
      - $ref: '#/components/parameters/clientId'
      - name: broadcaster_id
        in: query
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - text
              - extension_id
              - extension_version
              properties:
                text:
                  type: string
                  maxLength: 280
                extension_id:
                  type: string
                extension_version:
                  type: string
      responses:
        '204':
          description: Chat message sent successfully
  /extensions/live:
    get:
      operationId: getExtensionLiveChannels
      summary: Twitch Get Extension Live Channels
      description: Gets a list of channels with an active extension, sorted by descending viewer count.
      tags:
      - Extensions
      parameters:
      - $ref: '#/components/parameters/clientId'
      - name: extension_id
        in: query
        required: true
        schema:
          type: string
      - name: first
        in: query
        schema:
          type: integer
          maximum: 100
      - name: after
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Live channels returned
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        broadcaster_id:
                          type: string
                        broadcaster_name:
                          type: string
                        game_name:
                          type: string
                        game_id:
                          type: string
                        title:
                          type: string
                  pagination:
                    $ref: '#/components/schemas/Pagination'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        status:
          type: integer
        message:
          type: string
    Extension:
      type: object
      properties:
        author_name:
          type: string
        bits_enabled:
          type: boolean
        can_install:
          type: boolean
        configuration_location:
          type: string
          enum:
          - hosted
          - custom
          - none
        description:
          type: string
        eula_tos_url:
          type: string
        has_chat_support:
          type: boolean
        icon_url:
          type: string
        icon_urls:
          type: object
          additionalProperties:
            type: string
        id:
          type: string
        name:
          type: string
        privacy_policy_url:
          type: string
        request_identity_link:
          type: boolean
        screenshot_urls:
          type: array
          items:
            type: string
        state:
          type: string
          enum:
          - Approved
          - AssetsUploaded
          - Deleted
          - Deprecated
          - InReview
          - InTest
          - PendingAction
          - Rejected
          - Released
        subscriptions_support_level:
          type: string
          enum:
          - none
          - optional
        summary:
          type: string
        support_email:
          type: string
        version:
          type: string
        viewer_summary:
          type: string
        views:
          type: object
          properties:
            mobile:
              type: object
              properties:
                viewer_url:
                  type: string
            panel:
              type: object
              properties:
                viewer_url:
                  type: string
                height:
                  type: integer
                can_link_external_content:
                  type: boolean
            video_overlay:
              type: object
              properties:
                viewer_url:
                  type: string
                can_link_external_content:
                  type: boolean
            component:
              type: object
              properties:
                viewer_url:
                  type: string
                aspect_ratio_x:
                  type: integer
                aspect_ratio_y:
                  type: integer
                autoscale:
                  type: boolean
                scale_pixels:
                  type: integer
                target_height:
                  type: integer
                can_link_external_content:
                  type: boolean
    Pagination:
      type: object
      properties:
        cursor:
          type: string
    InstalledExtension:
      type: object
      properties:
        id:
          type: string
        version:
          type: string
        name:
          type: string
        can_activate:
          type: boolean
        type:
          type: array
          items:
            type: string
            enum:
            - component
            - mobile
            - panel
            - overlay
    ActiveExtensionSlot:
      type: object
      properties:
        active:
          type: boolean
        id:
          type: string
        version:
          type: string
        name:
          type: string
        x:
          type: integer
        y:
          type: integer
    ActiveExtensions:
      type: object
      properties:
        panel:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ActiveExtensionSlot'
        overlay:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ActiveExtensionSlot'
        component:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ActiveExtensionSlot'
  parameters:
    clientId:
      name: Client-Id
      in: header
      required: true
      schema:
        type: string
      description: Your registered application's client ID
  responses:
    Unauthorized:
      description: Authentication required or token is invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://id.twitch.tv/oauth2/authorize
          tokenUrl: https://id.twitch.tv/oauth2/token
          scopes:
            user:read:broadcast: View a user's broadcasting configuration
            user:edit:broadcast: Edit a user's broadcasting configuration
externalDocs:
  description: Twitch Extensions Documentation
  url: https://dev.twitch.tv/docs/extensions/