Applications

Applications are Discord entities that represent games, services, and other integrations within Discord. Applications can be used for a variety of purposes, including OAuth2 authentication, rich presence, bots, and much more. Any external service that integrates with Discord in some way, including many first-party features like Stickers and Nitro, have an associated application.

Application Object

Application Structure
FieldTypeDescription
idsnowflakeThe ID of the application
namestringThe name of the application
descriptionstringThe description of the application
icon?stringThe application's icon hash
cover_image?stringThe application's default rich presence invite cover image hash
splash?stringThe application's splash hash
type?integerThe type of the application, if any
flagsintegerThe application's flags (including private)
primary_sku_id? 1snowflakeThe ID of the application's primary SKU (game, application subscription, etc.)
verify_keystringThe hex encoded client public key for verification in interactions and the GameSDK's GetTicket
guild_id?snowflakeThe ID of the guild linked to the application
eula_id?snowflakeThe ID of the EULA required to play the application's game
slug? 1stringThe URL slug that links to the primary store page of the application
aliases?array[string]Other names the application's game is associated with
executables?array[application executable object]The unique executables of the application's game
third_party_skus?array[application SKU object]The third party SKUs of the application's game
hookbooleanWhether the Discord client is allowed to hook into the application's game directly
overlay?booleanWhether the application's game supports the Discord overlay (default false)
overlay_methods?integerThe methods of overlaying that the application's game supports
overlay_warn?booleanWhether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hook?booleanWhether to use the compatibility hook for the overlay (default false)
bot?partial user objectThe bot attached to this application
ownerpartial user objectThe owner of the application
team? 2?team objectThe team that owns the application
developers?array[company object]The companies that developed the application
publishers?array[company object]The companies that published the application
rpc_origins?array[string]The whitelisted RPC origin URLs for the application, if RPC is enabled
redirect_urisarray[string]The whitelisted URLs for redirecting to during OAuth2 authorization (max 10)
deeplink_uri?stringThe URL used for deep linking during OAuth2 authorization on mobile devices
integration_publicbooleanWhether only the application owner can add the integration
integration_require_code_grantbooleanWhether the integration will only be added upon completion of a full OAuth2 token exchange
bot_public? 3 (deprecated)booleanWhether only the application owner can add the bot
bot_require_code_grant? 3 (deprecated)booleanWhether the application's bot will only be added upon completion of a full OAuth2 token exchange
bot_disabled?booleanWhether the application's bot is disabled by Discord (default false)
bot_quarantined?booleanWhether the application's bot is quarantined by Discord; quarantined bots cannot join more guilds or start new direct messages (default false)
bot_approximate_guild_count?integerApproximate count of guilds the application's bot is in
approximate_guild_count?integerApproximate count of guilds that have authorized the application with the applications.commands scope
approximate_user_install_countintegerApproximate count of users that have authorized the application with the applications.commands scope
approximate_user_authorization_countintegerApproximate count of users that have OAuth2 authorizations for the application
internal_guild_restrictionintegerWhat guilds the application can be authorized in
terms_of_service_url?stringThe URL to the application's terms of service
privacy_policy_url?stringThe URL to the application's privacy policy
role_connections_verification_url?stringThe role connection verification entry point of the integration; when configured, this will render the application as a verification method in guild role verification configuration
interactions_endpoint_urlstringThe URL of the application's interactions endpoint
interactions_versionintegerThe version of the application's interactions endpoint implementation
interactions_event_types 4array[string]The enabled event webhook types to send to the interaction endpoint
event_webhooks_status?integerWhether event webhooks are enabled
event_webhooks_url?stringThe URL of the application's event webhooks endpoint
event_webhooks_types?array[string]The enabled event webhook types to send to the event webhooks endpoint
explicit_content_filterintegerWhether uploaded media content used in application commands is scanned and deleted for explicit content
tags?array[string]Tags describing the content and functionality of the application (max 20 characters, max 5)
install_params?application install params objectThe default in-app authorization link for the integration
custom_install_url?stringThe default custom authorization link for the integration
integration_types_config?map[integer, ?application integration type configuration object]The configuration for each integration type supported by the application
connection_entrypoint_url?stringThe URL which users will be directed to when connecting their account in the application to their Discord account
is_verifiedbooleanWhether the application is verified
verification_stateintegerThe current verification state of the application
store_application_stateintegerThe current store approval state of the commerce application
rpc_application_stateintegerThe current RPC approval state of the application
creator_monetization_state 5integerThe current guild creator monetization state of the application
is_discoverablebooleanWhether the application is discoverable in the application directory
discoverability_stateintegerThe current application directory discoverability state of the application
discovery_eligibility_flagsintegerThe current application directory eligibility flags for the application
is_monetizedbooleanWhether the application has monetization enabled
storefront_availablebooleanWhether the application has public subscriptions or products available for purchase
monetization_stateintegerThe current application monetization state of the application
monetization_eligibility_flags? 2integerThe current application monetization eligibility flags for the application
max_participants? 6integerThe maximum possible participants in the application's embedded activity (-1 for no limit)
embedded_activity_config? 6embedded activity config objectThe configuration for the application's embedded activity
approved_consolesarray[integer]The approved console types for social SDK builds
pricing_localization_strategystringThe pricing localization strategy used for the application's store presence

1 The primary_sku_id and slug fields can be combined to form a URL to the application's primary store page like so: https://discord.com/store/skus/{primary_sku_id}/{slug}.

2 Only present when fetched from the Get Current Application, Get Application, or Transfer Application endpoints.

3 In some cases, these fields may still be provided instead of integration_public and integration_require_code_grant. These fields will not be present if the application does not have a bot.

4 The sending of Gateway events over the interactions endpoint requires interactions version 2.

5 Only applicable for applications of type CREATOR_MONETIZATION.

6 Only applicable for applications with the EMBEDDED flag.

Partial Application Structure
FieldTypeDescription
idsnowflakeThe ID of the application
namestringThe name of the application
descriptionstringThe description of the application
icon?stringThe application's icon hash
cover_image?stringThe application's default rich presence invite cover image hash
splash?stringThe application's splash hash
type?integerThe type of the application, if any
flagsintegerThe application's flags (including private)
primary_sku_id? 1snowflakeThe ID of the application's primary SKU (game, application subscription, etc.)
verify_keystringThe hex encoded client public key for verification in interactions and the GameSDK's GetTicket
guild_id?snowflakeThe ID of the guild linked to the application
guild? 2partial guild objectThe guild linked to the application
eula_id?snowflakeThe ID of the EULA required to play the application's game {/ todo: link this here /}
slug? 1stringThe URL slug that links to the primary store page of the application
aliases?array[string]Other names the application's game is associated with
executables?array[application executable object]The unique executables of the application's game
third_party_skus?array[application SKU object]The third party SKUs of the application's game
hookbooleanWhether the Discord client is allowed to hook into the application's game directly
overlay?booleanWhether the application's game supports the Discord overlay (default false)
overlay_methods?integerThe methods of overlaying that the application's game supports
overlay_warn?booleanWhether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hook?booleanWhether to use the compatibility hook for the overlay (default false)
bot?partial user objectThe bot attached to this application
team? 3?team objectThe team that owns the application
developers?array[company object]The companies that developed the application
publishers?array[company object]The companies that published the application
rpc_origins?array[string]The whitelisted RPC origin URLs for the application, if RPC is enabled
deeplink_uri?stringThe URL used for deep linking during OAuth2 authorization on mobile devices
integration_public?booleanWhether only the application owner can add the integration
integration_require_code_grant?booleanWhether the integration will only be added upon completion of a full OAuth2 token exchange
bot_public? 4 (deprecated)booleanWhether only the application owner can add the bot
bot_require_code_grant? 4 (deprecated)booleanWhether the application's bot will only be added upon completion of a full OAuth2 token exchange
terms_of_service_url??stringThe URL to the application's terms of service
privacy_policy_url??stringThe URL to the application's privacy policy
tags?array[string]Tags describing the content and functionality of the application (max 20 characters, max 5)
install_params?application install params objectThe default in-app authorization link for the integration
custom_install_url?stringThe default custom authorization link for the integration
integration_types_config?map[integer, ?application integration type configuration object]The configuration for each integration type supported by the application
connection_entrypoint_url?stringThe URL which users will be directed to when connecting their account in the application to their Discord account
is_verifiedbooleanWhether the application is verified
is_discoverablebooleanWhether the application is discoverable in the application directory
is_monetizedbooleanWhether the application has monetization enabled
storefront_availablebooleanWhether the application has public subscriptions or products available for purchase
max_participants? 5integerThe maximum possible participants in the application's embedded activity (-1 for no limit)
embedded_activity_config? 5embedded activity config objectThe configuration for the application's embedded activity
parent_id?snowflakeThe ID of the parent application

1 The primary_sku_id and slug fields can be combined to form a URL to the application's primary store page like so: https://discord.com/store/skus/{primary_sku_id}/{slug}.

2 Only present when fetched from the Get Partial Application endpoint with with_guild set to true. The guild must be discoverable.

3 Only present when fetched from the Get Guild Applications endpoint. You must own the application or be a member of the owning team to receive this information.

