Application Resource

Applications are Discord entities that represent games, services, and other integrations that can be added to a guild. Applications can be used for a variety of purposes, including OAuth2 authentication, rich presence, bots, and much more.

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_warn?booleanWhether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hook?booleanUnknown (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)
approximate_guild_count?integerApproximate count of guilds the application's bot is 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 Gateway events to send to the interaction 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[int, ?application integration type configuration object]The configuration for each integration type supported by the application
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
discoverability_stateintegerThe current application directory discoverability state of the application
discovery_eligibility_flagsintegerThe current application directory eligibility flags for the application
monetization_stateintegerThe current application monetization state of the application
monetization_eligibility_flags? 2integerThe current application monetization eligibility flags for the application
is_monetized?booleanWhether the application has an application premium subscription set up
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

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
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_warn?booleanWhether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hook?booleanUnknown (default false)
bot?partial user objectThe bot attached to this 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
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? 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
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[int, ?application integration type configuration object]The configuration for each integration type supported by the application
is_monetized?booleanWhether the application has an application premium subscription set up
max_participants? 4integerThe maximum possible participants in the application's embedded activity (-1 for no limit)
embedded_activity_config? 4embedded activity config objectThe configuration for the application's embedded activity

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 Guild Applications endpoint. You must own the application or be a member of the owning team to receive this information.

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 Only applicable for applications with the EMBEDDED flag.

Application Type
ValueNameDescription
1GAMEA game integrating with Discord
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

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

Application Flags
ValueNameDescriptionPublic
1 << 1EMBEDDED_RELEASEDThis embedded application is released to the public (see release phases)Yes
1 << 2MANAGED_EMOJIThis application can create managed emojiNo
1 << 3EMBEDDED_IAPThis embedded application can use in-app purchasesYes
1 << 4GROUP_DM_CREATEThis application can create group DMs without limitNo
1 << 5RPC_PRIVATE_BETAThis application can access the client RPC serverNo
1 << 6AUTO_MODERATION_RULE_CREATE_BADGEThis application has created 100+ AutoMod rulesYes
1 << 8ALLOW_ASSETSThis application can use activity assetsNo
1 << 9ALLOW_ACTIVITY_ACTION_SPECTATEThis application can enable spectating activitiesNo
1 << 10ALLOW_ACTIVITY_ACTION_JOIN_REQUESTThis application can enable activity join requestsNo
1 << 11RPC_HAS_CONNECTEDThis application has accessed the client RPC server beforeYes
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 << 17EMBEDDEDThis application 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_PARTYThis embedded application is created by DiscordYes
1 << 23APPLICATION_COMMAND_BADGEThis application has registered global application commandsYes
1 << 24ACTIVEThis application has had at least one global application command used in the last 30 daysNo
1 << 26IFRAME_MODALThis application can use IFrames within modalsYes
Application Interactions Version
ValueNameDescription
1VERSION_1Only Interaction Create events are sent as documented (default)
2VERSION_2A selection of chosen events are sent
Explicit Content Filter Level
ValueNameDescription
0DISABLEDMedia content will not be scanned
1ENABLEDMedia content will 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
4SUCCEEDEDThis application has been verified
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 << 0VERIFIEDThis application is verified
1 << 1TAGThis application has at least one tag set
1 << 2DESCRIPTIONThis application has a description
1 << 3TERMS_OF_SERVICEThis application has terms of service set
1 << 4PRIVACY_POLICYThis application has a privacy policy set
1 << 5INSTALL_PARAMSThis application has a custom install URL or install parameters
1 << 6SAFE_NAMEThis application's name is safe for work
1 << 7SAFE_DESCRIPTIONThis application's description is safe for work
1 << 8APPROVED_COMMANDSThis application has the message content intent approved or utilizes application commands
1 << 9SUPPORT_GUILDThis application has a support guild set
1 << 10SAFE_COMMANDSThis application's commands are safe for work
1 << 11MFAThis application's owner has MFA enabled
1 << 12SAFE_DIRECTORY_OVERVIEWThis application's directory long description is safe for work
1 << 13SUPPORTED_LOCALESThis application has at least one supported locale set
1 << 14SAFE_SHORT_DESCRIPTIONThis application's directory short description is safe for work
1 << 15SAFE_ROLE_CONNECTIONSThis application's role connections metadata is safe for work
1 << 16ELIGIBLEThis application has met all the above criteria and is eligible for discovery
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
Application Monetization Eligibility Flags
ValueNameDescription
1 << 0VERIFIEDThis application is verified
1 << 1HAS_TEAMThis application is owned by a team
1 << 2APPROVED_COMMANDSThis application has the message content intent approved or utilizes application commands
1 << 3TERMS_OF_SERVICEThis application has terms of service set
1 << 4PRIVACY_POLICYThis application has a privacy policy set
1 << 5SAFE_NAMEThis application's name is safe for work
1 << 6SAFE_DESCRIPTIONThis application's description is safe for work
1 << 7SAFE_ROLE_CONNECTIONSThis application's role connections metadata is safe for work
1 << 8USER_IS_TEAM_OWNERThe user is the owner of the team that owns the application
1 << 9NOT_QUARANTINEDThis application is not quarantined
1 << 10USER_LOCALE_SUPPORTEDThe user's locale is supported by monetization
1 << 11USER_AGE_SUPPORTEDThe user is old enough to use monetization
1 << 12USER_DATE_OF_BIRTH_DEFINEDThe user has a date of birth defined on their account
1 << 13USER_MFA_ENABLEDThe user has MFA enabled
1 << 14USER_EMAIL_VERIFIEDThe user'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_STATUSThe team has a valid payout status
Example Application
{
"id": "891436243903728565",
"name": "Socket",
"icon": "26f3dcdc6e6371b52c384c812c30546c",
"description": "Socket",
"type": null,
"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
},
"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,
"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
},
"approximate_guild_count": 100,
"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,
"is_monetized": false,
"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,
"clan": 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,
"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
},
"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,
"is_monetized": 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,
"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
battle_netBattle.net
originOrigin
gogGOG.com
epic_gamesEpic Games Store
google_playGoogle Play 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
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

