Skip to main content
The Embedded App SDK handles making RPC calls between your application and Discord. It is designed to assist developers in developing interactive Activities like games. To learn more about building Activities, check out our Building an Activity tutorial or explore our Sample Projects.

Install the SDK

The Embedded App SDK is available via npm and GitHub. In your frontend JavaScript project directory, install using your package manager of choice.
npm install @discord/embedded-app-sdk
After installing, you can import and instantiate the SDK in your project.
import { DiscordSDK } from "@discord/embedded-app-sdk";

const discordSdk = new DiscordSDK(DISCORD_CLIENT_ID);

SDK Methods

NameDescription
readyResolves when your app has successfully connected to the Discord client
subscribeSubscribe to an Embedded App SDK Event
unsubscribeUnsubscribe to an Embedded App SDK Event
closeClose an Embedded App

ready()

Resolves when your app has successfully connected to the Discord client.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

ready(): Promise<void>

SDK Usage

async function setup() {
  await discordSdk.ready();
  // The rest of your app logic
}

subscribe()

Used to subscribe to a specific event from the list of SDK Events.

Supported Platforms

WebiOSAndroid

Required Scopes

Depends on the event. Refer to the Required Scopes for the specific event you are subscribing to.

Signature

subscribe<Event>(event: Event, listener: (data: EventPayloadData<Event>) => void, …subscribeArgs: Partial<EventPayloadData<Event>>): Promise<EventEmitter>

Usage

await discordSdk.subscribe("SDK_EVENT_NAME", eventHandler, args);

unsubscribe()

Used to unsubscribe to SDK Events that your app has already subscribed to.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

The EventPayloadData will vary based on the event you are unsubscribing from. See the specific event for details.
unsubscribe<Event>(event: Event, listener: (data: EventPayloadData<Event>) => void, …subscribeArgs: Partial<EventPayloadData<Event>>): Promise<EventEmitter>

Usage

await discordSdk.unsubscribe("SDK_EVENT_NAME");

close()

Used to close your app with a specified code and reason.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

close(code: RPCCloseCodes, message: string): void

SDK Usage

discordSdk.close(RPCCloseCodes.CLOSE_NORMAL, "You exited from app");

SDK Commands

Developers can use these commands to interact with the Discord client. The following SDK commands are prefixed with .commands, such as, discordSDK.commands.authenticate.
NameDescription
authenticateAuthenticate an existing client with your app
authorizeAuthorize a new client with your app
captureLogForward logs to your own logger
encourageHardwareAccelerationPresents a modal dialog to allow enabling of hardware acceleration
getChannelReturns information about the channel, per the channel_id
getChannelPermissionsReturns permissions for the current user in the currently connected channel
getEntitlementsReturns a list of entitlements for the current user
getInstanceConnectedParticipantsReturns all participants connected to the instance
getPlatformBehaviorsReturns information about supported platform behaviors
getRelationshipsReturns the current user’s relationships
getSkusReturns a list of your app’s SKUs
initiateImageUploadPresents the file upload flow in the Discord client
openExternalLinkAllows for opening an external link from within the Discord client
openInviteDialogPresents a modal dialog with Channel Invite UI without requiring additional OAuth scopes
openShareMomentDialogPresents a modal dialog to share media to a channel or DM
setActivityModifies how your activity’s rich presence is displayed in the Discord client
setConfigSet whether or not the PIP (picture-in-picture) is interactive
setOrientationLockStateSet options for orientation and picture-in-picture (PIP) modes
shareLinkPresents a modal for the user to share a link to your activity with custom query params
startPurchaseLaunches the purchase flow for a specific SKU, per the sku_id
userSettingsGetLocaleReturns the current user’s locale

authenticate()

Authenticate an existing client with your app.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

authenticate(args: AuthenticateRequest): Promise<AuthenticateResponse>

Usage

await discordSdk.commands.authenticate({
  access_token: 'ACCESS_TOKEN_STRING'
});

authorize()

Authorize a new client with your app.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

authorize(args: AuthorizeRequest): Promise<AuthorizeResponse>

Usage