4 In some cases, these fields may still be provided instead of integration_public and integration_require_code_grant. These fields will not be present if the application does not have a bot.

5 Only applicable for applications with the EMBEDDED flag.

Application Type
ValueNameDescription
1DEPRECATED_GAMEA game integrating with Discord through the legacy GameSDK or sold on the defunct game store
2MUSICA music service integrating with Discord
3 1TICKETED_EVENTSA limited application used for ticketed event SKUs
4 1CREATOR_MONETIZATIONA limited application used for creator monetization (e.g. role subscription) SKUs
5GAMEA game integrating with Discord

1 Applications of these types cannot be used through most of the regular applications APIs outlined here.

Application Flags
ValueNameDescriptionPublic
1 << 1EMBEDDED_RELEASEDEmbedded application is released to the public (see also release phases)Yes
1 << 2MANAGED_EMOJIApplication can create managed emojiNo
1 << 3EMBEDDED_IAPEmbedded application can use in-app purchasesYes
1 << 4GROUP_DM_CREATEApplication can create group DMs without limitNo
1 << 5RPC_PRIVATE_BETAApplication can use the rpc scope without limitationNo
1 << 6AUTO_MODERATION_RULE_CREATE_BADGEApplication has created 100+ AutoMod rulesYes
1 << 7GAME_PROFILE_DISABLEDApplication has its game profile page disabledYes
1 << 8PUBLIC_OAUTH2_CLIENTApplication's OAuth2 credentials are considered public and a client secret is not requiredNo
1 << 9CONTEXTLESS_ACTIVITYEmbedded application's activity can be launched without a contextYes
1 << 10SOCIAL_LAYER_INTEGRATION_LIMITEDApplication has limited access to the social layer SDKYes
1 << 11CLOUD_GAMING_DEMOApplication is trialing cloud gaming featuresNo
1 << 12GATEWAY_PRESENCEIntent required for bots in 100 or more guilds to receive Presence Update Gateway eventsYes
1 << 13GATEWAY_PRESENCE_LIMITEDIntent required for bots in under 100 guilds to receive Presence Update Gateway eventsYes
1 << 14GATEWAY_GUILD_MEMBERSIntent required for bots in 100 or more guilds to receive guild member-related events like Guild Member AddYes
1 << 15GATEWAY_GUILD_MEMBERS_LIMITEDIntent required for bots in under 100 guilds to receive guild member-related events like Guild Member AddYes
1 << 16VERIFICATION_PENDING_GUILD_LIMITIndicates unusual growth of an application that prevents verificationYes
1 << 17EMBEDDEDApplication can be embedded within the Discord clientYes
1 << 18GATEWAY_MESSAGE_CONTENTIntent required for bots in 100 or more guilds to receive message contentYes
1 << 19GATEWAY_MESSAGE_CONTENT_LIMITEDIntent required for bots in under 100 guilds to receive message contentYes
1 << 20EMBEDDED_FIRST_PARTYEmbedded application is created by DiscordYes
1 << 21APPLICATION_COMMAND_MIGRATEDUnknownYes
1 << 23APPLICATION_COMMAND_BADGEApplication has registered global application commandsYes
1 << 24ACTIVEApplication has had at least one global application command used in the last 30 daysNo
1 << 25ACTIVE_GRACE_PERIODApplication has not had any global application commands used in the last 30 days and has lost the ACTIVE flagNo
1 << 26IFRAME_MODALApplication can use IFrames within modalsYes
1 << 27SOCIAL_LAYER_INTEGRATIONApplication can use the social layer SDKYes
1 << 29PROMOTEDApplication is promoted by Discord in the application directoryYes
1 << 30PARTNERApplication is a Discord partnerYes
1 << 33PARENTApplication is a parent of a child applicationYes
1 << 34DISABLE_RELATIONSHIP_ACCESSApplication cannot access relationship informationYes
1 << 8ALLOW_ASSETSApplication can use activity assetsNo
1 << 9ALLOW_ACTIVITY_ACTION_SPECTATEApplication can enable spectating activitiesNo
1 << 10ALLOW_ACTIVITY_ACTION_JOIN_REQUESTApplication can enable activity join requestsNo
1 << 11RPC_HAS_CONNECTEDApplication has accessed the client RPC server beforeYes
Overlay Method Flags
ValueNameDescription
1 << 0OUT_OF_PROCESSOverlay can be rendered out of process
Internal Guild Restriction
ValueNameDescription
1JOIN_ALLThe application can be authorized in any guild
2JOIN_EXTERNAL_ONLYThe application can only be authorized in guilds without the INTERNAL_EMPLOYEE_ONLY guild feature
3JOIN_INTERNAL_ONLYThe application can only be authorized in guilds with the INTERNAL_EMPLOYEE_ONLY guild feature
Application Interactions Version
ValueNameDescription
1VERSION_1Only Interaction Create events are sent as documented (default)
2VERSION_2A selection of chosen events are sent
Event Webhooks Status
ValueNameDescription
1DISABLEDEvent webhooks are disabled
2ENABLEDEvent webhooks are enabled
Event Webhooks Type
ValueDescription
APPLICATION_AUTHORIZEDSent when a user authorizes the application
APPLICATION_DEAUTHORIZEDSent when a user deauthorizes the application
ENTITLEMENT_CREATESent when a user creates an entitlement
ENTITLEMENT_UPDATESent when an entitlement is updated
ENTITLEMENT_DELETESent when an entitlement is deleted
QUEST_USER_ENROLLMENTSent when a user enrolls in a quest
LOBBY_MESSAGE_CREATESent when a user sends a message in a lobby
LOBBY_MESSAGE_UPDATESent when a user updates a message in a lobby
LOBBY_MESSAGE_DELETESent when a user deletes a message in a lobby
GAME_DIRECT_MESSAGE_CREATESent when a user sends a direct message through the social layer SDK
GAME_DIRECT_MESSAGE_UPDATESent when a user updates a direct message through the social layer SDK
GAME_DIRECT_MESSAGE_DELETESent when a user deletes a direct message through the social layer SDK
Explicit Content Filter Level
ValueNameDescription
0INHERITInherits the guild's explicit content filter
1ALWAYSMedia content will always be scanned
Application Verification State
ValueNameDescription
1INELIGIBLEThis application is ineligible for verification
2UNSUBMITTEDThis application has not yet been applied for verification
3SUBMITTEDThis application has submitted a verification request
4APPROVED_MANUALLYThis application has been verified manually from Discord staff or using the old verification process
5BLOCKEDThis application is blocked and cannot be verified
6APPROVED_AUTOMATICALLYThis application has been verified automatically through the Stripe identity verification process
Store Application State
ValueNameDescription
1NONEThis application does not have a commerce license
2PAIDThis application has a commerce license but has not yet submitted a store approval request
3SUBMITTEDThis application has submitted a store approval request
4APPROVEDThis application has been approved for the store
5REJECTEDThis application has been rejected from the store
RPC Application State
ValueNameDescription
0DISABLEDThis application does not have access to RPC
1UNSUBMITTEDThis application has not yet been applied for RPC access
2SUBMITTEDThis application has submitted a RPC access request
3APPROVEDThis application has been approved for RPC access
4REJECTEDThis application has been rejected from RPC access
Application Discoverability State
ValueNameDescription
1INELIGIBLEThis application is ineligible for the application directory
2NOT_DISCOVERABLEThis application is not listed in the application directory
3DISCOVERABLEThis application is listed in the application directory
4FEATUREABLEThis application is featurable in the application directory
5BLOCKEDThis application has been blocked from appearing in the application directory
Application Discovery Eligibility Flags
ValueNameDescription
1 << 0VERIFIEDApplication is verified
1 << 1TAGApplication has at least one tag set
1 << 2DESCRIPTIONApplication has a description
1 << 3TERMS_OF_SERVICEApplication has terms of service set
1 << 4PRIVACY_POLICYApplication has a privacy policy set
1 << 5INSTALL_PARAMSApplication has a custom install URL or install parameters
1 << 6SAFE_NAMEApplication's name is safe for work
1 << 7SAFE_DESCRIPTIONApplication's description is safe for work
1 << 8APPROVED_COMMANDSApplication has the message content intent approved or utilizes application commands
1 << 9SUPPORT_GUILDApplication has a support guild set
1 << 10SAFE_COMMANDSApplication's commands are safe for work
1 << 11MFAApplication's owner has MFA enabled
1 << 12SAFE_DIRECTORY_OVERVIEWApplication's directory long description is safe for work
1 << 13SUPPORTED_LOCALESApplication has at least one supported locale set
1 << 14SAFE_SHORT_DESCRIPTIONApplication's directory short description is safe for work
1 << 15SAFE_ROLE_CONNECTIONSApplication's role connections metadata is safe for work
Application Monetization State
ValueNameDescription
1NONEThis application does not have monetization set up
2ENABLEDThis application has monetization set up
3BLOCKEDThis application has been blocked from monetizing
Creator Monetization State

The values of this enum are currently unknown. Help us by figuring them out and submitting a pull request!

