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
Field | Type | Description |
---|---|---|
id | snowflake | The ID of the application |
name | string | The name of the application |
description | string | The description of the application |
icon | ?string | The application's icon hash |
cover_image? | string | The application's default rich presence invite cover image hash |
splash? | string | The application's splash hash |
type | ?integer | The type of the application, if any |
flags | integer | The application's flags (including private) |
primary_sku_id? 1 | snowflake | The ID of the application's primary SKU (game, application subscription, etc.) |
verify_key | string | The hex encoded client public key for verification in interactions and the GameSDK's GetTicket |
guild_id? | snowflake | The ID of the guild linked to the application |
eula_id? | snowflake | The ID of the EULA required to play the application's game |
slug? 1 | string | The 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 |
hook | boolean | Whether the Discord client is allowed to hook into the application's game directly |
overlay? | boolean | Whether the application's game supports the Discord overlay (default false) |
overlay_warn? | boolean | Whether the Discord overlay is known to be problematic with this application's game (default false) |
overlay_compatibility_hook? | boolean | Unknown (default false) |
bot? | partial user object | The bot attached to this application |
owner | partial user object | The owner of the application |
team? 2 | ?team object | The 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_uris | array[string] | The whitelisted URLs for redirecting to during OAuth2 authorization (max 10) |
deeplink_uri? | string | The URL used for deep linking during OAuth2 authorization on mobile devices |
integration_public | boolean | Whether only the application owner can add the integration |
integration_require_code_grant | boolean | Whether the integration will only be added upon completion of a full OAuth2 token exchange |
bot_public? 3 (deprecated) | boolean | Whether only the application owner can add the bot |
bot_require_code_grant? 3 (deprecated) | boolean | Whether the application's bot will only be added upon completion of a full OAuth2 token exchange |
bot_disabled? | boolean | Whether the application's bot is disabled by Discord (default false) |
bot_quarantined? | boolean | Whether the application's bot is quarantined by Discord; quarantined bots cannot join more guilds or start new direct messages (default false) |
approximate_guild_count? | integer | Approximate count of guilds the application's bot is in |
approximate_user_install_count | integer | Approximate count of user installations the application has |
terms_of_service_url? | string | The URL to the application's terms of service |
privacy_policy_url? | string | The URL to the application's privacy policy |
role_connections_verification_url | ?string | The 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 | string | The URL of the application's interactions endpoint |
interactions_version | integer | The version of the application's interactions endpoint implementation |
interactions_event_types 4 | array[string] | The enabled Gateway events to send to the interaction endpoint |
explicit_content_filter | integer | Whether 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 object | The default in-app authorization link for the integration |
custom_install_url? | string | The 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_state | integer | The current verification state of the application |
store_application_state | integer | The current store approval state of the commerce application |
rpc_application_state | integer | The current RPC approval state of the application |
creator_monetization_state 5 | integer | The current guild creator monetization state of the application |
discoverability_state | integer | The current application directory discoverability state of the application |
discovery_eligibility_flags | integer | The current application directory eligibility flags for the application |
monetization_state | integer | The current application monetization state of the application |
monetization_eligibility_flags? 2 | integer | The current application monetization eligibility flags for the application |
is_monetized? | boolean | Whether the application has an application premium subscription set up |
max_participants? 6 | integer | The maximum possible participants in the application's embedded activity (-1 for no limit) |
embedded_activity_config? 6 | embedded activity config object | The 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
Field | Type | Description |
---|---|---|
id | snowflake | The ID of the application |
name | string | The name of the application |
description | string | The description of the application |
icon | ?string | The application's icon hash |
cover_image? | string | The application's default rich presence invite cover image hash |
splash? | string | The application's splash hash |
type | ?integer | The type of the application, if any |
flags | integer | The application's flags (including private) |
primary_sku_id? 1 | snowflake | The ID of the application's primary SKU (game, application subscription, etc.) |
verify_key | string | The hex encoded client public key for verification in interactions and the GameSDK's GetTicket |
guild_id? | snowflake | The ID of the guild linked to the application |
eula_id? | snowflake | The ID of the EULA required to play the application's game |
slug? 1 | string | The 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 |
hook | boolean | Whether the Discord client is allowed to hook into the application's game directly |
overlay? | boolean | Whether the application's game supports the Discord overlay (default false) |
overlay_warn? | boolean | Whether the Discord overlay is known to be problematic with this application's game (default false) |
overlay_compatibility_hook? | boolean | Unknown (default false) |
bot? | partial user object | The bot attached to this application |
team? 2 | ?team object | The 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? | string | The URL used for deep linking during OAuth2 authorization on mobile devices |
integration_public? | boolean | Whether only the application owner can add the integration |
integration_require_code_grant? | boolean | Whether the integration will only be added upon completion of a full OAuth2 token exchange |
bot_public? 3 (deprecated) | boolean | Whether only the application owner can add the bot |
bot_require_code_grant? 3 (deprecated) | boolean | Whether the application's bot will only be added upon completion of a full OAuth2 token exchange |
terms_of_service_url? | ?string | The URL to the application's terms of service |
privacy_policy_url? | ?string | The 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 object | The default in-app authorization link for the integration |
custom_install_url? | string | The 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? | boolean | Whether the application has an application premium subscription set up |
max_participants? 4 | integer | The maximum possible participants in the application's embedded activity (-1 for no limit) |
embedded_activity_config? 4 | embedded activity config object | The 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
Value | Name | Description |
---|---|---|
1 | GAME | A game integrating with Discord |
2 | MUSIC | A music service integrating with Discord |
3 1 | TICKETED_EVENTS | A limited application used for ticketed event SKUs |
4 1 | CREATOR_MONETIZATION | A 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
Value | Name | Description | Public |
---|---|---|---|
1 << 2 | MANAGED_EMOJI | This application can create managed emoji | No |
1 << 3 | EMBEDDED_IAP | This embedded application can use in-app purchases | Yes |
1 << 4 | GROUP_DM_CREATE | This application can create group DMs without limit | No |
1 << 6 | AUTO_MODERATION_RULE_CREATE_BADGE | This application has created 100+ AutoMod rules | Yes |
1 << 12 | GATEWAY_PRESENCE | Intent required for bots in 100 or more guilds to receive Presence Update Gateway events | Yes |
1 << 13 | GATEWAY_PRESENCE_LIMITED | Intent required for bots in under 100 guilds to receive Presence Update Gateway events | Yes |
1 << 14 | GATEWAY_GUILD_MEMBERS | Intent required for bots in 100 or more guilds to receive guild member-related events like Guild Member Add | Yes |
1 << 15 | GATEWAY_GUILD_MEMBERS_LIMITED | Intent required for bots in under 100 guilds to receive guild member-related events like Guild Member Add | Yes |
1 << 16 | VERIFICATION_PENDING_GUILD_LIMIT | Indicates unusual growth of an application that prevents verification | Yes |
1 << 17 | EMBEDDED | This application can be embedded within the Discord client | Yes |
1 << 18 | GATEWAY_MESSAGE_CONTENT | Intent required for bots in 100 or more guilds to receive message content | Yes |
1 << 19 | GATEWAY_MESSAGE_CONTENT_LIMITED | Intent required for bots in under 100 guilds to receive message content | Yes |
1 << 20 | EMBEDDED_FIRST_PARTY | This embedded application is created by Discord | Yes |
1 << 23 | APPLICATION_COMMAND_BADGE | This application has registered global application commands | Yes |
1 << 24 | ACTIVE | This application has had at least one global application command used in the last 30 days | No |
1 << 26 | IFRAME_MODAL | This application can use IFrames within modals | Yes |
1 << 27 | SOCIAL_LAYER_INTEGRATION | This application can use the social layer integration | Yes |
1 << 29 | PROMOTED | This application is promoted by Discord in the application directory | Yes |
1 << 30 | PARTNER | This application is a Discord partner | Yes |
Application Interactions Version
Value | Name | Description |
---|---|---|
1 | VERSION_1 | Only Interaction Create events are sent as documented (default) |
2 | VERSION_2 | A selection of chosen events are sent |
Explicit Content Filter Level
Value | Name | Description |
---|---|---|
0 | INHERIT | Inherits the guild's explicit content filter |
1 | ALWAYS | Media content will always be scanned |
Application Verification State
Value | Name | Description |
---|---|---|
1 | INELIGIBLE | This application is ineligible for verification |
2 | UNSUBMITTED | This application has not yet been applied for verification |
3 | SUBMITTED | This application has submitted a verification request |
4 | SUCCEEDED | This application has been verified |
Store Application State
Value | Name | Description |
---|---|---|
1 | NONE | This application does not have a commerce license |
2 | PAID | This application has a commerce license but has not yet submitted a store approval request |
3 | SUBMITTED | This application has submitted a store approval request |
4 | APPROVED | This application has been approved for the store |
5 | REJECTED | This application has been rejected from the store |
RPC Application State
Value | Name | Description |
---|---|---|
0 | DISABLED | This application does not have access to RPC |
1 | UNSUBMITTED | This application has not yet been applied for RPC access |
2 | SUBMITTED | This application has submitted a RPC access request |
3 | APPROVED | This application has been approved for RPC access |
4 | REJECTED | This application has been rejected from RPC access |
Application Discoverability State
Value | Name | Description |
---|---|---|
1 | INELIGIBLE | This application is ineligible for the application directory |
2 | NOT_DISCOVERABLE | This application is not listed in the application directory |
3 | DISCOVERABLE | This application is listed in the application directory |
4 | FEATUREABLE | This application is featurable in the application directory |
5 | BLOCKED | This application has been blocked from appearing in the application directory |
Application Discovery Eligibility Flags
Value | Name | Description |
---|---|---|
1 << 0 | VERIFIED | This application is verified |
1 << 1 | TAG | This application has at least one tag set |
1 << 2 | DESCRIPTION | This application has a description |
1 << 3 | TERMS_OF_SERVICE | This application has terms of service set |
1 << 4 | PRIVACY_POLICY | This application has a privacy policy set |
1 << 5 | INSTALL_PARAMS | This application has a custom install URL or install parameters |
1 << 6 | SAFE_NAME | This application's name is safe for work |
1 << 7 | SAFE_DESCRIPTION | This application's description is safe for work |
1 << 8 | APPROVED_COMMANDS | This application has the message content intent approved or utilizes application commands |
1 << 9 | SUPPORT_GUILD | This application has a support guild set |
1 << 10 | SAFE_COMMANDS | This application's commands are safe for work |
1 << 11 | MFA | This application's owner has MFA enabled |
1 << 12 | SAFE_DIRECTORY_OVERVIEW | This application's directory long description is safe for work |
1 << 13 | SUPPORTED_LOCALES | This application has at least one supported locale set |
1 << 14 | SAFE_SHORT_DESCRIPTION | This application's directory short description is safe for work |
1 << 15 | SAFE_ROLE_CONNECTIONS | This application's role connections metadata is safe for work |
1 << 16 | ELIGIBLE | This application has met all the above criteria and is eligible for discovery |
Application Monetization State
Value | Name | Description |
---|---|---|
1 | NONE | This application does not have monetization set up |
2 | ENABLED | This application has monetization set up |
3 | BLOCKED | This application has been blocked from monetizing |
Application Monetization Eligibility Flags
Value | Name | Description |
---|---|---|
1 << 0 | VERIFIED | This application is verified |
1 << 1 | HAS_TEAM | This application is owned by a team |
1 << 2 | APPROVED_COMMANDS | This application has the message content intent approved or utilizes application commands |
1 << 3 | TERMS_OF_SERVICE | This application has terms of service set |
1 << 4 | PRIVACY_POLICY | This application has a privacy policy set |
1 << 5 | SAFE_NAME | This application's name is safe for work |
1 << 6 | SAFE_DESCRIPTION | This application's description is safe for work |
1 << 7 | SAFE_ROLE_CONNECTIONS | This application's role connections metadata is safe for work |
1 << 8 | USER_IS_TEAM_OWNER | The user is the owner of the team that owns the application |
1 << 9 | NOT_QUARANTINED | This application is not quarantined |
1 << 10 | USER_LOCALE_SUPPORTED | The user's locale is supported by monetization |
1 << 11 | USER_AGE_SUPPORTED | The user is old enough to use monetization |
1 << 12 | USER_DATE_OF_BIRTH_DEFINED | The user has a date of birth defined on their account |
1 << 13 | USER_MFA_ENABLED | The user has MFA enabled |
1 << 14 | USER_EMAIL_VERIFIED | The user's email is verified |
1 << 15 | TEAM_MEMBERS_EMAIL_VERIFIED | All members of the team that owns the application have verified emails |
1 << 16 | TEAM_MEMBERS_MFA_ENABLED | All members of the team that owns the application have MFA enabled |
1 << 17 | NO_BLOCKING_ISSUES | This application has no issues blocking monetization |
1 << 18 | VALID_PAYOUT_STATUS | The 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,"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,"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
Field | Type | Description |
---|---|---|
os | string | The operating system the executable can be found on |
name | string | The name of the executable |
is_launcher | boolean | Whether 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
Field | Type | Description |
---|---|---|
id | ?string | The ID of the game |
sku | ?string | The SKU of the game |
distributor | string | The distributor of the game |
Distributor Type
Value | Description |
---|---|
discord | Discord Store |
steam | Steam |
twitch | Twitch |
uplay | Ubisoft Connect |
battle_net | Battle.net |
origin | Origin |
gog | GOG.com |
epic_games | Epic Games Store |
google_play | Google Play Store |
Example Application SKU
{"id": "445220","sku": "445220","distributor": "steam"}
Application Install Params Object
Application Install Params Structure
Field | Type | Description |
---|---|---|
scopes | array[string] | The scopes to authorize the integration with |
permissions | string | The permissions to request for the application's bot integration role |
Application Integration Type
An application's supported installation contexts.
Value | Name | Description |
---|---|---|
0 | GUILD_INSTALL | Guild installation context |
1 | USER_INSTALL | User installation context |
Application Integration Type Configuration Structure
Field | Type | Description |
---|---|---|
oauth2_install_params? | application install params object | The 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/.proxy/<prefix>
.
Application Proxy Config Structure
Field | Type | Description |
---|---|---|
url_map | array[application proxy mapping object] | The URLs mapped to the proxy |
Application Proxy Mapping Structure
Field | Type | Description |
---|---|---|
prefix | string | The prefix on the proxy |
target | string | The domain to proxy |
Example Application Proxy Config
{"url_map": [{"prefix": "/api","target": "api.example.com"}]}
Embedded Activity Config Object
Embedded Activity Config Structure
Field | Type | Description |
---|---|---|
application_id? 1 | snowflake | The ID of the application this embedded activity is for |
activity_preview_video_asset_id | ?snowflake | The 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 | integer | The default orientation lock state for the activity on mobile |
tablet_default_orientation_lock_state | integer | The default orientation lock state for the activity on tablets |
requires_age_gate | boolean | Whether the activity is age gated |
premium_tier_requirement (deprecated) | ?integer | The minimum guild premium tier required to use the activity, if any |
free_period_starts_at (deprecated) | ?ISO8601 timestamp | When the current free period for the activity starts, if any |
free_period_ends_at (deprecated) | ?ISO8601 timestamp | When 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 | integer | The rank of the activity in the activity shelf sort order |
has_csp_exception | boolean | Whether the activity is not routed through the Discord activity proxy |
displays_advertisements | boolean | Whether the activity displays advertisements |
1 Omitted in the application object.
Embedded Activity Orientation Lock State Type
Value | Name | Description |
---|---|---|
1 | UNLOCKED | Unrestricted orientation |
2 | PORTRAIT | Portrait only |
3 | LANDSCAPE | Landscape only |
Embedded Activity Platform Type
Value | Description |
---|---|
web | Web |
android | Android |
ios | iOS |
Embedded Activity Platform Config Structure
Field | Type | Description |
---|---|---|
label_type | integer | The type of release label for the platform |
label_until? | ?ISO8601 timestamp | When the release label expires |
release_phase | string | The release phase for the platform |
Embedded Activity Label Type
Value | Name | Description |
---|---|---|
0 | NONE | No special label |
1 | NEW | The activity is new |
2 | UPDATED | The activity has been recently updated |
Embedded Activity Release Phase
Value | Description |
---|---|
in_development | The activity is still in development |
activities_team | The activity is available to guilds with the ACTIVITIES_INTERNAL_DEV guild feature |
employee_release | The activity is available to guilds with the ACTIVITIES_EMPLOYEE guild feature |
soft_launch | The activity is available to guilds with the ACTIVITIES_ALPHA guild feature |
global_launch | The 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
Field | Type | Description |
---|---|---|
id | string | The ID of the asset |
type | integer | The type of the asset |
name | string | The name of the asset |
Application Asset Type
Value | Name | Description |
---|---|---|
1 | ONE | Unknown |
2 | TWO | Unknown |
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
Field | Type | Description |
---|---|---|
platform_name | ?string | The vanity name of the platform a bot has connected (max 50 characters) |
platform_username | ?string | The username on the platform a bot has connected (max 100 characters) |
metadata | object | 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 |
application? | integration application object | The 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
Field | Type | Description |
---|---|---|
type | integer | The [type of metadata value]](#application-role-connection-metadata-type) |
key | string | Key for the metadata field (1-50 characters, must be a-z , 0-9 , or _ ) |
name | string | The name of the metadata field (1-100 characters) |
name_localizations? | map[str, str] | Translations of the name with keys in available locales |
description | string | The 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
Value | Name | Description |
---|---|---|
1 | INTEGER_LESS_THAN_OR_EQUAL | The metadata value (integer ) is less than or equal to the guild's configured value (integer ) |
2 | INTEGER_GREATER_THAN_OR_EQUAL | The metadata value (integer ) is greater than or equal to the guild's configured value (integer ) |
3 | INTEGER_EQUAL | The metadata value (integer ) is equal to the guild's configured value (integer ) |
4 | INTEGER_NOT_EQUAL | The metadata value (integer ) is not equal to the guild's configured value (integer ) |
5 | DATETIME_LESS_THAN_OR_EQUAL | The metadata value (ISO8601 string ) is less than or equal to the guild's configured value (integer ; days before current date ) |
6 | DATETIME_GREATER_THAN_OR_EQUAL | The metadata value (ISO8601 string ) is greater than or equal to the guild's configured value (integer ; days before current date ) |
7 | BOOLEAN_EQUAL | The metadata value (integer ) is equal to the guild's configured value (integer ; 1 ) |
8 | BOOLEAN_NOT_EQUAL | The 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
Field | Type | Description |
---|---|---|
with_team_applications? | boolean | Whether 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
Field | Type | Description |
---|---|---|
with_team_applications? | boolean | Whether to include applications that a team the user is a part of owns |
Response Body
Field | Type | Description |
---|---|---|
applications | array[application] | The applications the user has |
assets | map[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,"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,"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
Field | Type | Description |
---|---|---|
name | string | The name of the application |
type? | integer | The type of the application (only CREATOR_MONETIZATION is supported) |
team_id? | snowflake | The ID of the team to create this application under |
description? | ?string | The description of the application |
icon? | ?image data | The application's icon |
cover_image? | ?image data | The application's default rich presence invite cover image |
flags? | integer | the application's flags (only GATEWAY_GUILD_MEMBERS_LIMITED , GATEWAY_PRESENCE_LIMITED , and GATEWAY_MESSAGE_CONTENT_LIMITED can be set) |
guild_id? | ?snowflake | The 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? | ?string | The 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
Field | Type | Description |
---|---|---|
name? | string | The name of the application |
description? | ?string | The description of the application |
icon? | ?image data | The application's icon |
cover_image? | ?image data | The application's default rich presence invite cover image |
flags? | integer | The application's flags (only GATEWAY_GUILD_MEMBERS_LIMITED , GATEWAY_PRESENCE_LIMITED , and GATEWAY_MESSAGE_CONTENT_LIMITED can be set) |
guild_id? | ?snowflake | The 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? | ?string | The URL used for deep linking during OAuth2 authorization on mobile devices |
integration_public? | boolean | Whether only the application owner can add the integration |
integration_require_code_grant? | boolean | Whether the integration will only be added upon completion of a full OAuth2 token exchange |
bot_public? (deprecated) | boolean | Whether only the application owner can add the bot |
bot_require_code_grant? (deprecated) | boolean | Whether the application's bot will only be added upon completion of a full OAuth2 token exchange |
terms_of_service_url? | ?string | The URL to the application's terms of service |
privacy_policy_url? | ?string | The URL to the application's privacy policy |
role_connections_verification_url | ?string | The 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? | string | The URL of the application's interactions endpoint |
interactions_version? | integer | The 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? | integer | Whether 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 object | The default in-app authorization link for the integration |
custom_install_url? | ?string | The 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? | integer | The current application directory discoverability state of the application (only NOT_DISCOVERABLE and DISCOVERABLE is supported) |
monetization_state? | integer | The current application monetization state of the application (only NONE and ENABLED is supported) |
max_participants? | ?integer | The 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
Field | Type | Description |
---|---|---|
description? | ?string | The description of the application |
icon? | ?image data | The application's icon |
cover_image? | ?image data | The application's default rich presence invite cover image |
flags? | integer | The 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? | ?string | The URL used for deep linking during OAuth2 authorization on mobile devices |
role_connections_verification_url? | ?string | The 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? | ?string | The URL of the application's interactions endpoint |
interactions_version? | integer | The 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? | integer | Whether 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 object | The default in-app authorization link for the integration |
custom_install_url? | ?string | The 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? | ?integer | The 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
Field | Type | Description |
---|---|---|
team_id | snowflake | The 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
Field | Type | Description |
---|---|---|
secret | string | The 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
Field | Type | Description |
---|---|---|
token | ?string | The 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
Field | Type | Description |
---|---|---|
username? | string | The user's username (2-32 characters) |
avatar? | ?image data | The user's avatar |
banner? | ?image data | The 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
Field | Type | Description |
---|---|---|
token | string | The 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
Field | Type | Description |
---|---|---|
discoverability_state | integer | The current application directory discoverability state of the application |
discovery_eligibility_flags | integer | The current application directory eligibility flags for the application |
bad_commands | array[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
Field | Type | Description |
---|---|---|
embedded | boolean | Whether 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
Field | Type | Description |
---|---|---|
activity_preview_video_asset_id? | ?snowflake | The 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? | integer | The default orientation lock state for the activity on mobile |
tablet_default_orientation_lock_state? | integer | The default orientation lock state for the activity on tablets |
requires_age_gate? | boolean | Whether the activity is age gated |
free_period_starts_at? (deprecated) | ?ISO8601 timestamp | When the current free period for the activity starts, if any |
free_period_ends_at? (deprecated) | ?ISO8601 timestamp | When 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? | integer | The 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
andtarget
fields. For example, you can map/server/{id}
toserver-{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
Field | Type | Description |
---|---|---|
url_map | array[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
Field | Type | Description |
---|---|---|
name | string | The name of the asset |
type | integer | The type of the asset |
image | image data | The 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.
Create Application Attachment
POST
/applications/{application.id}/attachment
Uploads an ephemeral attachment to the application. Must be a multipart/form-data
body.
Form Params
Field | Type | Description |
---|---|---|
file | file contents | The image file to upload, must be a JPEG, PNG, or GIF file |
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
Field | Type | Description |
---|---|---|
application_ids | array[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
Field | Type | Description |
---|---|---|
type? | integer | The type of applications to return |
include_team? 1 | bool | Whether to include team information for owned applications (default false) |
channel_id? | snowflake | The 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
Field | Type | Description |
---|---|---|
platform_name? | string | The vanity name of the platform a bot has connected (max 50 characters) |
platform_username? | string | The 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 |