Skip to main content

Extensions

FunctionReturns
getReleasedExtensionPromise<Extension>
getLiveChannelsWithExtensionPromise<PaginatedResult<ChannelReference>>
getExtensionBitsProductsPromise<Array<ExtensionBitsProduct>>
putExtensionBitsProductPromise<ExtensionBitsProduct>
getExtensionTransactionsPromise<PaginatedResult<ExtensionTransaction>>

Functions​

getReleasedExtension​

twitch.extension.getReleasedExtension(id: string, version?: string): Promise<Extension>

getLiveChannelsWithExtension​

twitch.extension.getLiveChannelsWithExtension(id: string, pagination?: ForwardPagination): Promise<PaginatedResult<ChannelReference>>

getExtensionBitsProducts​

twitch.extension.getExtensionBitsProducts(includeDisabled?: boolean): Promise<Array<ExtensionBitsProduct>>

putExtensionBitsProduct​

twitch.extension.putExtensionBitsProduct(data: ExtensionBitsProductUpdatePayload): Promise<ExtensionBitsProduct>

getExtensionTransactions​

twitch.extension.getExtensionTransactions(id: string, filter?: ExtensionTransactionsPaginatedFilter): Promise<PaginatedResult<ExtensionTransaction>>

Types​

ChannelReference​

type ChannelReference = {
broadcasterId: string
broadcasterName: string
gameId: string
gameName: string
title: string
}

Extension​

type Extension = {
authorName: string
bitsEnabled: boolean
canInstall: boolean
configurationLocation: ExtensionConfigurationLocation
description: string
eulaTosUrl: string
hasChatSupport: boolean
iconUrl: string
iconUrls: {
'100X100': string
'24X24': string
'300X200': string
}
id: string
name: string
privacyPolicyUrl: string
requestIdentityLink: boolean
screenshotUrls: Array<string>
state: ExtensionState
subscriptionsSupportLevel: ExtensionSubscriptionsSupportLevel
summary: string
supportEmail: string
version: string
viewerSummary: string
views: ExtensionViews
allowlistedConfigUrls: Array<string>
allowlistedPanelUrls: Array<string>
}

ExtensionBitsProduct​

type ExtensionBitsProduct = {
sku: string
cost: ExtensionBitsProductCost
inDevelopment: boolean
displayName: string
isBroadcast: boolean
expiration: string
}

ExtensionBitsProductCost​

type ExtensionBitsProductCost = {
amount: number
type: "bits"
}

ExtensionBitsProductUpdatePayload​

type ExtensionBitsProductUpdatePayload = {
sku: string
cost: number
displayName: string
inDevelopment?: boolean
broadcast?: boolean
expirationDate?: string
}

ExtensionComponentView​

type ExtensionComponentView = {
viewerUrl: string
aspectWidth: number
aspectHeight: number
aspectRatioX: number
aspectRatioY: number
autoscale: boolean
scalePixels: number
targetHeight: number
size: number
zoom: boolean
zoomPixels: number
canLinkExternalContent: boolean
}

ExtensionConfigView​

type ExtensionConfigView = {
viewerUrl: string
canLinkExternalContent: boolean
}

ExtensionConfigurationLocation​

type ExtensionConfigurationLocation = "hosted" | "custom" | "none"

ExtensionMobileView​

type ExtensionMobileView = {
viewerUrl: string
}

ExtensionOverlayView​

type ExtensionOverlayView = {
viewerUrl: string
canLinkExternalContent: boolean
}

ExtensionPanelView​

type ExtensionPanelView = {
viewerUrl: string
height: number
canLinkExternalContent: boolean
}

ExtensionProduct​

type ExtensionProduct = {
sku: string
cost: ExtensionProductCost
displayName: string
inDevelopment: boolean
}

ExtensionProductCost​

type ExtensionProductCost = {
amount: number
type: "bits"
}

ExtensionState​

type ExtensionState = "InTest" | "InReview" | "Rejected" | "Approved" | "Released" | "Deprecated" | "PendingAction" | "AssetsUploaded" | "Deleted"

ExtensionSubscriptionsSupportLevel​

type ExtensionSubscriptionsSupportLevel = "none" | "optional"

ExtensionTransaction​

type ExtensionTransaction = {
id: string
timestamp: string
broadcasterId: string
broadcasterLogin: string
broadcasterName: string
userId: string
userLogin: string
userName: string
productType: "BITS_IN_EXTENSION"
productData: ExtensionProduct
}

ExtensionTransactionsPaginatedFilter​

type ExtensionTransactionsPaginatedFilter = {
transactionIds?: Array<string>
before?: string
limit?: number
after?: string
}

ExtensionViews​

type ExtensionViews = {
mobile?: ExtensionMobileView
panel?: ExtensionPanelView
videoOverlay?: ExtensionOverlayView
component?: ExtensionComponentView
config?: ExtensionConfigView
}

ForwardPagination​

type ForwardPagination = {
limit?: number
after?: string
}

PaginatedResult​

type PaginatedResult<T> = {
data: Array<T>
cursor?: string
}