Application Monetization Eligibility Flags
ValueNameDescription
1 << 0VERIFIEDApplication is verified
1 << 1HAS_TEAMApplication is owned by a team
1 << 2APPROVED_COMMANDSApplication has the message content intent approved or utilizes application commands
1 << 3TERMS_OF_SERVICEApplication has terms of service set
1 << 4PRIVACY_POLICYApplication has a privacy policy set
1 << 5SAFE_NAMEApplication's name is safe for work
1 << 6SAFE_DESCRIPTIONApplication's description is safe for work
1 << 7SAFE_ROLE_CONNECTIONSApplication's role connections metadata is safe for work
1 << 8USER_IS_TEAM_OWNERUser is the owner of the team that owns the application
1 << 9NOT_QUARANTINEDApplication is not quarantined
1 << 10USER_LOCALE_SUPPORTEDUser's locale is supported by monetization
1 << 11USER_AGE_SUPPORTEDUser is old enough to use monetization
1 << 12USER_DATE_OF_BIRTH_DEFINEDUser has a date of birth defined on their account
1 << 13USER_MFA_ENABLEDUser has MFA enabled
1 << 14USER_EMAIL_VERIFIEDUser's email is verified
1 << 15TEAM_MEMBERS_EMAIL_VERIFIEDAll members of the team that owns the application have verified emails
1 << 16TEAM_MEMBERS_MFA_ENABLEDAll members of the team that owns the application have MFA enabled
1 << 17NO_BLOCKING_ISSUESThis application has no issues blocking monetization
1 << 18VALID_PAYOUT_STATUSOwning team has a valid payout status
Pricing Localization Strategy

The values of this enum are currently unknown. Help us by figuring them out and submitting a pull request!

ValueDescription
localized_price_setsLocalized price for each currency
Example Application
{
"id": "891436243903728565",
"name": "Socket",
"icon": "26f3dcdc6e6371b52c384c812c30546c",
"description": "Socket",
"type": null,
"is_monetized": false,
"is_verified": false,
"is_discoverable": false,
"bot": {
"id": "891436243903728565",
"username": "Socket",
"avatar": "26f3dcdc6e6371b52c384c812c30546c",
"discriminator": "0001",
"public_flags": 0,
"bot": true,
"banner": null,
"accent_color": null,
"global_name": null,
"avatar_decoration_data": null,
"primary_guild": null
},
"deeplink_uri": "https://google.com/search?q=power+sockets+near+me",
"bot_public": true,
"bot_require_code_grant": false,
"verify_key": "852634a9ed80c0c5ac81e3c46d4b10a05400cb71898ea0484e7b63ac3a27096a",
"flags": 27828224,
"tags": ["60hz", "AC", "", "120v"],
"hook": true,
"storefront_available": false,
"redirect_uris": ["http://localhost:5000/callback"],
"interactions_endpoint_url": null,
"role_connections_verification_url": "https://google.com/search?q=power+sockets+near+me",
"owner": {
"id": "1110738998453837384",
"username": "team1110738998453837384",
"avatar": null,
"discriminator": "0000",
"public_flags": 1024,
"banner": null,
"accent_color": null,
"global_name": null,
"avatar_decoration_data": null,
"primary_guild": null
},
"bot_approximate_guild_count": 100,
"approximate_guild_count": 100,
"approximate_user_install_count": 1000,
"interactions_event_types": [],
"interactions_version": 1,
"explicit_content_filter": 1,
"rpc_application_state": 0,
"store_application_state": 1,
"creator_monetization_state": 1,
"verification_state": 1,
"integration_public": true,
"integration_require_code_grant": false,
"discoverability_state": 1,
"discovery_eligibility_flags": 36294,
"monetization_state": 1,
"monetization_eligibility_flags": 0,
"publishers": [{ "id": "1058932127820939295", "name": "AlienTec" }],
"developers": [{ "id": "1058932084854509568", "name": "Alien Games" }],
"team": {
"id": "1110738998453837384",
"icon": null,
"name": "Power",
"owner_user_id": "852892297661906993",
"members": [
{
"user": {
"id": "852892297661906993",
"username": "dolfies",
"avatar": "c78ef8fb1db15a3d5f1b4c057856c5c9",
"discriminator": "0",
"public_flags": 136,
"banner": null,
"accent_color": null,
"global_name": "Dolfies",
"avatar_decoration_data": null,
"primary_guild": null
},
"team_id": "1110738998453837384",
"membership_state": 2,
"role": "admin"
}
]
},
"internal_guild_restriction": 1
}
Example Partial Application
{
"id": "880218394199220334",
"name": "Watch Together",
"icon": "ec48acbad4c32efab4275cb9f3ca3a58",
"description": "Create and watch a playlist of YouTube videos with your friends. Your choice to share the remote or not. ",
"type": null,
"is_monetized": false,
"is_verified": false,
"is_discoverable": false,
"cover_image": "3cc9446876ae9eec6e06ff565703c292",
"bot": {
"id": "880218394199220334",
"username": "Watch Together",
"avatar": "fe2b7fa334817b0346d57416ad75e93b",
"discriminator": "5319",
"public_flags": 0,
"bot": true,
"banner": null,
"accent_color": null,
"global_name": null,
"avatar_decoration_data": null,
"primary_guild": null
},
"summary": "",
"bot_public": false,
"bot_require_code_grant": false,
"terms_of_service_url": "https://discord.com/terms",
"privacy_policy_url": "https://discord.com/privacy",
"verify_key": "e2aaf50fbe2fd9d025ac669035f5efb89099931690fba9dc28efb7eaade7f96d",
"flags": 1179648,
"max_participants": -1,
"tags": ["Video Player", "Watch"],
"hook": true,
"storefront_available": false,
"embedded_activity_config": {
"activity_preview_video_asset_id": "1104184163201990836",
"supported_platforms": ["web", "ios", "android"],
"default_orientation_lock_state": 2,
"tablet_default_orientation_lock_state": 1,
"requires_age_gate": false,
"legacy_responsive_aspect_ratio": false,
"premium_tier_requirement": null,
"free_period_starts_at": null,
"free_period_ends_at": null,
"client_platform_config": {
"ios": { "label_type": 0, "label_until": null, "release_phase": "global_launch" },
"android": { "label_type": 0, "label_until": null, "release_phase": "global_launch" },
"web": { "label_type": 0, "label_until": null, "release_phase": "global_launch" }
},
"shelf_rank": 3,
"has_csp_exception": false,
"displays_advertisements": false
}
}

Application Executable Object

Application Executable Structure
FieldTypeDescription
osstringThe operating system the executable can be found on
namestringThe name of the executable
is_launcherbooleanWhether the executable is for a game launcher
Example Application Executable
{
"os": "win32",
"name": "spaceship looter/spaceship_looter.exe",
"is_launcher": false
}

Application SKU Object

Application SKU Structure
FieldTypeDescription
id?stringThe ID of the game
sku?stringThe SKU of the game
distributorstringThe distributor of the game
Distributor Type
ValueDescription
discordDiscord Store
steamSteam
twitchTwitch
uplayUbisoft Connect
battlenetBattle.net
originOrigin
gogGOG.com
epicEpic Games Store
microsoftMicrosoft Store
igdbIGDB.com
glyphGlyph.net
google_playGoogle Play Store
nvidia_gdn_appNVIDIA Cloud Gaming
gopGameopedia
robloxRoblox Game
gdcoGameDiscover.co
xboxXbox Store
playstationPlayStation Store
Example Application SKU
{
"id": "445220",
"sku": "445220",
"distributor": "steam"
}

Application Install Params Object

Application Install Params Structure
FieldTypeDescription
scopesarray[string]The scopes to authorize the integration with
permissionsstringThe permissions to request for the application's bot integration role
Application Integration Type

An application's supported installation contexts.

ValueNameDescription
0GUILD_INSTALLGuild installation context
1USER_INSTALLUser installation context
Application Integration Type Configuration Structure
FieldTypeDescription
oauth2_install_params?application install params objectThe default in-app authorization link for the installation context
Example Application Install Params
{
"scopes": ["applications.commands", "bot"],
"permissions": "8"
}

Application Proxy Config Object

The application proxy makes it possible to proxy requests to a domain through the Discord activity proxy. This is used by embedded activities to be able to make requests without being blocked by Discord's content security policy (CSP).

Mapped URLs are available at <application_id>.discordsays.com/<prefix>.

Application Proxy Config Structure
FieldTypeDescription
url_maparray[application proxy mapping object]The URLs mapped to the proxy
Application Proxy Mapping Structure
FieldTypeDescription
prefixstringThe prefix on the proxy
targetstringThe domain to proxy
Example Application Proxy Config
{
"url_map": [
{
"prefix": "/api",
"target": "api.example.com"
}
]
}

Embedded Activity Config Object