await discordSdk.commands.authorize({
  client_id: DISCORD_CLIENT_ID,
  response_type: "code",
  state: "",
  prompt: "none",
  scope: [
    // "applications.builds.upload",
    // "applications.builds.read",
    // "applications.store.update",
    // "applications.entitlements",
    // "bot",
    "identify",
    // "connections",
    // "email",
    // "gdm.join",
    "guilds",
    // "guilds.join",
    // "guilds.members.read",
    // "messages.read",
    // "relationships.read",
    // 'rpc.activities.write',
    // "rpc.notifications.read",
    // "rpc.voice.write",
    // "rpc.voice.read",
    // "webhook.incoming",
  ],
});

captureLog()

Forward logs to your own logger.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

captureLog(args: CaptureLogRequest): Promise<void>

Usage

await discordSdk.commands.captureLog({
  level: 'log',
  message: 'This is my log message!'
});

encourageHardwareAcceleration()

Presents a modal dialog to allow enabling of hardware acceleration.

Supported Platforms

WebiOSAndroid
⛔️⛔️

Required Scopes

No scopes required

Signature

encourageHardwareAcceleration(): Promise<EncourageHardwareAccelerationResponse>

Usage

await discordSdk.commands.encourageHardwareAcceleration();

getChannel()

Returns information about the channel for a provided channel ID.

Supported Platforms

WebiOSAndroid

Required Scopes

  • [guilds] for guild channels
  • [guilds, dm_channels.read] for GDM channels. dm_channels.read requires approval from Discord.

Signature

getChannel(args: GetChannelRequest): Promise<GetChannelResponse>

Usage

await discordSdk.commands.getChannel({
  channel_id: discordSdk.channelId,
});

getChannelPermissions()

Returns permissions for the current user in the currently connected channel.

Supported Platforms

WebiOSAndroid

Required Scopes

  • guilds.members.read

Signature

getChannelPermissions(): Promise<GetChannelPermissionsResponse>

Usage

await discordSdk.commands.getChannelPermissions();

getEntitlements()

Returns a list of entitlements for the current user.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

getEntitlements(): Promise<GetEntitlementsResponse>

Usage

await discordSdk.commands.getEntitlements();

getInstanceConnectedParticipants()

Returns all participants connected to the instance.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

getInstanceConnectedParticipants(): Promise<GetInstanceConnectedParticipantsResponse>

Usage

await discordSdk.commands.getInstanceConnectedParticipants();

getPlatformBehaviors()

Returns information about supported platform behaviors.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

getPlatformBehaviors(): Promise<GetPlatformBehaviorsResponse>

Usage

await discordSdk.commands.getPlatformBehaviors();

getRelationships()

Returns the current user’s relationships.

Supported Platforms

WebiOSAndroid

Required Scopes

  • relationships.read
Requires Discord approval

Signature

getRelationships(): Promise<GetRelationshipsResponse>

Usage

await discordSdk.commands.getRelationships();

getSkus()

Returns a list of SKU objects. SKUs without prices are automatically filtered out.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

getSkus(): Promise<GetSkusResponse>

Usage

await discordSdk.commands.getSkus();

initiateImageUpload()

Presents the file upload flow in the Discord client.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

initiateImageUpload(): Promise<InitiateImageUploadResponse>

Usage

await discordSdk.commands.initiateImageUpload();

Allows for opening an external link from within the Discord client.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

openExternalLink(args: OpenExternalLinkRequest): Promise<OpenExternalLinkResponse>

Usage

await discordSdk.commands.openExternalLink({
  url: 'string url'
});

openInviteDialog()

Presents a modal dialog with Channel Invite UI without requiring additional OAuth scopes.

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

openInviteDialog(): Promise<void>

Usage

await discordSdk.commands.openInviteDialog();

openShareMomentDialog()

Presents a modal dialog to share media to a channel or direct message.

Supported Platforms

WebiOSAndroid
⛔️⛔️

Required Scopes

No scopes required

Signature

openShareMomentDialog(args: OpenShareMomentDialogRequest) Promise<void>

Usage

await discordSdk.commands.openShareMomentDialog({
  mediaUrl: 'DISCORD_CDN_URL'
});

setActivity()

Modifies how your Activity’s Rich Presence data is displayed in the Discord client. The inner activity field is a partial Activity object. Read the guide on Using Rich Presence with the Embedded App SDK for more usage details.

Supported Platforms

WebiOSAndroid

Required Scopes

  • rpc.activities.write

Signature

setActivity(args: SetActivityRequest): Promise<Activity>

Usage

