Skip to main content
Applications (or “apps”) are containers for developer platform features, and can be installed to Discord servers and/or user accounts.

Application Object

Application Structure
Example Application Object
Application Integration Types
Where an app can be installed, also called its supported installation contexts.
Application Integration Type Configuration Object
Application Event Webhook Status
Status indicating whether event webhooks are enabled or disabled for an application.
Application Flags

Install Params Object

Install Params Structure

Installation Context

An app’s installation context defines how it’s installed: to a server, to a user, or both. The installation context affects how your app can be seen and used within Discord. For example, apps installed only to a user can’t take actions in a server, and apps installed only to a server can’t be accessed within a user’s DMs.

Server Context

Apps installed in a server context (server-installed apps) must be authorized by a server member with the MANAGE_GUILD permission. Server-installed apps are visible to all members of the server, but other factors (like command permissions) determine where and when specific members can interact with the app. During installation, server-installed apps are authorized with a specific set of OAuth2 scopes and bot user permissions that determine what resources and data the app can access in that server.

User Context

Apps installed in a user context (user-installed apps) are visible only to the authorizing user, and therefore don’t require any server-specific permissions. Apps that support the user installation context are visible across all of an authorizing user’s servers, DMs, and GDMs, but are forced to respect the user’s permissions in the surface where the app is being used. For example, if a user invokes a command for a user-installed app from a server’s channel where they don’t have permission to send messages, the app won’t be able to respond to an interaction with a non-ephemeral message. Details about how the installation context of a command affects interactions is in the interaction context documentation.

Setting Supported Installation Contexts

By default, newly-created apps only support installation to guilds. You can update which installation contexts your app supports in your app’s settings. On the Installation page under the Installation Contexts section, you can select the installation contexts your app supports.
If you update your app to support a new installation context, you will need to update your existing commands if you want them to be supported in the new context. Details are in the Application Command documentation.
Install links provide an easy way for users to install your app in Discord. If you have an install link configured, an “Add App” button will appear in your app’s profile and App Directory page which will guide the user through your app’s installation flow. There are three options when configuring an install link for your app: “Discord Provided Link”, “Custom URL”, and “None”. If you don’t configure an install link (by selecting “None”), the “Add App” button will not appear for your app, and your app will not be eligible for the App Directory.
Note that install links are distinct from OAuth2 flows like the authorization code grant, which may additionally be required if you need to request user-specific scopes like identify or role_connections.write.
The default Discord Provided Link is a short link that guides users through the installation flow with your app’s configured installation contexts. If your app has both User Install and Guild Install enabled, the user can choose which way to install your app. Discord Provided Links don’t have scopes or bot user permissions defined in the URL. For example:
Instead, these links will prompt the user for the scopes and bot user permissions configured in your Default Install Settings.
Discord Provided Links are limited to the application.commands and bot scopes

Custom URL

A Custom URL is an alternative to the Discord Provided Link that gives you more control of where users are directed when they click “Add App” on your app’s profile or App Directory page. A Custom URL doesn’t have strict limitations, but is commonly an OAuth2 /authorize URL that has defined scopes, permissions, and an installation context (integration_type). You can configure your app’s install link in your app’s settings. On the Installation page, go to the Install Link section, and select which type of install link you want for your app. For most apps, we recommend the Discord Provided Link. The Default Install Settings will appear on the Installation page when you have “Discord Provided Link” selected as your install link type.

Get Current Application

Returns the application object associated with the requesting bot user.

Edit Current Application

Edit properties of the app associated with the requesting bot user. Only properties that are passed will be updated. Returns the updated application object on success.
All parameters to this endpoint are optional.
JSON Params
* Only limited intent flags (GATEWAY_PRESENCE_LIMITED, GATEWAY_GUILD_MEMBERS_LIMITED, and GATEWAY_MESSAGE_CONTENT_LIMITED) can be updated via the API. ** To update an Interactions endpoint URL via the API, the URL must be valid according to the Receiving an Interaction documentation.

Get Application Activity Instance

Returns a serialized activity instance, if it exists. Useful for preventing unwanted activity sessions.
Example Activity Instance
Activity Instance Object
Activity Location Object
The Activity Location is an object that describes the location in which an activity instance is running.
Activity Location Kind Enum