Embedded Activity Config Structure
FieldTypeDescription
application_id? 1snowflakeThe ID of the application this embedded activity is for
activity_preview_video_asset_id?snowflakeThe ID of the application asset to preview the activity with
supported_platformsarray[string]The platforms this activity is supported on
default_orientation_lock_stateintegerThe default orientation lock state for the activity on mobile
tablet_default_orientation_lock_stateintegerThe default orientation lock state for the activity on tablets
requires_age_gatebooleanWhether the activity is age gated
legacy_responsive_aspect_ratiobooleanWhether the activity uses a responsive aspect ratio instead of a dynamic aspect ratio
premium_tier_requirement (deprecated)?integerThe minimum guild premium tier required to use the activity, if any
free_period_starts_at (deprecated)?ISO8601 timestampWhen the current free period for the activity starts, if any
free_period_ends_at (deprecated)?ISO8601 timestampWhen the current free period for the activity ends, if any
client_platform_configmap[string, embedded activity platform config object]The release configuration for the activity on each platform
shelf_rankintegerThe rank of the activity in the activity shelf sort order
has_csp_exceptionbooleanWhether the activity is not routed through the Discord activity proxy
displays_advertisementsbooleanWhether the activity displays advertisements
supported_locales 2array[string]The ISO 3166-1 alpha-2 country codes the activity is available in
blocked_localesarray[string]The ISO 3166-1 alpha-2 country codes the activity is blocked in

1 Omitted in the application object.

2 If the field is empty, the activity is available in all countries.

Embedded Activity Orientation Lock State Type
ValueNameDescription
1UNLOCKEDUnrestricted orientation
2PORTRAITPortrait only
3LANDSCAPELandscape only
Embedded Activity Platform Type
ValueDescription
webWeb
androidAndroid
iosiOS
Embedded Activity Platform Config Structure
FieldTypeDescription
label_typeintegerThe type of release label for the platform
label_until??ISO8601 timestampWhen the release label expires
release_phasestringThe release phase for the platform
omit_badge_from_surfacesarray[string]The surfaces to omit the activity badge from
Embedded Activity Label Type
ValueNameDescription
0NONENo special label
1NEWThe activity is new
2UPDATEDThe activity has been recently updated
Embedded Activity Release Phase
ValueDescription
in_developmentThe activity is still in development
activities_teamThe activity is available to guilds with the ACTIVITIES_ALPHA guild feature
employee_releaseThe activity is available to guilds with the ACTIVITIES_EMPLOYEE guild feature
soft_launchThe activity is available to all guilds in Canada
soft_launch_multi_geoThe activity is available to all guilds in multiple countries
global_launchThe activity is available to all guilds
Embedded Activity Surface
ValueDescription
voice_launcherThe activity launcher in the voice channel interface
text_launcherThe activity launcher in the text channel interface
Example Embedded Activity Config
{
"activity_preview_video_asset_id": "1104184163201990836",
"supported_platforms": ["web", "ios", "android"],
"default_orientation_lock_state": 2,
"tablet_default_orientation_lock_state": 1,
"requires_age_gate": false,
"legacy_responsive_aspect_ratio": false,
"premium_tier_requirement": null,
"free_period_starts_at": null,
"free_period_ends_at": null,
"client_platform_config": {
"android": {
"label_type": 0,
"label_until": null,
"release_phase": "global_launch",
"omit_badge_from_surfaces": []
},
"ios": {
"label_type": 0,
"label_until": null,
"release_phase": "global_launch",
"omit_badge_from_surfaces": []
},
"web": {
"label_type": 0,
"label_until": null,
"release_phase": "global_launch",
"omit_badge_from_surfaces": []
}
},
"shelf_rank": 3,
"has_csp_exception": false,
"displays_advertisements": false,
"application_id": "880218394199220334"
}

Embedded Activity Instance Object

Embedded Activity Instance Structure
FieldTypeDescription
application_idsnowflakeThe ID of the application for this activity instance
composite_instance_idstringThe composite ID of the activity instance
instance_idsnowflakeThe ID of the activity instance
launch_idsnowflakeThe ID of the activity instance launch
locationembedded activity location objectThe location the activity instance is running in
participantsarray[embedded activity participant object]The users participating in the activity instance
Embedded Activity Instance ID

The composite ID of an activity instance is a globally unique identifier for an activity instance in a channel. It is in the format i-<instance_id>-<location_kind>-<location_guild_id>-<location_channel_id>, where <location_guild_id> is omitted for private channels.

Embedded Activity Location Structure
FieldTypeDescription
idstringThe composite ID of the location
kindstringThe type of location the activity is running in
channel_idsnowflakeThe ID of the channel the activity is running in
guild_id??snowflakeThe ID of the guild the activity is running in
Embedded Activity Location ID

The composite ID of an activity location is a globally unique identifier for a channel. It is in the format <location_kind>-<location_guild_id>-<location_channel_id>, where <location_guild_id> is omitted for private channels.

Embedded Activity Location Type
ValueDescription
gcGuild channel
pcPrivate channel
Embedded Activity Participant Structure
FieldTypeDescription
user_idsnowflakeThe ID of the user participating in the activity
member?guild member objectThe guild member data for the user, if in a guild
session_idstringThe session ID the participant is connected with
nonce?stringUnknown
Example Embedded Activity Instance
{
"application_id": "1211781489931452447",
"composite_instance_id": "i-1420621242070732950-pc-1386091138305359984",
"instance_id": "1420621242070732950",
"launch_id": "1420621242070732950",
"location": {
"channel_id": "1386091138305359984",
"id": "pc-1386091138305359984",
"kind": "pc"
},
"participants": [
{
"nonce": null,
"session_id": "3b5d8906771b15af3346454c4e6cf9d5",
"user_id": "852892297661906993"
}
]
}

Application Asset Object

Application Asset Structure
FieldTypeDescription
idstringThe ID of the asset
typeintegerThe type of the asset
namestringThe name of the asset
Application Asset Type
ValueNameDescription
1ONEUnknown
2TWOUnknown
Example Application Asset
{
"id": "1131721726514954381",
"type": 1,
"name": "alien"
}

Application Role Connection Object

The role connection object that an application has attached to a user.

Application Role Connection Structure
FieldTypeDescription
platform_name?stringThe vanity name of the platform a bot has connected (max 50 characters)
platform_username?stringThe username on the platform a bot has connected (max 100 characters)
metadataobjectObject mapping application role connection metadata keys to their string-ified value (max 100 characters) for the user on the platform a bot has connected
application?integration application objectThe application that owns the role connection
application_metadata?array[application role connection metadata object]The metadata that the application has set for the role connection

Application Role Connection Metadata Object

A representation of role connection metadata for an application.

When a guild has added an application integration and that integration has configured its role_connections_verification_url, the application will render as a potential verification method in the guild's role verification configuration.

If an application has configured role connection metadata, its metadata will appear in the role verification configuration when the application has been added as a verification method to the role.

When a user connects their account using the integration's role_connections_verification_url, the integration will update a user's role connection with metadata using the OAuth2 role_connections.write scope.

Application Role Connection Metadata Structure
FieldTypeDescription
typeintegerThe type of metadata value
keystringKey for the metadata field (1-50 characters, must be a-z, 0-9, or _)
namestringThe name of the metadata field (1-100 characters)
name_localizations?map[str, str]Translations of the name with keys in available locales
descriptionstringThe description of the metadata field (1-200 characters)
description_localizations?map[str, str]Translations of the description with keys in available locales
FieldTypeDescription
application_idsnowflakeThe application ID
link_id 1stringThe link ID
asset_path? 2stringThe hash of the application quick link asset
asset_id? 2snowflakeThe ID of the application asset
titlestringThe title of the activity link
descriptionstringThe description of the activity link
custom_id??stringA custom ID for the activity link
primary_cta? (deprecated)?stringThe primary call to action for the activity link

1 The link ID is in the format <type>-<id> where type is the activity link type and id is the snowflake ID.

2 asset_path is only present on quick links, while asset_id is only present on managed links.

ValueNameDescription
0MANAGED_LINKManaged by the application and last indefinitely
1QUICK_LINKMade by the user and last for 30 days
{
"application_id": "891436233903964161",
"link_id": "1-1385320255148003439",
"asset_path": "74420086a1aee57564cd6fc9a28461b1",
"title": "Alien",
"description": "aliens",
"primary_cta": null,
"custom_id": "button"
}

Social SDK Release Object

Social SDK Release Structure
FieldTypeDescription
versionstringThe version of the SDK
release_date_timeISO8601 timestampWhen the SDK version released
artifacts 1array[social SDK release artifact object]The SDK artifacts

1 Only included when fetched from the Get Social SDK Release endpoint.

Social SDK Release Artifact Structure