await discordSdk.commands.setActivity({
  activity: {
    type: 0,
    details: 'Details',
    state: 'Playing'
  }
});

setConfig()

Set whether or not the PIP (picture-in-picture) is interactive.

Supported Platforms

WebiOSAndroid
⛔️⛔️

Required Scopes

No scopes required

Signature

setConfig(args: SetConfigRequest): Promise<SetConfigResponse>

Usage

await discordSdk.commands.setConfig({
  use_interactive_pip: true
})

setOrientationLockState()

Locks the application to specific orientations in each of the supported layout modes.

Supported Platforms

WebiOSAndroid
⛔️

Required Scopes

No scopes required

Signature

setOrientationLockState(args: SetOrientationLockStateRequest): Promise<void>

Usage

import {Common} from '@discord/embedded-app-sdk';

await discordSdk.commands.setOrientationLockState({
  lock_state: Common.OrientationLockStateTypeObject.LANDSCAPE,
  picture_in_picture_lock_state: Common.OrientationLockStateTypeObject.LANDSCAPE,
  grid_lock_state: Common.OrientationLockStateTypeObject.UNLOCKED
});

Presents the user with a modal to share a link

Supported Platforms

WebiOSAndroid

Required Scopes

No scopes required

Signature

shareLink(args: ShareLinkRequest): Promise<ShareLinkResponse><void>

Usage

const { success } = await discordSdk.commands.shareLink({
  message: 'This message is shared alongside the link!',
  custom_id: 'some_custom_id',
});
success ? console.log('User shared link!') : console.log('User did not share link!');

startPurchase()

Launches the purchase flow for a specific SKU ID.

Supported Platforms

WebiOSAndroid
⛔️⛔️

Required Scopes

No scopes required

Signature

startPurchase(args: StartPurchaseRequest): Promise<StartPurchaseResponse>

Usage

await discordSdk.commands.startPurchase({sku_id: skuId});

userSettingsGetLocale()

Returns the current user’s locale.

Supported Platforms

WebiOSAndroid

Required Scopes

  • identify

Signature

userSettingsGetLocale(): Promise<UserSettingsGetLocaleResponse>

Usage

await discordSdk.commands.userSettingsGetLocale();

SDK Events

Developers may use the following events alongside the subscribe() SDK method to subscribe to events from Discord and supported devices.
NameDescription
READYnon-subscription event sent immediately after connecting, contains server information
ERRORnon-subscription event sent when there is an error, including command responses
VOICE_STATE_UPDATEsent when a user’s voice state changes in a subscribed voice channel (mute, volume, etc.)
SPEAKING_STARTsent when a user in a subscribed voice channel speaks
SPEAKING_STOPsent when a user in a subscribed voice channel stops speaking
ACTIVITY_LAYOUT_MODE_UPDATEReceived when a user changes the layout mode in the Discord client
ORIENTATION_UPDATEReceived when screen orientation changes
CURRENT_USER_UPDATEReceived when the current user object changes
CURRENT_GUILD_MEMBER_UPDATEReceived when the current guild member object changes
THERMAL_STATE_UPDATEReceived when Android or iOS thermal states are surfaced to the Discord app
ACTIVITY_INSTANCE_PARTICIPANTS_UPDATEReceived when the number of instance participants changes
RELATIONSHIP_UPDATEReceived when a relationship of the current user is updated
ENTITLEMENT_CREATEReceived when an entitlement is created for a SKU

READY

Non-subscription event sent immediately after connecting, contains server information.

Required Scopes

No scopes required

Sample Event Payload

{
  "v": 1,
  "config": {
      "cdn_host": "cdn.discordapp.com",
      "api_endpoint": "//discord.com/api",
      "environment": "production"
  }
}

ERROR

Non-subscription event sent when there is an error, including command responses.

Required Scopes

No scopes required

Sample Event Payload

{
  "code": 4006,
  "message": "Not authenticated or invalid scope"
}

VOICE_STATE_UPDATE

Received when a user’s voice state changes in a subscribed voice channel (mute, volume, etc).

Required Scopes

  • rpc.voice.read

Sample Event Payload

