Aplicaciones
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.
id
snowflake
The ID of the application
name
string
The name of the application
description
string
The description of the application
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
hook
boolean
Whether the Discord client is allowed to hook into the application's game directly
overlay_warn?
boolean
Whether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hook?
boolean
Whether to use the compatibility hook for the overlay (default false)
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)
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 users that have authorized the application with the applications.commands
scope
approximate_user_authorization_count
integer
Approximate count of users that have OAuth2 authorizations for the application
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_event_types 4
array[string]
The enabled event webhook types to send to the interaction endpoint
event_webhooks_url?
string
The URL of the application's event webhooks endpoint
event_webhooks_types?
array[string]
The enabled event webhook types to send to the event webhooks endpoint
explicit_content_filter
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[integer, ?application integration type configuration object]
The configuration for each integration type supported by the application
is_verified
boolean
Whether the application is verified
is_discoverable
boolean
Whether the application is discoverable in the application directory
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
is_monetized
boolean
Whether the application has monetization enabled
storefront_available
boolean
Whether the application has public subscriptions or products available for purchase
monetization_eligibility_flags? 2
integer
The current application monetization eligibility flags for the application
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 and fields can be combined to form a URL to the application's primary store page like so: .
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 and . 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.
6 Only applicable for applications with the flag.
id
snowflake
The ID of the application
name
string
The name of the application
description
string
The description of the application
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 {/ todo: link this here /}
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
hook
boolean
Whether the Discord client is allowed to hook into the application's game directly
overlay_warn?
boolean
Whether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hook?
boolean
Whether to use the compatibility hook for the overlay (default false)
rpc_origins?
array[string]
The whitelisted RPC origin URLs for the application, if RPC is enabled
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? 4 (deprecated)
boolean
Whether only the application owner can add the bot
bot_require_code_grant? 4 (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[integer, ?application integration type configuration object]
The configuration for each integration type supported by the application
is_verified
boolean
Whether the application is verified
is_discoverable
boolean
Whether the application is discoverable in the application directory
is_monetized
boolean
Whether the application has monetization enabled
storefront_available
boolean
Whether the application has public subscriptions or products available for purchase
max_participants? 5
integer
The maximum possible participants in the application's embedded activity (-1 for no limit)
embedded_activity_config? 5
embedded activity config object
The configuration for the application's embedded activity
1 The and fields can be combined to form a URL to the application's primary store page like so: .
2 Only present when fetched from the Get Partial Application endpoint with set to . The guild must be discoverable.
3 Only present when fetched from the Get Guild Applications endpoint. You must own the application or be a member of the owning team to receive this information.
4 In some cases, these fields may still be provided instead of and . These fields will not be present if the application does not have a bot.
5 Only applicable for applications with the flag.
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.
1 << 2
MANAGED_EMOJI
Application can create managed emoji
No
1 << 3
EMBEDDED_IAP
Embedded application can use in-app purchases
Yes
1 << 4
GROUP_DM_CREATE
Application can create group DMs without limit
No
1 << 5
RPC_PRIVATE_BETA
Application can access the client RPC server
No
1 << 6
AUTO_MODERATION_RULE_CREATE_BADGE
Application has created 100+ AutoMod rules
Yes
1 << 7
GAME_PROFILE_DISABLED
Application has its game profile page disabled
Yes
1 << 8
PUBLIC_OAUTH2_CLIENT
Application's OAuth2 credentials are considered public and a client secret is not required
Yes
1 << 9
CONTEXTLESS_ACTIVITY
Embedded application's activity can be launched without a context
Yes
1 << 10
SOCIAL_LAYER_INTEGRATION_LIMITED
Application has limited access to the social layer SDK
Yes
1 << 11
CLOUD_GAMING_DEMO
Application is trialing cloud gaming features
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
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
Embedded application is created by Discord
Yes
1 << 21
APPLICATION_COMMAND_MIGRATED
Unknown
Yes
1 << 23
APPLICATION_COMMAND_BADGE
Application has registered global application commands
Yes
1 << 24
ACTIVE
Application has had at least one global application command used in the last 30 days
No
1 << 25
ACTIVE_GRACE_PERIOD 1
Application has not had any global application commands used in the last 30 days and has lost the ACTIVE
flag
No
1 << 26
IFRAME_MODAL
Application can use IFrames within modals
Yes
1 << 27
SOCIAL_LAYER_INTEGRATION
Application can use the social layer SDK
Yes
1 << 29
PROMOTED
Application is promoted by Discord in the application directory
Yes
1 << 30
PARTNER
Application is a Discord partner
Yes
1 << 8
ALLOW_ASSETS
Application can use activity assets
No
1 << 9
ALLOW_ACTIVITY_ACTION_SPECTATE
Application can enable spectating activities
No
1 << 10
ALLOW_ACTIVITY_ACTION_JOIN_REQUEST
Application can enable activity join requests
No
1 << 11
RPC_HAS_CONNECTED
Application has accessed the client RPC server before
Yes
1 The active grace period lasts for 30 days, after which the user flag will be removed from developers that claimed it.
1 << 0
OUT_OF_PROCESS
Overlay can be rendered out of process
1
JOIN_ALL
The application can be authorized in any guild
Application Interactions Version
2
VERSION_2
A selection of chosen events are sent
1
DISABLED
Event webhooks are disabled
2
ENABLED
Event webhooks are enabled
APPLICATION_AUTHORIZED
Sent when a user authorizes the application
ENTITLEMENT_CREATE
Sent when a user creates an entitlement
QUEST_USER_ENROLLMENT
Sent when a user enrolls in a quest
1
ALWAYS
Media content will always be scanned
Application Verification State
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
APPROVED_MANUALLY
This application has been verified manually from Discord staff or using the old verification process
5
BLOCKED
This application is blocked and cannot be verified
6
APPROVED_AUTOMATICALLY
This application has been verified automatically through the Stripe identity verification process
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
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
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
1 << 0
VERIFIED
Application is verified
1 << 1
TAG
Application has at least one tag set
1 << 2
DESCRIPTION
Application has a description
1 << 3
TERMS_OF_SERVICE
Application has terms of service set
1 << 4
PRIVACY_POLICY
Application has a privacy policy set
1 << 5
INSTALL_PARAMS
Application has a custom install URL or install parameters
1 << 6
SAFE_NAME
Application's name is safe for work
1 << 7
SAFE_DESCRIPTION
Application's description is safe for work
1 << 8
APPROVED_COMMANDS
Application has the message content intent approved or utilizes application commands
1 << 9
SUPPORT_GUILD
Application has a support guild set
1 << 10
SAFE_COMMANDS
Application's commands are safe for work
1 << 11
MFA
Application's owner has MFA enabled
1 << 12
SAFE_DIRECTORY_OVERVIEW
Application's directory long description is safe for work
1 << 13
SUPPORTED_LOCALES
Application has at least one supported locale set
1 << 14
SAFE_SHORT_DESCRIPTION
Application's directory short description is safe for work
1 << 15
SAFE_ROLE_CONNECTIONS
Application's role connections metadata is safe for work
Application Monetization State
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
The values of this enum are currently unknown. Help us by figuring them out and submitting a pull request!
Application Monetization Eligibility Flags
1 << 0
VERIFIED
Application is verified
1 << 1
HAS_TEAM
Application is owned by a team
1 << 2
APPROVED_COMMANDS
Application has the message content intent approved or utilizes application commands
1 << 3
TERMS_OF_SERVICE
Application has terms of service set
1 << 4
PRIVACY_POLICY
Application has a privacy policy set
1 << 5
SAFE_NAME
Application's name is safe for work
1 << 6
SAFE_DESCRIPTION
Application's description is safe for work
1 << 7
SAFE_ROLE_CONNECTIONS
Application's role connections metadata is safe for work
1 << 8
USER_IS_TEAM_OWNER
User is the owner of the team that owns the application
1 << 9
NOT_QUARANTINED
Application is not quarantined
1 << 10
USER_LOCALE_SUPPORTED
User's locale is supported by monetization
1 << 11
USER_AGE_SUPPORTED
User is old enough to use monetization
1 << 12
USER_DATE_OF_BIRTH_DEFINED
User has a date of birth defined on their account
1 << 13
USER_MFA_ENABLED
User has MFA enabled
1 << 14
USER_EMAIL_VERIFIED
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
Owning team has a valid payout status
{ "id": "891436243903728565", "name": "Socket", "icon": "26f3dcdc6e6371b52c384c812c30546c", "description": "Socket", "type": null, "is_monetized": false, "is_verified": false, "is_discoverable": false, "bot": { "id": "891436243903728565", "username": "Socket", "avatar": "26f3dcdc6e6371b52c384c812c30546c", "discriminator": "0001", "public_flags": 0, "bot": true, "banner": null, "accent_color": null, "global_name": null, "avatar_decoration_data": null, "primary_guild": null }, "deeplink_uri": "https://google.com/search?q=power+sockets+near+me", "bot_public": true, "bot_require_code_grant": false, "verify_key": "852634a9ed80c0c5ac81e3c46d4b10a05400cb71898ea0484e7b63ac3a27096a", "flags": 27828224, "tags": ["60hz", "AC", "", "120v"], "hook": true, "storefront_available": false, "redirect_uris": ["http://localhost:5000/callback"], "interactions_endpoint_url": null, "role_connections_verification_url": "https://google.com/search?q=power+sockets+near+me", "owner": { "id": "1110738998453837384", "username": "team1110738998453837384", "avatar": null, "discriminator": "0000", "public_flags": 1024, "banner": null, "accent_color": null, "global_name": null, "avatar_decoration_data": null, "primary_guild": null }, "approximate_guild_count": 100, "approximate_user_install_count": 1000, "interactions_event_types": [], "interactions_version": 1, "explicit_content_filter": 1, "rpc_application_state": 0, "store_application_state": 1, "creator_monetization_state": 1, "verification_state": 1, "integration_public": true, "integration_require_code_grant": false, "discoverability_state": 1, "discovery_eligibility_flags": 36294, "monetization_state": 1, "monetization_eligibility_flags": 0, "publishers": [{ "id": "1058932127820939295", "name": "AlienTec" }], "developers": [{ "id": "1058932084854509568", "name": "Alien Games" }], "team": { "id": "1110738998453837384", "icon": null, "name": "Power", "owner_user_id": "852892297661906993", "members": [ { "user": { "id": "852892297661906993", "username": "dolfies", "avatar": "c78ef8fb1db15a3d5f1b4c057856c5c9", "discriminator": "0", "public_flags": 136, "banner": null, "accent_color": null, "global_name": "Dolfies", "avatar_decoration_data": null, "primary_guild": null }, "team_id": "1110738998453837384", "membership_state": 2, "role": "admin" } ] }, "internal_guild_restriction": 1}
{ "id": "880218394199220334", "name": "Watch Together", "icon": "ec48acbad4c32efab4275cb9f3ca3a58", "description": "Create and watch a playlist of YouTube videos with your friends. Your choice to share the remote or not. ", "type": null, "is_monetized": false, "is_verified": false, "is_discoverable": false, "cover_image": "3cc9446876ae9eec6e06ff565703c292", "bot": { "id": "880218394199220334", "username": "Watch Together", "avatar": "fe2b7fa334817b0346d57416ad75e93b", "discriminator": "5319", "public_flags": 0, "bot": true, "banner": null, "accent_color": null, "global_name": null, "avatar_decoration_data": null, "primary_guild": null }, "summary": "", "bot_public": false, "bot_require_code_grant": false, "terms_of_service_url": "https://discord.com/terms", "privacy_policy_url": "https://discord.com/privacy", "verify_key": "e2aaf50fbe2fd9d025ac669035f5efb89099931690fba9dc28efb7eaade7f96d", "flags": 1179648, "max_participants": -1, "tags": ["Video Player", "Watch"], "hook": true, "storefront_available": false, "embedded_activity_config": { "activity_preview_video_asset_id": "1104184163201990836", "supported_platforms": ["web", "ios", "android"], "default_orientation_lock_state": 2, "tablet_default_orientation_lock_state": 1, "requires_age_gate": false, "legacy_responsive_aspect_ratio": false, "premium_tier_requirement": null, "free_period_starts_at": null, "free_period_ends_at": null, "client_platform_config": { "ios": { "label_type": 0, "label_until": null, "release_phase": "global_launch" }, "android": { "label_type": 0, "label_until": null, "release_phase": "global_launch" }, "web": { "label_type": 0, "label_until": null, "release_phase": "global_launch" } }, "shelf_rank": 3, "has_csp_exception": false, "displays_advertisements": false }}
Application Executable Structure
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}
id
?string
The ID of the game
sku
?string
The SKU of the game
discord
Discord Store
steam
Steam
twitch
Twitch
uplay
Ubisoft Connect
battlenet
Battle.net
origin
Origin
gog
GOG.com
epic
Epic Games Store
google_play
Google Play Store
nvidia_gdn_app
NVIDIA Cloud Gaming
{ "id": "445220", "sku": "445220", "distributor": "steam"}
Application Install Params Structure
An application's supported installation contexts.
0
GUILD_INSTALL
Guild installation context
1
USER_INSTALL
User installation context
Application Integration Type Configuration Structure
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"}
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 Proxy Config Structure
Application Proxy Mapping Structure
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 Structure
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
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
legacy_responsive_aspect_ratio
boolean
Whether the activity uses a responsive aspect ratio instead of a dynamic aspect ratio
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
1
UNLOCKED
Unrestricted orientation
2
PORTRAIT
Portrait only
3
LANDSCAPE
Landscape only
Embedded Activity Platform Type
web
Web
android
Android
ios
iOS
Embedded Activity Platform Config Structure
label_until?
?ISO8601 timestamp
When the release label expires
0
NONE
No special label
1
NEW
The activity is new
2
UPDATED
The activity has been recently updated
Embedded Activity Release Phase
in_development
The activity is still in development
activities_team
The activity is available to guilds with the guild feature
employee_release
The activity is available to guilds with the guild feature
soft_launch
The activity is available to all guilds
soft_launch_multi_geo
The activity is available to all guilds
global_launch
The activity is available to all guilds
voice_launcher
The activity launcher in the voice channel interface
text_launcher
The activity launcher in the text channel interface
Example Embedded Activity Config
{ "activity_preview_video_asset_id": "1104184163201990836", "supported_platforms": ["web", "ios", "android"], "default_orientation_lock_state": 2, "tablet_default_orientation_lock_state": 1, "requires_age_gate": false, "legacy_responsive_aspect_ratio": false, "premium_tier_requirement": null, "free_period_starts_at": null, "free_period_ends_at": null, "client_platform_config": { "android": { "label_type": 0, "label_until": null, "release_phase": "global_launch", "omit_badge_from_surfaces": [] }, "ios": { "label_type": 0, "label_until": null, "release_phase": "global_launch", "omit_badge_from_surfaces": [] }, "web": { "label_type": 0, "label_until": null, "release_phase": "global_launch", "omit_badge_from_surfaces": [] } }, "shelf_rank": 3, "has_csp_exception": false, "displays_advertisements": false, "application_id": "880218394199220334"}
1
ONE
Unknown
2
TWO
Unknown
{ "id": "1131721726514954381", "type": 1, "name": "alien"}
The role connection object that an application has attached to a user.
Application Role Connection Structure
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_metadata?
array[application role connection metadata object]
The metadata that the application has set for the role connection
A representation of role connection metadata for an application.
When a guild has added an application integration and that integration has configured its, 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, the integration will update a user's role connection with metadata using the OAuth2 scope.
Application Role Connection Metadata Structure
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)
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_id
snowflake
The application ID
link_id 1
string
The link ID
asset_path? 2
string
The hash of the application quick link asset
asset_id? 2
snowflake
The ID of the application asset
title
string
The title of the activity link
description
string
The description of the activity link
custom_id?
?string
A custom ID for the activity link
primary_cta? (deprecated)
?string
The primary call to action for the activity link
1 The link ID is in the format where is the activity link type and is the snowflake ID.
2 is only present on quick links, while is only present on managed links.
0
MANAGED_LINK
Managed by the application and last indefinitely
1
QUICK_LINK
Made by the user and last for 30 days
{ "application_id": "891436233903964161", "link_id": "1-1385320255148003439", "asset_path": "74420086a1aee57564cd6fc9a28461b1", "title": "Alien", "description": "aliens", "primary_cta": null, "custom_id": "button"}
GET/applications
Returns a list of application objects that the current user has.
with_team_applications?
boolean
Whether to include applications that a team the user is a part of owns
GET/applications-with-assets
Returns a list of application objects that the current user has, additionally including the application's assets.
with_team_applications?
boolean
Whether to include applications that a team the user is a part of owns
{ "applications": [ { "id": "891436243903728565", "name": "Lightbulb", "icon": "546242649e3b09a97af7e8f29983837b", "description": "💡 Let there be light", "summary": "", "type": null, "is_monetized": false, "is_verified": false, "is_discoverable": false, "cover_image": "75bc61df60fc74c46b32fde3532f662b", "deeplink_uri": "https://google.com/search?q=lightbulbs+near+me", "hook": true, "guild_id": "1029315212005888060", "storefront_available": false, "bot_public": true, "bot_require_code_grant": false, "terms_of_service_url": "https://google.com/search?q=lightbulbs+near+me", "privacy_policy_url": "https://google.com/search?q=lightbulbs+near+me", "integration_types_config": { "0": {}, "1": {} }, "verify_key": "852634a9ed80c0c5ac81e3c46d4b10a05400cb71898ea0484e7b63ac3a27096a", "owner": { "id": "1110738998453837384", "username": "team1110738998453837384", "global_name": null, "avatar": null, "avatar_decoration_data": null, "discriminator": "0000", "public_flags": 1024, "primary_guild": null, "flags": 1024 }, "flags": 27959296, "redirect_uris": ["http://localhost:5000/callback"], "rpc_application_state": 0, "store_application_state": 1, "verification_state": 1, "interactions_endpoint_url": null, "interactions_event_types": [], "interactions_version": 1, "integration_public": true, "integration_require_code_grant": false, "explicit_content_filter": 1, "discoverability_state": 1, "discovery_eligibility_flags": 36830, "monetization_state": 1, "role_connections_verification_url": "https://google.com/search?q=lightbulbs+near+me", "internal_guild_restriction": 1, "bot": { "id": "891436243903728565", "username": "Lightbulb", "global_name": null, "avatar": "546242649e3b09a97af7e8f29983837b", "avatar_decoration_data": null, "discriminator": "5312", "public_flags": 0, "primary_guild": null, "bot": true }, "approximate_guild_count": 100, "approximate_user_install_count": 1000, "max_participants": -1, "embedded_activity_config": { "activity_preview_video_asset_id": "1131721726514954381", "supported_platforms": ["web", "android", "ios"], "default_orientation_lock_state": 1, "tablet_default_orientation_lock_state": 1, "requires_age_gate": false, "legacy_responsive_aspect_ratio": false, "premium_tier_requirement": null, "free_period_starts_at": null, "free_period_ends_at": null, "client_platform_config": { "web": { "label_type": 0, "label_until": null, "release_phase": "in_development" }, "android": { "label_type": 0, "label_until": null, "release_phase": "in_development" }, "ios": { "label_type": 0, "label_until": null, "release_phase": "in_development" } }, "shelf_rank": 2147483647, "has_csp_exception": false, "displays_advertisements": false }, "tags": ["", "100W", "EnergyStar", "LED"] } ], "assets": { "891436243903728565": [ { "id": "1223782285833273507", "type": 1, "name": "embedded_background" }, { "id": "1223782287091564634", "type": 1, "name": "embedded_cover" } ] }}
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.
name
string
The name of the application
description?
?string
The description of the application
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)
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/applications/@me
Returns the application object associated with the requestor.
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.
name?
string
The name of the application
description?
?string
The description of the application
flags?
integer
The application's flags (only PUBLIC_OAUTH2_CLIENT
, 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)
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_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[integer, ?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.
PATCH/applications/@me
Modifies the requestor's application information. Returns the updated application object on success.
description?
?string
The description of the application
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
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_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[integer, ?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)
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.
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.
team_id
snowflake
The ID of the team to transfer ownership to
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.
secret
string
The client secret key of the application
{ "secret": "937it3ow87i4ery69876wqire"}
GET/oauth2/applications/{application.id}/allowlist
Returns a list of whitelisted user objects representing the invited testers for the given application ID. User must be the owner of the application or member of the current team.
1
INVITED
The user has been invited to the application but has not yet accepted
2
ACCEPTED
The user has accepted the invitation to the application and is whitelisted
POST/oauth2/applications/{application.id}/allowlist
Adds a user to the application's list of testers. User must be the owner of the application or developer of the current team. Returns a whitelisted user object on success.
username
string
The username of the user to add
discriminator? 1
?string
The discriminator of the user to add
1 Not applicable for migrated users. See the section on Discord's new username system for more information.
POST/oauth2/allowlist/accept
Accepts an application tester invitation received via email. Invited users will receive an email with a link that redirects to the official Discord client with a verification token present in the URL's query (e.g. ). Returns a 204 empty response on success.
token
string
The verification token from the URL
DELETE/oauth2/applications/{application.id}/allowlist/{user.id}
Removes a user from the application's list of testers. User must be the owner of the application or developer of the current team. Returns a 204 empty response on success.
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.
token
?string
The token of the bot, if a bot was newly created
{ "token": "NzIyNDUwMzAzOTE5NTg3NDA5.GRj2Bt.cPbrvvjxglZXK4dTcIPDMvfq0LxJcilsIYW01A"}
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.
username?
string
The user's username (2-32 characters)
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.
token
string
The token of the bot
POST/applications/{application.id}/request-additional-intents
Submits a request for Gateway intents for a verified bot. User must be the owner of the application or developer of the current team. Returns a 204 empty response on success.
application_description
string
The description of the application (50-2000 characters)
intents_flags_requested?
integer
The application flags representing the requested Gateway intents (only GATEWAY_PRESENCE
, GATEWAY_GUILD_MEMBERS
, and GATEWAY_MESSAGE_CONTENT
are supported)
intents_gateway_presence_use_case_description? 1
?string
The use case for requesting the presence intent (50-2000 characters)
intents_gateway_presence_use_case_supplemental_material_description? 1
?string
The supplemental material for the requested Gateway presence intent (5-2000 characters)
intents_gateway_presence_store_off_platform? 1
?boolean
Whether the application stores presence data off-platform
intents_gateway_presence_retention?
?boolean
Whether the application retains presence data for 30 days or less
intents_gateway_presence_encrypted?
?boolean
Whether the application encrypts stored presence data at rest
intents_gateway_presence_opt_out_stored?
?boolean
Whether application users can opt out of having their presence data stored
intents_gateway_presence_contact_deletion? 1
?string
How application users can request the deletion of their presence data (25-2000 characters)
intents_gateway_guild_members_use_case_description? 1
?string
The use case for requesting the guild members intent (50-2000 characters)
intents_gateway_guild_members_use_case_supplemental_material_description? 1
?string
The supplemental material for the requested Gateway guild members intent (5-2000 characters)
intents_gateway_guild_members_store_off_platform? 1
?boolean
Whether the application stores guild member data off-platform
intents_gateway_guild_members_retention?
?boolean
Whether the application retains guild member datafor 30 days or less
intents_gateway_guild_members_encrypted?
?boolean
Whether the application encrypts stored guild member data at rest
intents_gateway_guild_members_contact_deletion?
?string
How application users can request the deletion of their guild member data (25-2000 characters)
intents_gateway_message_content_use_case_description? 1
?string
The use case for requesting the message content intent (50-2000 characters)
intents_gateway_message_content_use_case_supplemental_material_description? 1
?string
The supplemental material for the requested Gateway message content intent (5-2000 characters)
intents_gateway_message_content_store_off_platform? 1
?boolean
Whether the application stores message content data off-platform
intents_gateway_message_content_retention?
?boolean
Whether the application retains message content data for 30 days or less
intents_gateway_message_content_encrypted?
?boolean
Whether the application encrypts stored message content data at rest
intents_gateway_message_content_opt_out_stored?
?boolean
Whether application users can opt out of having their message content data stored
intents_gateway_message_content_ai_training?
?boolean
Whether the application uses message content data for AI training
intents_gateway_message_content_privacy_policy_public?
?boolean
Whether the application has a public privacy policy detailing how message content data is used
intents_gateway_message_content_privacy_policy_location?
?string
Where the application's privacy policy can be found (25-2000 characters)
intents_gateway_message_content_privacy_policy_example?
?string
A link to or screenshots of the application's privacy policy (25-2000 characters)
intents_gateway_message_content_contact_deletion?
?string
How application users can request the deletion of their message content data (25-2000 characters)
1 Required if the corresponding intent is requested.
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.
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
GET/activities/{application.id}/test-mode
Queries whether the user can use test mode for the application. Test mode allows completing purchases without payment. User must be the owner of the application or developer of the current team. Returns a 204 empty response on success.
GET/activities/shelf
Returns the embedded activities available globally or in a particular guild.
guild_id?
snowflake
The ID to return embedded activities for
applications
array[partial application object]
Applications representing the available embedded activities
POST/applications/{application.id}/set-embedded
Modifies whether the application is an embedded activity or not (determined by the flag). User must be the owner of the application or developer of the current team. Returns a 204 empty response on success.
embedded
boolean
Whether the application is embedded
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.
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.
activity_preview_video_asset_id?
?snowflake
The ID of the application asset to preview the activity with
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/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.
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 field.
Parameter matching is supported in both the and fields. For example, you can map to .
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 and , you must place the URL before or else the mapping for will never be reached.
GET/oauth2/applications/{application.id}/assets
Returns a list of application assets for the given application ID.
nocache?
boolean
Whether to bypass the Cloudflare cache for the response (default false)
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.
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.
POST/applications/{application.id}/external-assets
Proxies a list of URLs for the given application ID. Returns a list of external asset objects on success.
urls
array[string]
The URLs of the assets to proxy (max 256 characters, 1-2)
url
string
The URL of the asset
external_asset_path
string
The path to the asset on the media proxy (https://media.discordapp.net/
)
[ { "url": "https://google.com/favicon.ico", "external_asset_path": "external/OCZzr1eoglei1yFsfSMClt6B95EI9W-dOhq7fbnn5aY/https/google.com/favicon.ico" }]
POST/applications/{application.id}/attachment
Uploads an ephemeral attachment to the application. Must be a body. Requires the application flag.
file
file contents
The image file to upload, must be a JPEG, PNG, or GIF file
GET/applications/detectable
Returns a list of detectable application objects representing games that can be detected by Discord for rich presence.
Detectable Application Structure
id
snowflake
The ID of the application
name
string
The name of the application
aliases
array[string]
Other names the application's game is associated with
themes
array[string]
The themes of the application's game
hook
boolean
Whether the Discord client is allowed to hook into the application's game directly
overlay_warn
boolean
Whether the Discord overlay is known to be problematic with this application's game (default false)
overlay_compatibility_hook
boolean
Whether to use the compatibility hook for the overlay (default false)
Example Detectable Application
{ "aliases": ["PUBG: BATTLEGROUNDS", "PUBG"], "executables": [ { "is_launcher": false, "name": "win64/tslgame_be.exe", "os": "win32" }, { "is_launcher": false, "name": "win64/tslgame.exe", "os": "win32" }, { "is_launcher": false, "name": "tslgame.exe", "os": "win32" }, { "is_launcher": false, "name": "win64/tslgame_uc.exe", "os": "win32" }, { "is_launcher": false, "name": "tslgame_be.exe", "os": "win32" } ], "hook": true, "id": "356873622985506820", "name": "PLAYERUNKNOWN'S BATTLEGROUNDS", "overlay": true, "overlay_compatibility_hook": true, "overlay_methods": null, "overlay_warn": false, "themes": ["Action", "Warfare"]}
GET/applications/public
Returns a list of partial application objects for the given IDs.
application_ids
array[snowflake]
The IDs of the applications to fetch; unknown IDs are ignored
GET/applications/{application.id}/public
Returns a partial application object for the given ID with all public application fields.
with_guild?
boolean
Whether to include the guild object in the response if the guild is discoverable (default false)
GET/applications/{application.id}/rpc
Returns a partial application object for the given ID with rich presence-related fields.
GET/applications/{application.id}/disclosures
Returns an object representing additional safety disclosures for the application.
all_acked
boolean
Whether all disclosures have been acknowledged by the user
0
UNSPECIFIED_DISCLOSURE
Unspecified disclosure
1
IP_LOCATION
Application may access the user's IP address
2
DISPLAYS_ADVERTISEMENTS
Application may display advertisements
3
PARTNER_SDK_DATA_SHARING_MESSAGE
Application's game uses the social layer SDK's messaging features, which surface in-game messages on Discord
{ "disclosures": [1, 2], "acked_disclosures": [1, 2], "all_acked": true}
POST/applications/{application.id}/disclosures
Acknowledges a list of disclosures for the application.
GET/guilds/{guild.id}/applications
Returns a list of application objects attached to the given guild ID. Requires the permission.
include_team? 1
boolean
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.
POST/unverified-applications
Reports a game not detected and tracked to Discord. Returns an unverified application object on success.
report_version?
integer
The version of the report (currently 3)
name
string
The name of the application (2-100 characters)
icon
string
The MD5 hash of the application's icon (32 characters)
executable?
string
The executable of the application (max 1024 characters)
publisher?
string
The publisher of the application (2-100 characters)
Application Distributor Structure
sku?
string
The SKU of the application (max 256 characters)
win32
Windows
darwin
macOS
linux
Linux
name
string
The name of the application
hash
string
The unique hash of the application
icon
The application's icon hash is not found and should be uploaded using the Upload Unverified Application Icon endpoint
{ "name": "Alien Simulator", "hash": "0312ce2c94e1fa8257fefbade4587fb3", "missing_data": ["icon"]}
POST/unverified-applications/icons
Uploads an unverified application's icon to Discord. Returns a 204 empty response on success.
application_name
string
The name of the application
application_hash
string
The unique hash of the application
GET/users/@me/applications/role-connections
Returns a list of application role connection objects for the user.
GET/users/@me/applications/{application.id}/role-connection
Returns an application role connection object for the user, without optional fields.
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.
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
GET/applications/{application.id}/managed-links/
Returns a list of activity link objects for the given application ID. User must be the owner of the application or developer of the current team.
POST/applications/{application.id}/managed-links/
Creates a new activity managed link. User must be the owner of the application or developer of the current team. Returns an activity link object on success.
custom_id?
?string
A custom id for the activity link (1-256 characters)
description
string
The description of the activity link (1-64 characters)
title
string
The title of the activity link (1-32 characters)
GET/applications/{application.id}/managed-links/{link_id}
Returns an activity link object for the given ID.
PATCH/applications/{application.id}/managed-links/{link_id}
Updates the specified activity link for the given application ID. User must be the owner of the application or developer of the current team. Returns an activity link object on success.
DELETE/applications/{application.id}/managed-links/{link_id}
Deletes the specified activity link for the given application ID. User must be the owner of the application or developer of the current team. Returns a 204 empty response on success.
POST/applications/{application.id}/quick-links/
Creates a new activity quick link. Returns an activity link object on success.
custom_id?
?string
A custom id for the activity link (1-256 characters)
description
string
The description of the activity link (1-64 characters)
title
string
The title of the activity link (1-32 characters)
GET/applications/{application.id}/quick-links/{link_id}
Returns an activity link object for the given ID.
GET/applications/{application.id}/verification
Checks if an application is eligible to apply for verification. Returns an empty 204 response on success.
POST/applications/{application.id}/auto-verification
Verifies an application and allows it to scale past 100 servers. Returns a 204 empty response on success. User must be the owner of the current team. The application must meet the following criteria to be eligible for verification:
It must belong to a team
It must not contain any harmful or bad language in its name, description, commands or role connection metadata
It must have links to its Terms of Service and Privacy Policy
It must have an install link
All its team members must have a verified email and MFA set up, with the team owner additionally having to undergo identity verification