FieldTypeDescription
download_urlstringThe SDK download URL
filenamestringThe filename
size_bytesintegerThe The size (in bytes) of the file
Example Social SDK Release
{
"version": "1.2.8730",
"release_date_time": "2025-05-08T12:00:00+00:00",
"artifacts": [
{
"download_url": "https://storage.googleapis.com/discord-slayer-sdk-artifacts/discord_partner_sdk/XXX/release/DiscordSocialSdk-1.2.8730.zip",
"filename": "DiscordSocialSdk-1.2.8730.zip",
"size_bytes": 156241906
},
{
"download_url": "https://storage.googleapis.com/discord-slayer-sdk-artifacts/discord_partner_sdk/XXX/release/DiscordSocialSdk-UnityPlugin-1.2.8730.zip",
"filename": "DiscordSocialSdk-UnityPlugin-1.2.8730.zip",
"size_bytes": 67692124
},
{
"download_url": "https://storage.googleapis.com/discord-slayer-sdk-artifacts/discord_partner_sdk/XXX/release/DiscordSocialSdk-UnitySample-1.2.8730.zip",
"filename": "DiscordSocialSdk-UnitySample-1.2.8730.zip",
"size_bytes": 67804418
},
{
"download_url": "https://storage.googleapis.com/discord-slayer-sdk-artifacts/discord_partner_sdk/XXX/release/DiscordSocialSdk-UnrealPlugin-1.2.8730.zip",
"filename": "DiscordSocialSdk-UnrealPlugin-1.2.8730.zip",
"size_bytes": 81056342
},
{
"download_url": "https://storage.googleapis.com/discord-slayer-sdk-artifacts/discord_partner_sdk/XXX/release/DiscordSocialSdk-UnrealSample-1.2.8730.zip",
"filename": "DiscordSocialSdk-UnrealSample-1.2.8730.zip",
"size_bytes": 81290780
}
]
}
Application External Identity Provider Configuration Structure
FieldTypeDescription
application_idsnowflakeThe ID of the application
provider_typeintegerThe type of the identity provider
client_idstringThe ID of the primary provider client
oidc_issuer_url?stringThe primary URL of the OpenID Connect Issuer
clientsarray[application external identity provider client object]The provider clients
Application Identity Provider Type
ValueDescription
OIDCOpenID Connect
EPIC_ONLINE_SERVICESEpic Online Services-based authentication
STEAMSteam-based authentication
UNITYUnity-based authentication
DISCORD_BOT 1Authentication via a Discord bot
APPLEApple ID-based authentication
PLAYSTATION_NETWORKPlayStation Network-based authentication

1 This provider type is not external and therefore cannot be created or modified.

Application External Identity Provider Client Structure
FieldTypeDescription
idstringThe ID of the provider client
oidc_issuer_url?stringThe URL of the OpenID Connect Issuer
description??stringThe description of the client (max 250)
environment??stringThe environment for the client
Example Application External Identity Provider Configuration
{
"application_id": "1169421761859833997",
"provider_type": "UNITY",
"client_id": "d360455e-2b56-4922-bf73-b64b157d5934",
"oidc_issuer_url": null,
"clients": [
{
"id": "d360455e-2b56-4922-bf73-b64b157d5934",
"oidc_issuer_url": null,
"description": null,
"environment": null
}
]
}
Application Undeletable Reason
ValueNameDescription
0UNKNOWNUnknown
1USER_THRESHOLD_EXCEEDEDThe application has over 500 active users
2SOCIAL_SDK_APP_DELETION_ERRORThe application is not deletable for other reasons
3PARENT_HAS_CHILD_APPLICATIONSThe application has child applications
Approvable Console Type
ValueNameDescription
1XBOXXbox
2PLAYSTATION_5PlayStation 5
3PLAYSTATION_4PlayStation 4

Endpoints

Get Applications

GET/applications

Returns a list of application objects that the current user has.

Query String Params
FieldTypeDescription
with_team_applications?booleanWhether to include applications that a team the user is a part of owns

Get Applications with Assets

GET/applications-with-assets

Returns a list of application objects that the current user has, additionally including the application's assets.

Query String Params
FieldTypeDescription
with_team_applications?booleanWhether to include applications that a team the user is a part of owns
Response Body
FieldTypeDescription
applicationsarray[application]The applications the user has
assetsmap[snowflake, array[application asset object]]The assets for each application
Example Response
{
"applications": [
{
"id": "891436243903728565",
"name": "Lightbulb",
"icon": "546242649e3b09a97af7e8f29983837b",
"description": "💡 Let there be light",
"summary": "",
"type": null,
"is_monetized": false,
"is_verified": false,
"is_discoverable": false,
"cover_image": "75bc61df60fc74c46b32fde3532f662b",
"deeplink_uri": "https://google.com/search?q=lightbulbs+near+me",
"hook": true,
"guild_id": "1029315212005888060",
"storefront_available": false,
"bot_public": true,
"bot_require_code_grant": false,
"terms_of_service_url": "https://google.com/search?q=lightbulbs+near+me",
"privacy_policy_url": "https://google.com/search?q=lightbulbs+near+me",
"integration_types_config": {
"0": {},
"1": {}
},
"verify_key": "852634a9ed80c0c5ac81e3c46d4b10a05400cb71898ea0484e7b63ac3a27096a",
"owner": {
"id": "1110738998453837384",
"username": "team1110738998453837384",
"global_name": null,
"avatar": null,
"avatar_decoration_data": null,
"discriminator": "0000",
"public_flags": 1024,
"primary_guild": null,
"flags": 1024
},
"flags": 27959296,
"redirect_uris": ["http://localhost:5000/callback"],
"rpc_application_state": 0,
"store_application_state": 1,
"verification_state": 1,
"interactions_endpoint_url": null,
"interactions_event_types": [],
"interactions_version": 1,
"integration_public": true,
"integration_require_code_grant": false,
"explicit_content_filter": 1,
"discoverability_state": 1,
"discovery_eligibility_flags": 36830,
"monetization_state": 1,
"role_connections_verification_url": "https://google.com/search?q=lightbulbs+near+me",
"internal_guild_restriction": 1,
"bot": {
"id": "891436243903728565",
"username": "Lightbulb",
"global_name": null,
"avatar": "546242649e3b09a97af7e8f29983837b",
"avatar_decoration_data": null,
"discriminator": "5312",
"public_flags": 0,
"primary_guild": null,
"bot": true
},
"approximate_guild_count": 100,
"approximate_user_install_count": 1000,
"max_participants": -1,
"embedded_activity_config": {
"activity_preview_video_asset_id": "1131721726514954381",
"supported_platforms": ["web", "android", "ios"],
"default_orientation_lock_state": 1,
"tablet_default_orientation_lock_state": 1,
"requires_age_gate": false,
"legacy_responsive_aspect_ratio": false,
"premium_tier_requirement": null,
"free_period_starts_at": null,
"free_period_ends_at": null,
"client_platform_config": {
"web": {
"label_type": 0,
"label_until": null,
"release_phase": "in_development"
},
"android": {
"label_type": 0,
"label_until": null,
"release_phase": "in_development"
},
"ios": {
"label_type": 0,
"label_until": null,
"release_phase": "in_development"
}
},
"shelf_rank": 2147483647,
"has_csp_exception": false,
"displays_advertisements": false
},
"tags": ["", "100W", "EnergyStar", "LED"]
}
],
"assets": {
"891436243903728565": [
{
"id": "1223782285833273507",
"type": 1,
"name": "embedded_background"
},
{
"id": "1223782287091564634",
"type": 1,
"name": "embedded_cover"
}
]
}
}

Create Application

POST/applications

Creates a new application. Returns an application object on success. Users can have a maximum of 50 applications, with each team able to have a maximum of 25.

JSON Params
FieldTypeDescription
namestringThe name of the application
type?integerThe type of the application (only CREATOR_MONETIZATION is supported)
team_id?snowflakeThe ID of the team to create this application under
description??stringThe description of the application
icon??image dataThe application's icon
cover_image??image dataThe application's default rich presence invite cover image
flags?integerthe application's flags (only GATEWAY_GUILD_MEMBERS_LIMITED, GATEWAY_PRESENCE_LIMITED, and GATEWAY_MESSAGE_CONTENT_LIMITED can be set)
guild_id??snowflakeThe ID of the guild linked to the application
redirect_uris??array[string]The whitelisted URLs for redirecting to during OAuth2 authorization (max 10)
deeplink_uri??stringThe URL used for deep linking during OAuth2 authorization on mobile devices

Get Application

GET/applications/{application.id}

Returns an application object for the given ID. User must be the owner of the application or member of the owning team.

Get Current Application

GET/applications/@me

Returns the application object associated with the requestor.

Modify Application

PATCH/applications/{application.id}

Modifies an application. User must be the owner of the application or developer of the owning team. Returns the updated application object on success.