1 Omitted in the application object.

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
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_INTERNAL_DEV guild feature
employee_releaseThe activity is available to guilds with the ACTIVITIES_EMPLOYEE guild feature
soft_launchThe activity is available to guilds with the ACTIVITIES_ALPHA guild feature
global_launchThe activity is available to all guilds
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,
"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" },
"ios": { "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_id": "880218394199220334"
}

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]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]](#application-role-connection-metadata-type)
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
Application Role Connection Metadata Type
ValueNameDescription
1INTEGER_LESS_THAN_OR_EQUALThe metadata value (integer) is less than or equal to the guild's configured value (integer)
2INTEGER_GREATER_THAN_OR_EQUALThe metadata value (integer) is greater than or equal to the guild's configured value (integer)
3INTEGER_EQUALThe metadata value (integer) is equal to the guild's configured value (integer)
4INTEGER_NOT_EQUALThe metadata value (integer) is not equal to the guild's configured value (integer)
5DATETIME_LESS_THAN_OR_EQUALThe metadata value (ISO8601 string) is less than or equal to the guild's configured value (integer; days before current date)
6DATETIME_GREATER_THAN_OR_EQUALThe metadata value (ISO8601 string) is greater than or equal to the guild's configured value (integer; days before current date)
7BOOLEAN_EQUALThe metadata value (integer) is equal to the guild's configured value (integer; 1)
8BOOLEAN_NOT_EQUALThe metadata value (integer) is not equal to the guild's configured value (integer; 1)

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, application asset]The assets for each application
Example Response
{
"applications": [
{
"id": "891436243903728565",
"name": "Lightbulb",
"icon": "546242649e3b09a97af7e8f29983837b",
"description": "\ud83d\udca1 Let there be light",
"summary": "",
"type": null,
"is_monetized": 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,
"clan": 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,
"clan": null,
"bot": true
},
"approximate_guild_count": 100,
"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,
"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 current 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 current 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 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
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[int, ?application integration type configuration object]The configuration for each integration type supported by the application
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
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[int, ?application integration type configuration object]The configuration for each integration type supported by the application
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 current 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 current 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 current team.

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

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 current 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 current 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 current team.

Response Body
FieldTypeDescription
tokenstringThe token of the bot

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 current 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

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 current team. Returns a 204 empty response on success.

JSON Params
FieldTypeDescription
embeddedbooleanWhether the application is embedded

Get Application 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 current team.

Modify Application 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 current 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 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 current 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 current 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.

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 current 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 current team. Returns a 204 empty response on success.

Get Detectable Applications

GET/applications/detectable

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

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 (max 100); unknown IDs are ignored

Get Partial Application

GET/applications/{application.id}/public

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

Get Rich Presence Application

GET/applications/{application.id}/rpc

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

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? 1boolWhether 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.

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

Updates 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