Welcome

Create interactive experiences for channels using Twitch Extensions.

What are Twitch Extensions?

Build a Twitch Extension in three easy steps:

Step 1

Start Developing

Prototype your extension using the Extensions Developer Sandbox; then, continue developing on your machine using the Developer Rig.

Extensions Sandbox

Step 2

Create an extension on your dashboard.

Create an extension to get your unique information to create your extension, such as your client ID and secret. You’ll also be able to test your extension on a live twitch.tv channel.

You must have 2FA enabled on your account to create and manage extensions. Click here to access your security settings and make this change.

3 Steps

Step 3

Release your extension and measure its success

Once you’ve added screenshots and description information for the extensions directory, submit your extension for review. If your extension follows our policy guidelines, you can launch your extension to the world! Be sure to monitor your extension’s usage using our full spectrum analytics capabilities, available in your dashboard.

3 Steps

Grow what you know

To learn more beyond the basics, dig into our starter content.

Getting Started With Extensions

More Developer Products

There's even more ways to engage streamers and viewers.

Try our API

Top endpoints used by our developers

  • curl -H 'Client-ID: <your client id>' -X GET 'https://api.twitch.tv/helix/streams?first=20'
    
  • {
      "data": [
        {
          "id": "26007494656",
          "user_id": "23161357",
          "game_id": "417752",
          "community_ids": [
            "5181e78f-2280-42a6-873d-758e25a7c313",
            "848d95be-90b3-44a5-b143-6e373754c382",
            "fd0eab99-832a-4d7e-8cc0-04d73deb2e54"
          ],
          "type": "live",
          "title": "Hey Guys, It's Monday - Twitter: @Lirik",
          "viewer_count": 32575,
          "started_at": "2017-08-14T16:08:32Z",
          "language": "en",
          "thumbnail_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_lirik-{width}x{height}.jpg"
        },
        ...
      ],
      "pagination": {
        "cursor": "eyJiIjpudWxsLCJhIjp7Ik9mZnNldCI6MjB9fQ=="
      }
    }
    
    
  • curl -H 'Client-ID: <your client id>' -X GET 'https://api.twitch.tv/helix/streams?first=20&after=eyJiIjpudWxsLCJhIjp7Ik9mZnNldCI6MjB9fQ=='
    
  • {
      "data": [
        {
          "id": "26007351216",
          "user_id": "7236692",
          "game_id": "29307",
          "community_ids": [
            "848d95be-90b3-44a5-b143-6e373754c382",
            "fd0eab99-832a-4d7e-8cc0-04d73deb2e54",
            "ff1e77af-551d-4993-945c-f8ceaa2a2829"
          ],
          "type": "live",
          "title": "[Punday Monday] Necromancer - Dan's First Character - Maps - !build",
          "viewer_count": 5723,
          "started_at": "2017-08-14T15:45:17Z",
          "language": "en",
          "thumbnail_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_dansgaming-{width}x{height}.jpg"
        },
        ...
       ],
       "pagination": {
         "cursor": "eyJiIjp7Ik9mZnNldCI6MH0sImEiOnsiT2Zmc2V0Ijo0MH19"
       }
    }
    
    
View Docs Authentication Guide
  • curl -H 'Authorization: Bearer <your bearer token>' -X GET 'https://api.twitch.tv/helix/users?id=44322889'
    
  • {
      "data": [{
        "id": "44322889",
        "login": "dallas",
        "display_name": "dallas",
        "type": "staff",
        "broadcaster_type": "",
        "description": "Just a gamer playing games and chatting. :)",
        "profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/dallas-profile_image-1a2c906ee2c35f12-300x300.png",
        "offline_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/dallas-channel_offline_image-1a2c906ee2c35f12-1920x1080.png",
        "view_count": 191836881,
        "email": "login@provider.com"
      }]
    }
    
    
View Docs Authentication Guide
  • curl -H 'Client-ID: <your client id>' -X GET 'https://api.twitch.tv/helix/clips?id=AwkwardHelplessSalamanderSwiftRage'
    
  • {
      "data":
      [{
        "id": "AwkwardHelplessSalamanderSwiftRage",
        "url": "https://clips.twitch.tv/AwkwardHelplessSalamanderSwiftRage",
        "embed_url": "https://clips.twitch.tv/embed?clip=AwkwardHelplessSalamanderSwiftRage",
        "broadcaster_id": "67955580",
        "creator_id": "53834192",
        "video_id": "205586603",
        "game_id": "488191",
        "language": "en",
        "title": "babymetal",
        "view_count": 10,
        "created_at": "2017-11-30T22:34:18Z",
        "thumbnail_url": "https://clips-media-assets.twitch.tv/157589949-preview-480x272.jpg"
      }]
    }
    
    
  • curl -H 'Client-ID: <your client id>' -X GET 'https://api.twitch.tv/helix/clips?broadcaster_id=1234&first=5'
    
  • {"data":
      [{
        "id":"RandomClip1",
        "url":"https://clips.twitch.tv/AwkwardHelplessSalamanderSwiftRage",
        "embed_url":"https://clips.twitch.tv/embed?clip=RandomClip1",
        "broadcaster_id":"1234",
        "creator_id":"123456",
        "video_id":"1234567",
        "game_id":"33103",
        "language":"en",
        "title":"random1",
        "view_count":10,
        "created_at":"2017-11-30T22:34:18Z",
        "thumbnail_url":"https://clips-media-assets.twitch.tv/157589949-preview-480x272.jpg"
      },
      ...
      ]
      "pagination": {"cursor": "eyJiIjpudWxsLCJhIjoiIn0"}
    }
    
    
View Docs Authentication Guide

There's no need to go alone!

Check out our community support page for the resources that can help you on your journey.

Get Support