GetBroadcasterSubscriptions
Get a list of subscribers for a broadcaster’s channel.
Requires: channel:read:subscriptions
// Get all subscribers for a channel
resp, err := client.GetBroadcasterSubscriptions(ctx, &helix.GetBroadcasterSubscriptionsParams{
BroadcasterID: "12345",
PaginationParams: &helix.PaginationParams{
First: 100,
},
})
// Get specific subscribers by user IDs (max 100)
resp, err = client.GetBroadcasterSubscriptions(ctx, &helix.GetBroadcasterSubscriptionsParams{
BroadcasterID: "12345",
UserIDs: []string{"67890", "11111", "22222"},
})
for _, sub := range resp.Data {
if sub.IsGift {
fmt.Printf("%s (gifted by %s) - Tier: %s, Plan: %s\n",
sub.UserName, sub.GifterName, sub.Tier, sub.PlanName)
} else {
fmt.Printf("%s - Tier: %s, Plan: %s\n",
sub.UserName, sub.Tier, sub.PlanName)
}
}
fmt.Printf("Total subscribers: %d\n", resp.Total)
fmt.Printf("Subscriber points: %d\n", resp.Points)
Parameters:
BroadcasterID(string, required): The broadcaster’s user IDUserIDs([]string, optional): Filter to specific user IDs (max 100)PaginationParams(optional): Pagination options
Sample Response:
{
"data": [
{
"broadcaster_id": "12345",
"broadcaster_login": "twitchdev",
"broadcaster_name": "TwitchDev",
"gifter_id": "98765",
"gifter_login": "giftgiver123",
"gifter_name": "GiftGiver123",
"is_gift": true,
"plan_name": "Channel Subscription (twitchdev)",
"tier": "1000",
"user_id": "67890",
"user_login": "subscriber1",
"user_name": "Subscriber1"
},
{
"broadcaster_id": "12345",
"broadcaster_login": "twitchdev",
"broadcaster_name": "TwitchDev",
"is_gift": false,
"plan_name": "Channel Subscription (twitchdev): $9.99 Sub",
"tier": "2000",
"user_id": "11111",
"user_login": "subscriber2",
"user_name": "Subscriber2"
},
{
"broadcaster_id": "12345",
"broadcaster_login": "twitchdev",
"broadcaster_name": "TwitchDev",
"is_gift": false,
"plan_name": "Channel Subscription (twitchdev): $24.99 Sub",
"tier": "3000",
"user_id": "22222",
"user_login": "subscriber3",
"user_name": "Subscriber3"
}
],
"pagination": {
"cursor": "eyJiIjpudWxsLCJhIjoiMTUwMzQ0MTc3NjQyNDQyMjAwMCJ9"
},
"total": 150,
"points": 350
}
Response:
Data([]Subscription): Array of subscription objectsBroadcasterID(string): Broadcaster’s user IDBroadcasterLogin(string): Broadcaster’s login nameBroadcasterName(string): Broadcaster’s display nameGifterID(string): Gift giver’s user ID (if gifted)GifterLogin(string): Gift giver’s login name (if gifted)GifterName(string): Gift giver’s display name (if gifted)IsGift(bool): Whether the subscription is a giftPlanName(string): Subscription plan nameTier(string): Subscription tier (1000,2000, or3000)UserID(string): Subscriber’s user IDUserLogin(string): Subscriber’s login nameUserName(string): Subscriber’s display name
Total(int): Total number of subscribersPoints(int): Subscriber points based on subscription tiers
CheckUserSubscription
Check if a specific user is subscribed to a broadcaster.
Requires: user:read:subscriptions
// Check if a user is subscribed to a broadcaster
sub, err := client.CheckUserSubscription(ctx, "12345", "67890")
if err != nil {
fmt.Printf("Error checking subscription: %v\n", err)
return
}
if sub != nil {
fmt.Printf("User is subscribed - Tier: %s, Plan: %s\n", sub.Tier, sub.PlanName)
if sub.IsGift {
fmt.Printf("Subscription was gifted by: %s\n", sub.GifterName)
}
} else {
fmt.Println("User is not subscribed")
}
Parameters:
broadcasterID(string, required): The broadcaster’s user IDuserID(string, required): The user ID to check
Sample Response:
{
"data": [
{
"broadcaster_id": "12345",
"broadcaster_login": "twitchdev",
"broadcaster_name": "TwitchDev",
"gifter_id": "98765",
"gifter_login": "giftgiver123",
"gifter_name": "GiftGiver123",
"is_gift": true,
"tier": "1000"
}
]
}
Response:
- Returns
UserSubscriptionobject if subscribed,nilif not subscribed