# Subscriptions Beta Changes

**URL:** <https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023>\
**Category:** API\
**Created:** [April 19, 2017, 5:06pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023 "2017-04-19T17:06:47Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![DallasNChains](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/dallasnchains/32/1608_2.png) [@DallasNChains](https://staging-discuss.dev.twitch.com/u/DallasNChains)\
**Post date:** [April 19, 2017, 5:06pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/1 "2017-04-19T17:06:47Z")

</div>

Hey, devs!

As you may have seen, we announced a new subscriptions beta that is coming up. With that, we’ve made some changes to the developer platform to allow for integrations with the new subscriptions.

## FAQ

**How does this affect notifications of subscriptions?**  
Initial subscriptions and resubscriptions are exactly the same now. That is, both are sent over `USERNOTICE`.

_NOTE_: First-time subs will show up immediately over `USERNOTICE` and PubSub. Resubs still require that a user press the button to share their sub. It is possible the user never clicks the button.

**Why am I seeing two subscription messages in chat?**  
The two messages are a side-effect of supporting backwards compatibility for integrations. We’re still sending `twitchnotify` AND `USERNOTICE` until bots have a chance to move over. We’re working to set a removal date ASAP.

## Chat Changes

With this release, `twitchnotify` is **deprecated**. It will be removed ~~at a later date, to be announced~~ on **May 24, 2017**.

All subscriptions and resubscriptions will be sent as a `USERNOTICE`.

~~**NOTE** : During the deprecation period, you will see both `twitchnotify` and `USERNOTICE` messages. Your code must handle this accordingly.~~

`USERNOTICE` messages will contain the following new IRC tags related to subscription plans:

● `msg-id` — Contains the type of subscription displayed by this USERNOTICE. Valid values: sub, resub.  
● `msg-param-sub-plan` — Identifies the type of subscription plan being used. Valid values: Prime, 1000, 2000, 3000.  
● `msg-param-sub-plan-name` — Contains the name of the subscription plan.

### Example Message

`@badges=staff/1,broadcaster/1,turbo/1;color=#008000;display-name=TWITCH_UserName;emotes=;mod=0;msg-id=sub/resub;msg-param-months=6;room-id=1337;subscriber=1;msg-param-sub-plan=Prime/1000/2000/3000;msg-param-sub-plan-name=Channel\sSubscription\s(display_name);system-msg=TWITCH_UserName\shas\ssubscribed\sfor\s6\smonths!;login=twitch_username;turbo=1;user-id=1337;user-type=staff :tmi.twitch.tv USERNOTICE #channel :Great stream -- keep it up!`

## PubSub Changes

With the release of subscription plans, we will add a PubSub topic for subscriptions. This will allow you to listen for subscription events over a WebSocket rather than listening on IRC or polling the API. The topic is:

`channel-subscribe-events-v1.<channel ID>`

Required scope: `channel_subscriptions`.

### Example Message

```
{
   "type": "MESSAGE",
   "data": {
      "topic": "channel-subscribe-events-v1.44322889",
      "message": {
         "user_name": "dallas",
         "display_name": "こんにちは", 
         "channel_name": "twitch",
         "user_id": "44322889",
         "channel_id": "12826",
         "time": "2015-12-19T16:39:57-08:00",
         "sub_plan": "Prime"/"1000"/"2000"/"3000",
         "sub_plan_name": "Mr_Woodchuck - Channel Subscription (mr_woodchuck)",
         "months": 9,
         "context": "sub"/"resub",
         "sub_message": {
            "message": "A Twitch baby is born! KappaHD",
            "emotes": [
            {
               "start": 23,
               "end": 7,
               "id": 2867
            }]
         }
     }
   }
}

```

## REST API Changes

Three REST endpoints are affected. Their responses will be augmented with subscription plan information

### Check User Subscription by Channel

See [https://dev.twitch.tv/docs/v5/reference/users/#check-user-subscription-by-channel](https://dev.twitch.tv/docs/v5/reference/users/#check-user-subscription-by-channel).

Checks if a specified user is subscribed to a specified channel.

Required authentication scope: `user_subscriptions`

URL: `GET https://api.twitch.tv/kraken/users/<user ID>/subscriptions/<channel ID>`

```
{
    "_id": "ac2f1248993eaf97e71721458bd88aae66c92330",
    "sub_plan": "3000",
    "sub_plan_name": "Channel Subscription (forstycup) - $X.XX Sub",
    "channel": {
        "_id": "19571752",
        "broadcaster_language": "en",
        "created_at": "2011-01-16T04:35:51Z",
        "display_name": "forstycup",
        "followers": 397,
        "game": "Final Fantasy XV",
        "language": "en",
        "logo": "https://static-cdn.jtvnw.net/jtv_user_pictures/forstycup-profile_image-940fb4ca1e5949c0-300x300.png",
        "mature": true,
        "name": "forstycup",
        "partner": true,
        "profile_banner": null,
        "profile_banner_background_color": null,
        "status": "[Blind] Moar Sidequests! Let's explore.",
        "updated_at": "2017-04-06T09:00:41Z",
        "url": "http://localhost:3000/forstycup",
        "video_banner": "https://static-cdn.jtvnw.net/jtv_user_pictures/forstycup-channel_offline_image-f7274322063da225-1920x1080.png",
        "views": 5705
    },
    "created_at": "2017-04-08T19:54:24Z"
}

```

### Get Channel Subscribers

See [https://dev.twitch.tv/docs/v5/reference/channels/#get-channel-subscribers](https://dev.twitch.tv/docs/v5/reference/channels/#get-channel-subscribers).

Gets a list of users subscribed to a specified channel, sorted by the date when they subscribed.

Required authentication scope: `channel_subscriptions`

URL: `GET https://api.twitch.tv/kraken/channels/<channel ID>/subscriptions`

```
{
    "_total": 4,
    "subscriptions": [
        {
            "_id": "e5e2ddc37e74aa9636625e8d2cc2e54648a30418",
            "created_at": "2016-04-06T04:44:31Z",
            "sub_plan": "1000",
            "sub_plan_name": "Channel Subscription (mr_woodchuck)",
            "user": {
                "_id": "89614178",
                "bio": "Twitch staff member who is a heimerdinger main on the road to diamond.",
                "created_at": "2015-04-26T18:45:34Z",
                "display_name": "Mr_Woodchuck",
                "logo": "https://static-cdn.jtvnw.net/jtv_user_pictures/mr_woodchuck-profile_image-a8b10154f47942bc-300x300.jpeg",
                "name": "mr_woodchuck",
                "type": "staff",
                "updated_at": "2017-04-06T00:14:13Z"
            }
        },
    . . .
   ]
}

```

### Check Channel Subscription by User

See [https://dev.twitch.tv/docs/v5/reference/channels/#check-channel-subscription-by-user](https://dev.twitch.tv/docs/v5/reference/channels/#check-channel-subscription-by-user)

Checks if a specified channel has a specified user subscribed to it.

Required authentication scope: `channel_check_subscription`

URL: `GET https://api.twitch.tv/kraken/channels/<channel ID>/subscriptions/<user ID>`

```
{
    "_id": "8bded3af51046d2d365279fe92a976b6a4ceb006",
    "created_at": "2017-04-08T19:15:39Z",
    "sub_plan": "3000",
    "sub_plan_name": "Channel Subscription (mr_woodchuck) - $X.XX Sub",
    "user": {
        "_id": "13405587",
        "bio": "Software Engineer at Twitch and casual speedrunner. I play video games!",
        "created_at": "2010-06-27T05:33:45Z",
        "display_name": "TWW2",
        "logo": "https://static-cdn.jtvnw.net/jtv_user_pictures/tww2-profile_image-6af5324eddee1468-300x300.png",
        "name": "tww2",
        "type": "staff",
        "updated_at": "2017-04-06T03:31:55Z"
    }
}
```

---

<div class="post-metadata">

**Author:** ![Jacky1356400](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/jacky1356400/32/5710_2.png) [@Jacky1356400](https://staging-discuss.dev.twitch.com/u/Jacky1356400)\
**Post date:** [April 19, 2017, 7:03pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/3 "2017-04-19T19:03:55Z")

</div>

For those that uses mIRC for welcoming subs & re-subs in chat, I’ve made an example script with every single sub and re-sub situations possible for the new Subscriptions Beta system.  
[https://pastebin.com/6uCApdgb](https://pastebin.com/6uCApdgb)

---

<div class="post-metadata">

**Author:** ![zapdos26](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/zapdos26/32/2711_2.png) [@zapdos26](https://staging-discuss.dev.twitch.com/u/zapdos26)\
**Post date:** [April 19, 2017, 9:57pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/4 "2017-04-19T21:57:03Z")

</div>

For “\_total” under Get Channel Subscribers, will that be for the total number of users that are subscribed or the total number of subscriptions considered by Twitch?

---

<div class="post-metadata">

**Author:** ![Six](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/six/32/2334_2.png) [@Six](https://staging-discuss.dev.twitch.com/u/Six)\
**Post date:** [April 20, 2017, 2:39am UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/5 "2017-04-20T02:39:54Z")

</div>

Ayyy, no more hacky twitchnotify parsing for new subscriptions!

---

<div class="post-metadata">

**Author:** ![scottrc](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@scottrc](https://staging-discuss.dev.twitch.com/u/scottrc)\
**Post date:** [April 20, 2017, 5:38pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/6 "2017-04-20T17:38:26Z")

</div>

When users get the exclusive channel emotes for subscribing at a higher rate, will those emotes have their own set number (emoticon\_set)? Or will the API change for the emotes also?

Thanks

---

<div class="post-metadata">

**Author:** ![tduva](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/tduva/32/392_2.png) [@tduva](https://staging-discuss.dev.twitch.com/u/tduva)\
**Post date:** [April 22, 2017, 9:42am UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/7 "2017-04-22T09:42:50Z")

</div>

Will the `system-msg` contain info about what plan it is (like it mentions Twitch Prime already)? I’m only using it for displaying it to the user and wondering if I need to add that info myself from the tags.

---

<div class="post-metadata">

**Author:** ![DallasNChains](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/dallasnchains/32/1608_2.png) [@DallasNChains](https://staging-discuss.dev.twitch.com/u/DallasNChains)\
**Post date:** [April 24, 2017, 7:42pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/8 "2017-04-24T19:42:00Z")

</div>

@zapdos26 The total value hasn’t changed. It is a count of the subscriptions.

@scottrc Looking into this and will get back to you ASAP.

@tduva The text should mention the current tier and/or Prime. I’d highly recommend using the tag since that will save you from text changes. We know those happen. 😛

---

<div class="post-metadata">

**Author:** ![zapdos26](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/zapdos26/32/2711_2.png) [@zapdos26](https://staging-discuss.dev.twitch.com/u/zapdos26)\
**Post date:** [April 25, 2017, 1:08am UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/9 "2017-04-25T01:08:41Z")

</div>

@DallasNChains According to the blog it says that a $9.99 will count as two subs and $24.99 subscription will count as six subs (in terms of count towards getting emotes). Previously the total value I thought was calculated by the total number of subscriptions. With the addition of these new tiers, does the total count remain the number of people subscribed to the channel or does it change to the amount of subscriptions that count towards these emote limits? And if possible, will you guys add the other piece of info that the \_total is not?

---

<div class="post-metadata">

**Author:** ![george](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/george/32/120_2.png) [@george](https://staging-discuss.dev.twitch.com/u/george)\
**Post date:** [April 25, 2017, 1:54am UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/10 "2017-04-25T01:54:03Z")

</div>

$9.99 and $24.99 emote tiers each have their own emoticon\_set values. So you if sub to the highest tier you will have three emoticon\_sets assigned to you from the single subscription to use all the emotes.

---

<div class="post-metadata">

**Author:** ![Jacky1356400](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/jacky1356400/32/5710_2.png) [@Jacky1356400](https://staging-discuss.dev.twitch.com/u/Jacky1356400)\
**Post date:** [April 25, 2017, 9:57am UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/11 "2017-04-25T09:57:16Z")

</div>

So, the sub beta system has rolled out in a few channels I have mIRC in. But apparently, the `msg-param-sub-plan` and `msg-param-sub-plan-name` tags does not exist even though a few people re-subbed with the $9.99 and $24.99 plans and there’s something like `just\ssubscribed\swith\sa\s$9.99\ssub.` in the `system-msg` tag. Is that meant to happen or just the tags are not added yet?

---

<div class="post-metadata">

**Author:** ![DallasNChains](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/dallasnchains/32/1608_2.png) [@DallasNChains](https://staging-discuss.dev.twitch.com/u/DallasNChains)\
**Post date:** [April 25, 2017, 5:13pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/12 "2017-04-25T17:13:47Z")

</div>

@zapdos26 It is the number of people subscribed to the channel and not the subscriber “score” (number + extra). We’re looking into adding the total “score” to the API.

@Jacky1356400 All of the developer parts should be going live soon! They’re not fully live yet.

---

<div class="post-metadata">

**Author:** ![Jacky1356400](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/jacky1356400/32/5710_2.png) [@Jacky1356400](https://staging-discuss.dev.twitch.com/u/Jacky1356400)\
**Post date:** [April 25, 2017, 5:28pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/13 "2017-04-25T17:28:58Z")

</div>

Ah I see. 👍

---

<div class="post-metadata">

**Author:** ![zapdos26](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/zapdos26/32/2711_2.png) [@zapdos26](https://staging-discuss.dev.twitch.com/u/zapdos26)\
**Post date:** [April 25, 2017, 10:56pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/14 "2017-04-25T22:56:36Z")

</div>

Thanks 🙂

---

<div class="post-metadata">

**Author:** ![swiftyspiffy](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/swiftyspiffy/32/1279_2.png) [@swiftyspiffy](https://staging-discuss.dev.twitch.com/u/swiftyspiffy)\
**Post date:** [April 26, 2017, 8:28am UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/16 "2017-04-26T08:28:50Z")

</div>

This may warrant a separate thread, but I seem to be getting some inconsistencies with the subscription notifications in chat.

Most of the time I am getting a USERNOTICE as expected, however sometimes I appear to only be getting a twitchnotify PRIV message.  
And, to that end, I get seemingly redundant yet different messages in chat, which I think may be tied to the larger issue on hand. The messages are:  
username just subscribed!  
username just subscribed with a $4.99 sub!

Because some subscription events seem to be missing USERNOTICE tags, it makes parsing the subscription event on the basis of USERNOTICE (instead of say twitchnotify) fairly inconsistent.

Perhaps I’m overlooking or not understanding something though.

---

<div class="post-metadata">

**Author:** ![Jacky1356400](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/jacky1356400/32/5710_2.png) [@Jacky1356400](https://staging-discuss.dev.twitch.com/u/Jacky1356400)\
**Post date:** [April 26, 2017, 10:43am UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/17 "2017-04-26T10:43:06Z")

</div>

Yeah @swiftyspiffy I am getting the same problem too.  
Seems like `USERNOTICE` events only fires up on a re-sub but not new sub as intended.

---

<div class="post-metadata">

**Author:** ![DallasNChains](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/dallasnchains/32/1608_2.png) [@DallasNChains](https://staging-discuss.dev.twitch.com/u/DallasNChains)\
**Post date:** [April 26, 2017, 4:53pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/18 "2017-04-26T16:53:30Z")

</div>

@swiftyspiffy @Jacky1356400 I think the system hasn’t been clearly explained, which is causing confusion. I’ve gotten a few questions about this since our release. 🙂

New subs work just like resubs now. The USERNOTICE and PubSub will only show up when the user presses the button to share their sub. It is possible the user never clicks the button.

The two messages are a side-effect of supporting backwards compatibility for integrations. We’re still sending twitchnotify AND USERNOTICE until bots have a chance to move over. We’re working to set a removal date ASAP.

Hope that helps!

---

<div class="post-metadata">

**Author:** ![Jacky1356400](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/jacky1356400/32/5710_2.png) [@Jacky1356400](https://staging-discuss.dev.twitch.com/u/Jacky1356400)\
**Post date:** [April 26, 2017, 5:54pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/19 "2017-04-26T17:54:54Z")

</div>

So, say if there’s a new sub, `twitchnotify` still fires up a notification of the person just subscribed and if the person presses the share button, notification fires up again but in `USERNOTICE`. I think that’s right?

---

<div class="post-metadata">

**Author:** ![DallasNChains](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/dallasnchains/32/1608_2.png) [@DallasNChains](https://staging-discuss.dev.twitch.com/u/DallasNChains)\
**Post date:** [April 26, 2017, 6:12pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/20 "2017-04-26T18:12:03Z")

</div>

That’s correct, @Jacky1356400. That’s why we want to remove twitchnotify ASAP so that devs aren’t getting double messages. 🙂

---

<div class="post-metadata">

**Author:** ![Jacky1356400](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/jacky1356400/32/5710_2.png) [@Jacky1356400](https://staging-discuss.dev.twitch.com/u/Jacky1356400)\
**Post date:** [April 26, 2017, 6:32pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/21 "2017-04-26T18:32:13Z")

</div>

Alright thanks.

---

<div class="post-metadata">

**Author:** ![swiftyspiffy](https://d1d6mrmdu7ztse.cloudfront.net/user_avatar/staging-discuss.dev.twitch.com/swiftyspiffy/32/1279_2.png) [@swiftyspiffy](https://staging-discuss.dev.twitch.com/u/swiftyspiffy)\
**Post date:** [April 26, 2017, 6:32pm UTC](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023/22 "2017-04-26T18:32:46Z")

</div>

That makes a lot of sense. So a quick follow up on that. The twitchnotify is not optional. When someone subscribes for the first time, that message is sent no matter what. The USERNOTICE is entirely optional. Is this correct?

[Next page](https://staging-discuss.dev.twitch.com/t/subscriptions-beta-changes/10023.md?page=2)