{
  "voice_state": {
    "mute": false,
    "deaf": false,
    "self_mute": false,
    "self_deaf": false,
    "suppress": false
  },
  "user": {
    "id": "190320984123768832",
    "username": "test 2",
    "discriminator": "7479",
    "avatar": "b004ec1740a63ca06ae2e14c5cee11f3",
    "bot": false
  },
  "nick": "test user 2",
  "volume": 110,
  "mute": false,
  "pan": {
    "left": 1.0,
    "right": 1.0
  }
}

SPEAKING_START

Received when a user in a subscribed voice channel speaks.

Required Scopes

  • rpc.voice.read

Sample Event Payload

{
  "channel_id": "7173758092142710784",
  "user_id": "7173758143913005056"
}

SPEAKING_STOP

Received when a user in a subscribed voice channel stops speaking.

Required Scopes

  • rpc.voice.read

Sample Event Payload

{
  "channel_id": "7173758211307081728",
  "user_id": "7173758261412237312"
}

ACTIVITY_LAYOUT_MODE_UPDATE

Received when a user changes the layout mode in the Discord client.

Required Scopes

No scopes required

Sample Event Payload

{
  "layout_mode": 1
}

ORIENTATION_UPDATE

Received when screen orientation changes.

Required Scopes

No scopes required

Sample Event Payload

{
  "screen_orientation": 1
}

CURRENT_USER_UPDATE

Received when the current user object changes.

Required Scopes

  • identify

Sample Event Payload

{
  "id": "7173771622812225536",
  "username": "beef_supreme",
  "discriminator": "0",
  "global_name": "Dis Cord",
  "avatar": "abcdefg",
  "avatar_decoration_data": {
    "asset": "abcdefg",
    "sku_id": "123456789"
  },
  "bot": false,
  "flags": 1,
  "premium_type": 2
}

CURRENT_GUILD_MEMBER_UPDATE

Received when the current guild member object changes.

Required Scopes

  • identify
  • guilds.members.read

Sample Event Payload

{
  "user_id": "7173771622812225536",
  "nick": "beef_supreme",
  "guild_id": "613425648685547541"
  "avatar": "abcdefg",
  "avatar_decoration_data": {
    "asset": "abcdefg",
    "sku_id": "123456789"
  },
  "color_string": "#ffff00"
}

THERMAL_STATE_UPDATE

Received when Android or iOS thermal states are surfaced to the Discord mobile app.

Required Scopes

No scopes required

Sample Event Payload

{
  thermal_state: 0
}

ACTIVITY_INSTANCE_PARTICIPANTS_UPDATE

Received when the number of instance participants changes.

Required Scopes

No scopes required

Sample Event Payload

{
  "participants": [
    {
      "id": "7173771622812225536",
      "username": "beef_supreme",
      "discriminator": "0",
      "global_name": "Dis Cord",
      "avatar": "abcdefg",
      "avatar_decoration_data": {
        "asset": "abcdefg",
        "sku_id": "123456789"
      },
      "bot": false,
      "flags": 1,
      "premium_type": 2
    }
  ]
}

RELATIONSHIP_UPDATE

Received when a relationship of the current user is updated.

Required Scopes

  • relationships.read
Requires Discord approval

Sample Event Payload

{
  "type": 1,
  "user": {
      "id": "7173771622812225536",
      "username": "beef_supreme",
      "discriminator": "0",
      "global_name": "Dis Cord",
      "avatar": "abcdefg",
      "avatar_decoration_data": {
        "asset": "abcdefg",
        "sku_id": "123456789"
      },
      "bot": false,
      "flags": 1,
      "premium_type": 2
  }
}

ENTITLEMENT_CREATE

Coming soon! Not available during Developer Preview

SDK Interfaces

Activity

PropertyType
namestring
typenumber
url?string | null
created_at?number | null
timestamps?Timestamp | null
application_id?string | null
details?string | null
details_url?string | null
state?string | null
state_url?string | null
emoji?Emoji | null
party?Party | null
assets?Assets | null
secrets?Secrets | null
instance?boolean | null
flags?number | null

Assets

PropertyType
large_image?string | null
large_text?string | null
large_url?string | null
small_image?string | null
small_text?string | null
small_url?string | null

Application

PropertyType
descriptionstring
icon?string | null
idstring
rpc_origins?string[]
namestring

Attachment

PropertyType
idstring
filenamestring
sizenumber
urlstring
proxy_urlstring
height?number | null
width?number | null

AuthenticateRequest

PropertyType
access_token?string | null

AuthenticateResponse

