Skip to main content

Users

FunctionReturns
getUsersByIdsPromise<Array<User>>
getUsersByNamesPromise<Array<User>>
getUserByIdPromise<User | null>
getUserByIdBatchedPromise<User | null>
getUserByNamePromise<User | null>
getUserByNameBatchedPromise<User | null>
getAuthenticatedUserPromise<PrivilegedUser>
updateAuthenticatedUserPromise<PrivilegedUser>
getBlocksPromise<PaginatedResult<UserBlock>>
createBlockPromise<void>
deleteBlockPromise<void>
getExtensionsForAuthenticatedUserPromise<Array<UserExtension>>
getActiveExtensionsPromise<InstalledExtensionList>
updateActiveExtensionsForAuthenticatedUserPromise<InstalledExtensionList>

Functions​

getUsersByIds​

twitch.user.getUsersByIds(userIds: Array<UserIdResolvable>): Promise<Array<User>>

getUsersByNames​

twitch.user.getUsersByNames(userNames: Array<UserNameResolvable>): Promise<Array<User>>

getUserById​

twitch.user.getUserById(userId: UserIdResolvable): Promise<User | null>

getUserByIdBatched​

twitch.user.getUserByIdBatched(userId: UserIdResolvable): Promise<User | null>

getUserByName​

twitch.user.getUserByName(userName: UserNameResolvable): Promise<User | null>

getUserByNameBatched​

twitch.user.getUserByNameBatched(userName: UserNameResolvable): Promise<User | null>

getAuthenticatedUser​

twitch.user.getAuthenticatedUser(userId: UserIdResolvable, withEmail?: boolean): Promise<PrivilegedUser>

updateAuthenticatedUser​

twitch.user.updateAuthenticatedUser(userId: UserIdResolvable, data: UserUpdate): Promise<PrivilegedUser>

getBlocks​

twitch.user.getBlocks(userId: UserIdResolvable, pagination?: ForwardPagination): Promise<PaginatedResult<UserBlock>>

createBlock​

twitch.user.createBlock(userId: UserIdResolvable, additionalInfo?: UserBlockAdditionalInfo): Promise<void>

deleteBlock​

twitch.user.deleteBlock(userId: UserIdResolvable): Promise<void>

getExtensionsForAuthenticatedUser​

twitch.user.getExtensionsForAuthenticatedUser(withInactive?: boolean): Promise<Array<UserExtension>>

getActiveExtensions​

twitch.user.getActiveExtensions(userId: UserIdResolvable, withDev?: boolean): Promise<InstalledExtensionList>

updateActiveExtensionsForAuthenticatedUser​

twitch.user.updateActiveExtensionsForAuthenticatedUser(data: UserExtensionUpdatePayload): Promise<InstalledExtensionList>

Types​

BroadcasterType​

type BroadcasterType = "" | "partner" | "affiliate"

EmptySlot​

type EmptySlot = {
active: false
}

ExtensionType​

type ExtensionType = "panel" | "overlay" | "component" | "mobile"

ForwardPagination​

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

InstalledExtension​

type InstalledExtension = {
active: true
id: string
version: string
name: string
}

InstalledExtensionList​

type InstalledExtensionList = {
panel: {
'1': InstalledExtension | EmptySlot
'2': InstalledExtension | EmptySlot
'3': InstalledExtension | EmptySlot
}
overlay: {
'1': InstalledExtension | EmptySlot
}
component: {
'1': InstalledExtension | EmptySlot
'2': InstalledExtension | EmptySlot
}
}

PaginatedResult​

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

PrivilegedUser​

type PrivilegedUser = {
email?: string
id: string
login: string
displayName: string
description: string
type: UserType
broadcasterType: BroadcasterType
profileImageUrl: string
offlineImageUrl: string
viewCount: number
createdAt: string
}

User​

type User = {
id: string
login: string
displayName: string
description: string
type: UserType
broadcasterType: BroadcasterType
profileImageUrl: string
offlineImageUrl: string
viewCount: number
createdAt: string
}

UserBlock​

type UserBlock = {
userId: string
userLogin: string
displayName: string
}

UserBlockAdditionalInfo​

type UserBlockAdditionalInfo = {
sourceContext?: "chat" | "whisper"
reason?: "other" | "spam" | "harassment"
}

UserExtension​

type UserExtension = {
canActivate: boolean
type: Array<ExtensionType>
id: string
version: string
name: string
}

UserExtensionUpdatePayload​

type UserExtensionUpdatePayload = {
panel?: {
'1'?: UserExtensionUpdatePayloadInactiveSlot | UserExtensionUpdatePayloadActiveSlot
'2'?: UserExtensionUpdatePayloadInactiveSlot | UserExtensionUpdatePayloadActiveSlot
'3'?: UserExtensionUpdatePayloadInactiveSlot | UserExtensionUpdatePayloadActiveSlot
}
overlay?: {
'1'?: UserExtensionUpdatePayloadInactiveSlot | UserExtensionUpdatePayloadActiveSlot
}
component?: {
'1'?: UserExtensionUpdatePayloadInactiveSlot | UserExtensionUpdatePayloadActiveSlot
'2'?: UserExtensionUpdatePayloadInactiveSlot | UserExtensionUpdatePayloadActiveSlot
}
}

UserExtensionUpdatePayloadActiveSlot​

type UserExtensionUpdatePayloadActiveSlot = {
active: true
id: string
version?: string
}

UserExtensionUpdatePayloadInactiveSlot​

type UserExtensionUpdatePayloadInactiveSlot = {
active: false
}

UserIdResolvable​

type UserIdResolvable = string | UserIdResolvableType

UserIdResolvableType​

type UserIdResolvableType = {
id: string
}

UserNameResolvable​

type UserNameResolvable = string | UserNameResolveableType

UserNameResolveableType​

type UserNameResolveableType = {
name: string
}

UserType​

type UserType = "" | "staff" | "admin" | "global_mod"

UserUpdate​

type UserUpdate = {
description?: string
}