JSON Params
FieldTypeDescription
name?stringThe name of the application
description??stringThe description of the application
icon??image dataThe application's icon
cover_image??image dataThe application's default rich presence invite cover image
flags?integerThe application's flags (only PUBLIC_OAUTH2_CLIENT, GATEWAY_GUILD_MEMBERS_LIMITED, GATEWAY_PRESENCE_LIMITED, and GATEWAY_MESSAGE_CONTENT_LIMITED can be set)
guild_id??snowflakeThe ID of the guild linked to the application
developer_ids??array[snowflake]The IDs of the companies that developed the application
publisher_ids??array[snowflake]The IDs of the companies that published the application
rpc_origins??array[string]The whitelisted RPC origin URLs for the application, if RPC is enabled
redirect_uris??array[string]The whitelisted URLs for redirecting to during OAuth2 authorization (max 10)
deeplink_uri??stringThe URL used for deep linking during OAuth2 authorization on mobile devices
integration_public?booleanWhether only the application owner can add the integration
integration_require_code_grant?booleanWhether the integration will only be added upon completion of a full OAuth2 token exchange
bot_public? (deprecated)booleanWhether only the application owner can add the bot
bot_require_code_grant? (deprecated)booleanWhether the application's bot will only be added upon completion of a full OAuth2 token exchange
terms_of_service_url??stringThe URL to the application's terms of service
privacy_policy_url??stringThe URL to the application's privacy policy
role_connections_verification_url?stringThe role connection verification entry point of the integration; when configured, this will render the application as a verification method in guild role verification configuration
interactions_endpoint_url?stringThe URL of the application's interactions endpoint
interactions_version?integerThe version of the application's interactions endpoint implementation
interactions_event_types? 1?array[string]The enabled Gateway events to send to the interaction endpoint
event_webhooks_status?integerWhether event webhooks are enabled
event_webhooks_url?stringThe URL of the application's event webhooks endpoint
event_webhooks_types?array[string]The enabled event webhook types to send to the event webhooks endpoint
explicit_content_filter?integerWhether uploaded media content used in application commands is scanned and detected for explicit content
tags??array[string]Tags describing the content and functionality of the application (max 20 characters, max 5)
install_params??application install params objectThe default in-app authorization link for the integration
custom_install_url??stringThe default custom authorization link for the integration
integration_types_config?map[integer, ?application integration type configuration object]The configuration for each integration type supported by the application
connection_entrypoint_url?stringThe URL which users will be directed to when connecting their account in the application to their Discord account
discoverability_state?integerThe current application directory discoverability state of the application (only NOT_DISCOVERABLE and DISCOVERABLE is supported)
monetization_state?integerThe current application monetization state of the application (only NONE and ENABLED is supported)
max_participants??integerThe maximum possible participants in the application's embedded activity (-1 for no limit)

1 The sending of Gateway events over the interactions endpoint requires interactions version 2.

Modify Current Application

PATCH/applications/@me

Modifies the requestor's application information. Returns the updated application object on success.

JSON Params
FieldTypeDescription
description??stringThe description of the application
icon??image dataThe application's icon
cover_image??image dataThe application's default rich presence invite cover image
flags?integerThe application's flags (only GATEWAY_GUILD_MEMBERS_LIMITED, GATEWAY_PRESENCE_LIMITED, and GATEWAY_MESSAGE_CONTENT_LIMITED can be set)
rpc_origins??array[string]The whitelisted RPC origin URLs for the application, if RPC is enabled
deeplink_uri??stringThe URL used for deep linking during OAuth2 authorization on mobile devices
role_connections_verification_url??stringThe role connection verification entry point of the integration; when configured, this will render the application as a verification method in guild role verification configuration
interactions_endpoint_url??stringThe URL of the application's interactions endpoint
interactions_version?integerThe version of the application's interactions endpoint implementation
interactions_event_types? 1?array[string]The enabled Gateway events to send to the interaction endpoint
explicit_content_filter?integerWhether uploaded media content used in application commands is scanned and detected for explicit content
tags??array[string]Tags describing the content and functionality of the application (max 20 characters, max 5)
install_params??application install params objectThe default in-app authorization link for the integration
custom_install_url??stringThe default custom authorization link for the integration
integration_types_config?map[integer, ?application integration type configuration object]The configuration for each integration type supported by the application
connection_entrypoint_url?stringThe URL which users will be directed to when connecting their account in the application to their Discord account
max_participants??integerThe maximum possible participants in the application's embedded activity (-1 for no limit)

Delete Application

POST/applications/{application.id}/delete

Deletes an application permanently. User must be the owner of the application or owning team. Returns a 204 empty response on success.

Transfer Application

POST/applications/{application.id}/transfer

Transfers ownership of an application to a team. User must be the owner of the application or owning team. Returns an application object on success.

JSON Params
FieldTypeDescription
team_idsnowflakeThe ID of the team to transfer ownership to

Reset Application Secret

POST/applications/{application.id}/reset

Resets the application's client secret. This revokes all previous secrets and returns a new secret. User must be the owner of the application or developer of the owning team.

Response Body
FieldTypeDescription
secretstringThe client secret key of the application
Example Response
{
"secret": "937it3ow87i4ery69876wqire"
}

Get Application Testers

GET/oauth2/applications/{application.id}/allowlist

Returns a list of whitelisted user objects representing the invited testers for the given application ID. User must be the owner of the application or member of the owning team.

Whitelisted User Structure
FieldTypeDescription
userpartial user objectThe user that is whitelisted for the application
stateintegerThe state of the whitelisted user
Application Membership State
ValueNameDescription
1INVITEDThe user has been invited to the application but has not yet accepted
2ACCEPTEDThe user has accepted the invitation to the application and is whitelisted

Add Application Tester

POST/oauth2/applications/{application.id}/allowlist

Adds a user to the application's list of testers. User must be the owner of the application or developer of the owning team. Returns a whitelisted user object on success.

JSON Params
FieldTypeDescription
usernamestringThe username of the user to add
discriminator? 1?stringThe discriminator of the user to add

1 Not applicable for migrated users. See the section on Discord's new username system for more information.

Accept Application Tester Invitation

POST/oauth2/allowlist/accept

Accepts an application tester invitation received via email. Invited users will receive an email with a link that redirects to the official Discord client with a verification token present in the URL's query (e.g. https://discord.com/oauth2/allowlist/accept?token=h9sYyrafnMhhObX4nGi9VOugCa9CSt). Returns a 204 empty response on success.

Query String Params
FieldTypeDescription
tokenstringThe verification token from the URL

Remove Application Tester

DELETE/oauth2/applications/{application.id}/allowlist/{user.id}

Removes a user from the application's list of testers. User must be the owner of the application or developer of the owning team. Returns a 204 empty response on success.

Create Application Bot

POST/applications/{application.id}/bot

Creates and attaches a bot to the given application ID. User must be the owner of the application or developer of the owning team.

Response Body
FieldTypeDescription
token?stringThe token of the bot, if a bot was newly created
Example Response
{
"token": "NzIyNDUwMzAzOTE5NTg3NDA5.GRj2Bt.cPbrvvjxglZXK4dTcIPDMvfq0LxJcilsIYW01A"
}

Modify Application Bot

PATCH/applications/{application.id}/bot

Modifies the application's bot. User must be the owner of the application or developer of the owning team. Returns the updated user object on success.

JSON Params
FieldTypeDescription
username?stringThe user's username (2-32 characters)
avatar??image dataThe user's avatar
banner??image dataThe user's banner

Reset Application Bot Token

POST/applications/{application.id}/bot/reset

Resets the application's bot token. This revokes all previous tokens and returns a new token. User must be the owner of the application or developer of the owning team.

Response Body
FieldTypeDescription
tokenstringThe token of the bot

Request Application Gateway Intents

POST/applications/{application.id}/request-additional-intents

Submits a request for Gateway intents for a verified bot. User must be the owner of the application or developer of the owning team. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
application_descriptionstringThe description of the application (50-2000 characters)
intents_flags_requested?integerThe application flags representing the requested Gateway intents (only GATEWAY_PRESENCE, GATEWAY_GUILD_MEMBERS, and GATEWAY_MESSAGE_CONTENT are supported)
intents_gateway_presence_use_case_description? 1?stringThe use case for requesting the presence intent (50-2000 characters)
intents_gateway_presence_use_case_supplemental_material_description? 1?stringThe supplemental material for the requested Gateway presence intent (5-2000 characters)
intents_gateway_presence_store_off_platform? 1?booleanWhether the application stores presence data off-platform
intents_gateway_presence_retention??booleanWhether the application retains presence data for 30 days or less
intents_gateway_presence_encrypted??booleanWhether the application encrypts stored presence data at rest
intents_gateway_presence_opt_out_stored??booleanWhether application users can opt out of having their presence data stored
intents_gateway_presence_contact_deletion? 1?stringHow application users can request the deletion of their presence data (25-2000 characters)
intents_gateway_guild_members_use_case_description? 1?stringThe use case for requesting the guild members intent (50-2000 characters)
intents_gateway_guild_members_use_case_supplemental_material_description? 1?stringThe supplemental material for the requested Gateway guild members intent (5-2000 characters)
intents_gateway_guild_members_store_off_platform? 1?booleanWhether the application stores guild member data off-platform
intents_gateway_guild_members_retention??booleanWhether the application retains guild member datafor 30 days or less
intents_gateway_guild_members_encrypted??booleanWhether the application encrypts stored guild member data at rest
intents_gateway_guild_members_contact_deletion??stringHow application users can request the deletion of their guild member data (25-2000 characters)
intents_gateway_message_content_use_case_description? 1?stringThe use case for requesting the message content intent (50-2000 characters)
intents_gateway_message_content_use_case_supplemental_material_description? 1?stringThe supplemental material for the requested Gateway message content intent (5-2000 characters)
intents_gateway_message_content_store_off_platform? 1?booleanWhether the application stores message content data off-platform
intents_gateway_message_content_retention??booleanWhether the application retains message content data for 30 days or less
intents_gateway_message_content_encrypted??booleanWhether the application encrypts stored message content data at rest
intents_gateway_message_content_opt_out_stored??booleanWhether application users can opt out of having their message content data stored
intents_gateway_message_content_ai_training??booleanWhether the application uses message content data for AI training
intents_gateway_message_content_privacy_policy_public??booleanWhether the application has a public privacy policy detailing how message content data is used
intents_gateway_message_content_privacy_policy_location??stringWhere the application's privacy policy can be found (25-2000 characters)
intents_gateway_message_content_privacy_policy_example??stringA link to or screenshots of the application's privacy policy (25-2000 characters)
intents_gateway_message_content_contact_deletion??stringHow application users can request the deletion of their message content data (25-2000 characters)

