Welcome

Create interactive experiences for channels using Twitch Extensions.

Get Started

Build a Twitch Extension in three easy steps:

Step 1

Download developer rig

The developer rig can jumpstart your journey into the expansive world of extension creation in minutes.

Clone On GitHub

Note: be sure to follow the next steps to ensure the rig works for actual test.

developer rig

Step 2

Complete a quick developer onboarding

To use the rig, you’ll need to complete a brief, one-time introduction to Twitch Extensions. You will then be able to test and release extensions for streamers to use on their channels.

Extensions

Step 3

Create an extension on your dashboard

After completing onboarding, you can create an extension. You'll need your extension client id, secret and version number to continue using the developer rig.

Go To Extension Dashboard

3 Steps

Grow what you know

You’ve tackled the basics, and now you’re ready to 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