PropertyType
access_tokenstring
userUser
scopesstring[]
expiresstring
applicationApplication

AuthorizeRequest

PropertyType
client_idstring
scopeOAuthScopes[]
response_type?‘code’
code_challenge?string
state?string
prompt?‘none’
code_challenge_method?‘S256’

AuthorizeResponse

PropertyType
codestring

AvatarDecorationData

PropertyType
assetstring
sku_id?string | null

CaptureLogRequest

PropertyType
levelConsoleLevel
messagestring

ChannelMention

PropertyType
idstring
guild_idstring
typenumber
namestring

Embed

PropertyType
title?string | null
type?string | null
description?string | null
url?string | null
timestamp?string | null
color?number | null
footer?EmbedFooter | null
image?Image | null
thumbnail?Image | null
video?Video | null
provider?EmbedProvider | null
author?EmbedAuthor | null
fields?EmbedField[] | null

EmbedAuthor

PropertyType
name?string | null
url?string | null
icon_url?string | null
proxy_icon_url?string | null

EmbedField

PropertyType
namestring
valuestring
inlineboolean

EmbedFooter

PropertyType
textstring
icon_url?string | null
proxy_icon_url?string | null

EmbedProvider

PropertyType
name?string | null
url?string | null

Emoji

PropertyType
idstring
name?string | null
roles?string[] | null
user?User | null
require_colons?boolean | null
managed?boolean | null
animated?boolean | null
available?boolean | null

EncourageHardwareAccelerationResponse

PropertyType
enabledboolean

Entitlement

PropertyType
idstring
sku_idstring
application_idstring
user_idstring
gift_code_flagsnumber
typestring | number
gifter_user_id?string | null
branches?string[] | null
starts_at?string | null
ends_at?string | null
parent_id?string | null
consumed?boolean | null
deleted?boolean | null
gift_code_batch_id?string | null

GetChannelPermissionsResponse

PropertyType
permissionsbigint | string

GetChannelRequest

PropertyType
channel_idstring

GetChannelResponse

PropertyType
idstring
typeChannelTypesObject
guild_id?string | null
name?string | null
topic?string | null
bitrate?number | null
user_limit?number | null
position?number | null
voice_statesUserVoiceState[]
messagesMessage[]

GetEntitlementsResponse

PropertyType
entitlementsEntitlement[]

GetInstanceConnectedParticipantsResponse

PropertyType
participantsUser[]

GetPlatformBehaviorsResponse

PropertyType
iosKeyboardResizesView?boolean

GetRelationshipsResponse

PropertyType
relationshipsRelationship[]

GetSkusResponse

PropertyType
skusSku[]

GuildMember

PropertyType
userUser
nick?string | null
rolesstring[]
joined_atstring
deafboolean
muteboolean

GuildMemberRPC

PropertyType
user_idstring
nick?string | null
guild_idstring
avatar?string | null
avatar_decoration_data?AvatarDecorationData | null
color_string?string | null

Image

PropertyType
url?string | null
proxy_url?string | null
height?number | null
width?number | null

InitiateImageUploadResponse

PropertyType
image_urlstring

Message

PropertyType
idstring
channel_idstring
guild_id?string | null
author?User | null
member?GuildMember | null
contentstring
timestampstring
edited_timestamp?string | null
ttsboolean
mention_everyoneboolean
mentionsUser[]
mention_rolesstring[]
mention_channelsChannelMention[]
attachmentsAttachment[]
embedsEmbed[]
reactions?Reaction[] | null
nonce?stringnumber | null
pinnedboolean
webhook_id?string | null
typenumber
activity?MessageActivity | null
application?MessageApplication | null
message_reference?MessageReference | null
flags?number
stickers?Sticker[] | null
referenced_message?Message | null

MessageActivity

PropertyType
typenumber
party_id?string | null

MessageApplication

PropertyType
idstring
cover_image?string | null
descriptionstring
icon?string | null
namestring

MessageReference

PropertyType
message_id?string | null
channel_id?string | null
guild_id?string | null

OpenExternalLinkRequest

PropertyType
urlstring

OpenExternalLinkResponse

{ opened: null } is returned on Discord clients before December 2024 that do not report the open link result.
PropertyType
openedboolean | null

OpenShareMomentDialogRequest

PropertyType
mediaUrlstring

Party