1 Required if the corresponding intent is requested.

Get Application Discoverability State

GET/applications/{application.id}/discoverability-state

Returns information about the application's eligibility for application directory. User must be the owner of the application or member of the owning team.

Response Body
FieldTypeDescription
discoverability_stateintegerThe current application directory discoverability state of the application
discovery_eligibility_flagsintegerThe current application directory eligibility flags for the application
bad_commandsarray[application command object]Not safe for work commands that are not allowed in the application directory

Query Application Test Mode

GET/activities/{application.id}/test-mode

Queries whether the user can use test mode for the application. Test mode allows completing purchases without payment. User must be the owner of the application or developer of the owning team. Returns a 204 empty response on success.

Get Embedded Activities

GET/activities/shelf

Returns the embedded activities available globally or in a particular guild.

Query String Params
FieldTypeDescription
guild_id?snowflakeThe ID to return embedded activities for
Response Body
FieldTypeDescription
activitiesarray[embedded activity config object]The available embedded activities
applicationsarray[partial application object]Applications representing the available embedded activities
assetsmap[snowflake, array[application asset]]The assets for each application

Set Application Embeddability

POST/applications/{application.id}/set-embedded

Modifies whether the application is an embedded activity or not (determined by the EMBEDDED flag). User must be the owner of the application or developer of the owning team. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
embeddedbooleanWhether the application is embedded

Get Embedded Activity Config

GET/applications/{application.id}/embedded-activity-config

Returns the embedded activity config object for the given application ID. User must be the owner of the application or member of the owning team.

Modify Embedded Activity Config

PATCH/applications/{application.id}/embedded-activity-config

Modifies the embedded activity config for the given application ID. User must be the owner of the application or developer of the owning team. Returns the updated embedded activity config object on success.

JSON Params
FieldTypeDescription
activity_preview_video_asset_id??snowflakeThe ID of the application asset to preview the activity with
supported_platforms??array[string]The platforms this activity is supported on
default_orientation_lock_state?integerThe default orientation lock state for the activity on mobile
tablet_default_orientation_lock_state?integerThe default orientation lock state for the activity on tablets
requires_age_gate?booleanWhether the activity is age gated
free_period_starts_at? (deprecated)?ISO8601 timestampWhen the current free period for the activity starts, if any
free_period_ends_at? (deprecated)?ISO8601 timestampWhen the current free period for the activity ends, if any
client_platform_config?map[string, embedded activity platform config object]The release configuration for the activity on each platform
shelf_rank?integerThe rank of the activity in the activity shelf sort order

Get Embedded Activity Instances

GET/activities/{application.id}/instances/{channel.id}

Returns the currently active activity instances in a channel for the application. Useful for preventing unwanted activity sessions.

Response Body
FieldTypeDescription
instancesarray[channel activity instance object]The embedded activity instances in the channel
Channel Activity Instance Structure
FieldTypeDescription
application_idsnowflakeThe ID of the application
instance_idstringThe composite ID of the activity instance
channel_idsnowflakeThe ID of the channel the activity is running in
guild_id?snowflakeThe ID of the guild the activity is running in
usersarray[snowflake]The IDs of the users participating in the activity

Get Embedded Activity Instance

GET/applications/{application.id}/activity-instances/{instance.composite_instance_id}

Returns an active activity instance for the application. Useful for preventing unwanted activity sessions.

Response Body
FieldTypeDescription
application_idsnowflakeThe ID of the application
instance_idstringThe composite ID of the activity instance
launch_idstringThe ID of the activity instance
locationembedded activity location objectThe location the activity instance is running in
usersarray[snowflake]The IDs of the users participating in the activity

Launch Embedded Activity

POST/activities/{channel.id}/{application.id}

Launches an embedded activity in a channel. Joins an existing activity instance if one exists, otherwise creates a new instance. Requires the USE_EMBEDDED_ACTIVITIES permission, as well as the USE_EXTERNAL_APPS permission if the activity application is not authorized to the guild. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
session_idstringThe session ID of the user launching the activity

Leave Embedded Activity Instance

POST/applications/{application.id}/activities/{instance.location.id}/instances/{instance.instance_id}/leave

Leaves an embedded activity instance. Returns an empty object on success.

JSON Params
FieldTypeDescription
session_idstringThe session ID of the user leaving the activity

Get Application Proxy Config

GET/applications/{application.id}/proxy-config

Returns the application's activity proxy config object for the given application ID. User must be the owner of the application or member of the owning team.

Modify Application Proxy Config

POST/applications/{application.id}/proxy-config

Replaces the activity proxy config for the given application ID. User must be the owner of the application or developer of the owning team. Returns the updated application proxy config object on success.

Notes:

  • URL mappings can utilize any protocol, so the protocol should be omitted from the target field.
  • Parameter matching is supported in both the prefix and target fields. For example, you can map /server/{id} to server-{id}.example.com.
  • Because of how URL globbing works, the order of the mappings is important. The most specific mappings should be at the top of the list as the first match is used. For example, if you have /foo and /foo/bar, you must place the URL /foo/bar before /foo or else the mapping for /foo/bar will never be reached.
JSON Params
FieldTypeDescription
url_maparray[application proxy mapping object]The URLs mapped to the proxy

Get Application Assets

GET/oauth2/applications/{application.id}/assets

Returns a list of application assets for the given application ID.

Query String Params
FieldTypeDescription
nocache?booleanWhether to bypass cache for the response (default false)

Create Application Asset

POST/oauth2/applications/{application.id}/assets

Creates a new application asset for the given application ID. User must be the owner of the application or developer of the owning team. Returns an application asset object on success.

JSON Params
FieldTypeDescription
namestringThe name of the asset
typeintegerThe type of the asset
imageimage dataThe asset's image

Delete Application Asset

DELETE/oauth2/applications/{application.id}/assets/{asset.id}

Deletes an application asset permanently. User must be the owner of the application or developer of the owning team. Returns a 204 empty response on success.

Proxy Application Assets

POST/applications/{application.id}/external-assets

Proxies a list of URLs for the given application ID. Returns a list of external asset objects on success.