PropertyType
id?string | null
size?number[] | null

Reaction

PropertyType
countnumber
meboolean
emojiEmoji

Relationship

PropertyType
typenumber
userUser

Secrets

PropertyType
join?string
match?string

SetActivityRequest

PropertyType
activityActivity

SetConfigRequest

PropertyType
use_interactive_pipboolean

SetConfigResponse

PropertyType
use_interactive_pipboolean

SetOrientationLockStateRequest

PropertyType
lock_stateOrientationLockState
picture_in_picture_lock_stateOrientationLockState
grid_lock_stateOrientationLockState

ShareLinkRequest

PropertyType
custom_id?string
messagestring

ShareLinkResponse

PropertyType
successboolean

Sku

PropertyType
idstring
namestring
typeSkuTypeObject
priceSkuPrice
application_idstring
flagsnumber
release_datestring | null

SkuPrice

PropertyType
amountnumber
currencystring

StartPurchaseRequest

PropertyType
sku_idstring

StartPurchaseResponse

Value
Entitlement[] | null

Timestamp

PropertyType
start?number
end?number

User

PropertyType
idstring
usernamestring
discriminatorstring
global_name?string | null
avatar?string | null
avatar_decoration_dataAvatarDecorationData | null
botboolean
flags?number | null
premium_type?number | null

UserSettingsGetLocaleResponse

PropertyType
localestring

UserVoiceState

PropertyType
muteboolean
nickstring
userUser
voice_stateVoiceState
volumenumber

Video

PropertyType
url?string | null
height?number | null
width?number | null

VoiceState

PropertyType
muteboolean
deafboolean
self_muteboolean
self_deafboolean
suppressboolean

SDK Enums

ChannelTypesObject

NameValue
UNHANDLED-1
DM1
GROUP_DM3
GUILD_TEXT0
GUILD_VOICE2
GUILD_CATEGORY4
GUILD_ANNOUNCEMENT5
GUILD_STORE6
ANNOUNCEMENT_THREAD10
PUBLIC_THREAD11
PRIVATE_THREAD12
GUILD_STAGE_VOICE13
GUILD_DIRECTORY14
GUILD_FORUM15

ConsoleLevel

Value
’error'
'log'
'warn'
'debug'
'info’

OrientationLockStateTypeObject

NameValue
UNHANDLED-1
UNLOCKED1
PORTRAIT2
LANDSCAPE3

ThermalStateTypeObject

NameValue
UNHANDLED-1
NOMINAL0
FAIR1
SERIOUS2
CRITICAL3

OrientationTypeObject

NameValue
UNHANDLED-1
PORTRAIT0
LANDSCAPE1

LayoutModeTypeObject

NameValue
UNHANDLED-1
FOCUSED0
PIP1
GRID2

OAuthScopes

Value
’bot'
'rpc'
'identify'
'connections'
'email'
'guilds'
'guilds.join'
'guilds.members.read'
'gdm.join'
'messages.read'
'rpc.notifications.read'
'rpc.voice.write'
'rpc.voice.read'
'rpc.activities.write'
'webhook.incoming'
'applications.commands'
'applications.builds.upload'
'applications.builds.read'
'applications.store.update'
'applications.entitlements'
'relationships.read'
'activities.read'
'activities.write'
'dm_channels.read’

RPCCloseCodes

NameCode
CLOSE_NORMAL1000
CLOSE_UNSUPPORTED1003
CLOSE_ABNORMAL1006
INVALID_CLIENTID4000
INVALID_ORIGIN4001
RATELIMITED4002
TOKEN_REVOKED4003
INVALID_VERSION4004
INVALID_ENCODING4005

SkuTypeObject

NameValue
UNHANDLED-1
APPLICATION1
DLC2
CONSUMABLE3
BUNDLE4
SUBSCRIPTION5

Relationship Types

ValueNameDescription
0NoneThe user has no relationship with the other user.
1FriendThe user is friends with the other user.
2BlockedThe current user has blocked the target user.
3Pending IncomingThe current user has received a friend request from the target user, but it is not yet accepted.
4Pending OutgoingThe current user has sent a friend request to the target user, but it is not yet accepted.
5ImplicitThe Implicit type is documented for visibility, but should be unused in the SDK.
6SuggestionThe Suggestion type is documented for visibility, but should be unused in the SDK.