JSON Params
FieldTypeDescription
urlsarray[string]The URLs of the assets to proxy (max 256 characters, 1-2)
External Asset Structure
FieldTypeDescription
urlstringThe URL of the asset
external_asset_pathstringThe path to the asset on the media proxy (https://media.discordapp.net/)
Example External Asset
[
{
"url": "https://google.com/favicon.ico",
"external_asset_path": "external/OCZzr1eoglei1yFsfSMClt6B95EI9W-dOhq7fbnn5aY/https/google.com/favicon.ico"
}
]

Create Application Attachment

POST/applications/{application.id}/attachment

Uploads an ephemeral attachment to the application. Must be a multipart/form-data body. Requires the EMBEDDED application flag.

Form Params
FieldTypeDescription
filefile contentsThe image file to upload, must be a JPEG, PNG, or GIF file
Response Body
FieldTypeDescription
attachmentattachment objectThe created ephemeral attachment

Get Detectable Applications

GET/applications/detectable

Returns a list of detectable application objects representing games that can be detected by Discord for rich presence.

Detectable Application Structure
FieldTypeDescription
idsnowflakeThe ID of the application
namestringThe name of the application
aliasesarray[string]Other names the application's game is associated with
executablesarray[application executable object]The unique executables of the application's game
themesarray[string]The themes of the application's game
hookbooleanWhether the Discord client is allowed to hook into the application's game directly
overlaybooleanWhether the application's game supports the Discord overlay (default false)
overlay_methods?integerThe methods of overlaying that the application's game supports
overlay_warnbooleanWhether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hookbooleanWhether to use the compatibility hook for the overlay (default false)
Example Detectable Application
{
"aliases": ["PUBG: BATTLEGROUNDS", "PUBG"],
"executables": [
{
"is_launcher": false,
"name": "win64/tslgame_be.exe",
"os": "win32"
},
{
"is_launcher": false,
"name": "win64/tslgame.exe",
"os": "win32"
},
{
"is_launcher": false,
"name": "tslgame.exe",
"os": "win32"
},
{
"is_launcher": false,
"name": "win64/tslgame_uc.exe",
"os": "win32"
},
{
"is_launcher": false,
"name": "tslgame_be.exe",
"os": "win32"
}
],
"hook": true,
"id": "356873622985506820",
"name": "PLAYERUNKNOWN'S BATTLEGROUNDS",
"overlay": true,
"overlay_compatibility_hook": true,
"overlay_methods": null,
"overlay_warn": false,
"themes": ["Action", "Warfare"]
}

Get Partial Application

GET/applications/{application.id}/public

Returns a partial application object for the given ID with all public application fields.

Query String Params
FieldTypeDescription
with_guild?booleanWhether to include the guild object in the response if the guild is discoverable (default false)

Get Partial Applications

GET/applications/public

Returns a list of partial application objects for the given IDs.

Query String Params
FieldTypeDescription
application_idsarray[snowflake]The IDs of the applications to fetch; unknown IDs are ignored

Get Rich Presence Application

GET/applications/{application.id}/rpc

Returns a partial application object for the given ID with rich presence-related fields.

Get Application Disclosures

GET/applications/{application.id}/disclosures

Returns an object representing additional safety disclosures for the application.

Response Body
FieldTypeDescription
disclosuresarray[integer]The disclosures of the application
acked_disclosuresarray[integer]The disclosures that have been acknowledged by the user
all_ackedbooleanWhether all disclosures have been acknowledged by the user
Application Disclosure Type
ValueNameDescription
0UNSPECIFIED_DISCLOSUREUnspecified disclosure
1IP_LOCATIONApplication may access the user's IP address
2DISPLAYS_ADVERTISEMENTSApplication may display advertisements
3PARTNER_SDK_DATA_SHARING_MESSAGEApplication's game uses the social layer SDK's messaging features, which surface in-game messages on Discord
Example Response
{
"disclosures": [1, 2],
"acked_disclosures": [1, 2],
"all_acked": true
}

Acknowledge Application Disclosures

POST/applications/{application.id}/disclosures

Acknowledges a list of disclosures for the application.

JSON Params
FieldTypeDescription
disclosuresarray[integer]The disclosures to acknowledge for the user
Response Body
FieldTypeDescription
disclosuresarray[integer]The disclosures that have been acknowledged by the user

Get Guild Applications

GET/guilds/{guild.id}/applications

Returns a list of application objects attached to the given guild ID. Requires the MANAGE_GUILD permission.

Query String Params
FieldTypeDescription
type?integerThe type of applications to return
include_team? 1booleanWhether to include team information for owned applications (default false)
channel_id?snowflakeThe ID of the channel to filter by (TODO: what the fuck does this do)

1 You must own the application or be a member of the owning team to receive this information.

Report Unverified Application

POST/unverified-applications

Reports a game not detected and tracked to Discord. Returns an unverified application object on success.

JSON Params
FieldTypeDescription
report_version?integerThe version of the report (currently 3)
namestringThe name of the application (2-100 characters)
iconstringThe MD5 hash of the application's icon (32 characters)
osstringThe operating system the application is found on
executable?stringThe executable of the application (max 1024 characters)
publisher?stringThe publisher of the application (2-100 characters)
distributor_application?application distributor objectThe distributor of the application SKU
Application Distributor Structure
FieldTypeDescription
distributorstringThe application distributor
sku?stringThe SKU of the application (max 256 characters)
Operating System
ValueDescription
win32Windows
darwinmacOS
linuxLinux
Response Body
FieldTypeDescription
namestringThe name of the application
hashstringThe unique hash of the application
missing_dataarray[string]The missing data for the application
Application Missing Data Type
ValueDescription
iconThe application's icon hash is not found and should be uploaded using the Upload Unverified Application Icon endpoint
Example Response
{
"name": "Alien Simulator",
"hash": "0312ce2c94e1fa8257fefbade4587fb3",
"missing_data": ["icon"]
}

Upload Unverified Application Icon

POST/unverified-applications/icons

Uploads an unverified application's icon to Discord. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
application_namestringThe name of the application
application_hashstringThe unique hash of the application
iconimage dataThe application's icon

Get User Application Role Connections

GET/users/@me/applications/role-connections

Returns a list of application role connection objects for the user.

Get User Application Role Connection

GET/users/@me/applications/{application.id}/role-connection

Returns an application role connection object for the user, without optional fields.

Modify User Application Role Connection

PUT/users/@me/applications/{application.id}/role-connection

Replaces an application's role connection for the user. Returns the updated application role connection object on success.

JSON Params
FieldTypeDescription
platform_name?stringThe vanity name of the platform a bot has connected (max 50 characters)
platform_username?stringThe username on the platform a bot has connected (max 100 characters)
metadata?map[string, string]Object mapping application role connection metadata keys to their string-ified value (max 100 characters) for the user on the platform a bot has connected
GET/applications/{application.id}/managed-links/

Returns a list of activity link objects for the given application ID. User must be the owner of the application or developer of the owning team.

POST/applications/{application.id}/managed-links/

Creates a new activity managed link. User must be the owner of the application or developer of the owning team. Returns an activity link object on success.

JSON Params
FieldTypeDescription
custom_id??stringA custom id for the activity link (1-256 characters)
descriptionstringThe description of the activity link (1-64 characters)
imageimage dataThe activity link asset
titlestringThe title of the activity link (1-32 characters)
GET/applications/{application.id}/managed-links/{link_id}

Returns an activity link object for the given ID.

PATCH/applications/{application.id}/managed-links/{link_id}

Updates the specified activity link for the given application ID. User must be the owner of the application or developer of the owning team. Returns an activity link object on success.

DELETE/applications/{application.id}/managed-links/{link_id}

Deletes the specified activity link for the given application ID. User must be the owner of the application or developer of the owning team. Returns a 204 empty response on success.

POST/applications/{application.id}/quick-links/

Creates a new activity quick link. Returns an activity link object on success.

JSON Params
FieldTypeDescription
custom_id??stringA custom id for the activity link (1-256 characters)
descriptionstringThe description of the activity link (1-64 characters)
imageimage dataThe activity link asset
titlestringThe title of the activity link (1-32 characters)
GET/applications/{application.id}/quick-links/{link_id}

Returns an activity link object for the given ID.

Get Application Verification Eligibility

GET/applications/{application.id}/verification

Checks if an application is eligible to apply for verification. Returns an empty 204 response on success.

Verify Application

POST/applications/{application.id}/auto-verification

Verifies an application and allows it to scale past 100 servers. Returns a 204 empty response on success. User must be the owner of the owning team. The application must meet the following criteria to be eligible for verification:

  • It must belong to a team
  • It must not contain any harmful or bad language in its name, description, commands or role connection metadata
  • It must have links to its Terms of Service and Privacy Policy
  • It must have an install link
  • All its team members must have a verified email and MFA set up, with the team owner additionally having to undergo identity verification

Get Social SDK Releases

GET/social-sdk/releases

Returns the currently available social SDK releases.

Response Body
FieldTypeDescription
releasesarray[social SDK release object]The SDK releases
latest_versionstringThe latest version of the SDK

Get Social SDK release

GET/social-sdk/releases/{release.version}

Returns a social SDK release object for the given version.

Enable Social SDK

POST/applications/{application.id}/social-sdk/enable

Enables social SDK features for the given application, applying the SOCIAL_LAYER_INTEGRATION_LIMITED application flag. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
namestringThe name of the company (1-100 characters)
business_emailstringThe company business email (max 320 characters)
game_or_studio_name?stringThe name of the company (max 100 characters)
game_or_studio_url?stringThe URL of the company (max 512 characters)
email_updates_consent?booleanWhether to receive emails about the social SDK (default false)

Get Application External Identity Provider Configurations

GET/applications/{application.id}/external-identity-provider-configurations

Returns a list of application external identity provider configuration objects for the given application.

Create Application External Identity Provider Configuration

PUT/applications/{application.id}/external-identity-provider-configurations/{identity_provider_type}

Creates or updates a configuration for the given external identity provider type.

JSON Params
FieldTypeDescription
clientsarray[application external identity provider client object]The provider clients
oidc_issuer_url?stringThe primary URL of the OpenID Connect Issuer

Remove Application External Identity Provider Configuration

DELETE/applications/{application.id}/external-identity-provider-configurations/{identity_provider_type}

Removes the given external identity provider. Returns a 204 empty response on success.

Get Application Undeletable Reason

GET/applications/{application.id}/can-delete

Returns a reason for why an application cannot be deleted.

Response Body
FieldTypeDescription
deletable??booleanWhether the application is deletable (default false)
reason??integerThe reason why the application cannot be deleted

Get Bulk Application Identities

POST/application-identities

Returns a list of partial application identity objects connected to the authorized application.

JSON Params
FieldTypeDescription
user_ids 1array[snowflake]The IDs of the users to retrieve identities for (1-100)

1 Invalid IDs are ignored.

Partial Application Identity Structure
FieldTypeDescription
user_idsnowflakeThe ID of the user
external_user_idstringThe ID of the user on the external identity provider

Get User Application Profile

GET/applications/{application.id}/users/{user.id}/identities/{external_user_id}/profile

Returns an user application profile object for the given application, user, and external user IDs.

Modify User Application Profile

PATCH/applications/{application.id}/users/{user.id}/identities/{external_user_id}/profile

Modifies the user's application profile. Returns an user application profile object on success.

JSON Params
FieldTypeDescription
username?stringThe username (max 1024)
metadata?objectCustom metadata for the user application profile (max 25 keys, 1024 characters per key and value)