app_requested event | Slack Developer Docs
reference
Skip to main content
Guides Reference Samples Tools
Changelog Dev Program
MANAGE APPS
* Reference
* App manifest
* Block Kit
* Events
* Overview
* accounts_changed
* agent_session_stopped
* agent_session_title_changed
* app_context_changed
* app_deleted
* app_home_opened
* app_installed
* app_mention
* app_rate_limited
* app_requested
* app_uninstalled_team
* app_uninstalled
* assistant_thread_context_changed
* assistant_thread_started
* bot_added
* bot_changed
* call_rejected
* channel_archive
* channel_created
* channel_deleted
* channel_history_changed
* channel_id_changed
* channel_joined
* channel_left
* channel_marked
* channel_rename
* channel_shared
* channel_unarchive
* channel_unshared
* commands_changed
* dnd_updated_user
* dnd_updated
* email_domain_changed
* emoji_changed
* entity_comments_requested
* entity_details_requested
* external_org_migration_finished
* external_org_migration_started
* file_change
* file_comment_deleted
* file_created
* file_deleted
* file_public
* file_shared
* file_unshared
* function_executed
* goodbye
* grid_migration_finished
* grid_migration_started
* group_archive
* group_close
* group_deleted
* group_history_changed
* group_joined
* group_left
* group_marked
* group_open
* group_rename
* group_unarchive
* hello
* im_close
* im_created
* im_history_changed
* im_marked
* im_open
* invite_requested
* link_shared
* manual_presence_change
* member_joined_channel
* member_left_channel
* message
* message_metadata_deleted
* message_metadata_posted
* message_metadata_updated
* message.app_home
* message.channels
* message.groups
* message.im
* message.mpim
* pin_added
* pin_removed
* pref_change
* presence_change
* presence_query
* presence_sub
* reaction_added
* reaction_removed
* reconnect_url
* shared_channel_invite_accepted
* shared_channel_invite_approved
* shared_channel_invite_declined
* shared_channel_invite_received
* shared_channel_invite_requested
* star_added
* star_removed
* subteam_created
* subteam_members_changed
* subteam_self_added
* subteam_self_removed
* subteam_updated
* team_access_granted
* team_access_revoked
* team_domain_change
* team_join
* team_migration_started
* team_plan_change
* team_pref_change
* team_profile_change
* team_profile_delete
* team_profile_reorder
* team_rename
* tokens_revoked
* url_verification
* user_change
* user_connection
* user_huddle_changed
* user_profile_changed
* user_status_changed
* user_typing
* Interaction payloads
* Methods
* Objects
* Scopes
* Types
* Slack Connect API
* Views
*
* Audit Logs API
* Legal Holds API
* SCIM API
*
* Slack Status API
*
* Events
* app_requested Copy as markdown
On this page
app_requested event
User requested an app
Facts
Required Scopes No scopes required!
Compatible APIs Events
Usage info
This example includes both the event wrapper and the event structure for the app_requested event. {
"token" : "XXYYZZ" ,
"team_id" : "T123ABC456" ,
"api_app_id" : "A123ABC456" ,
"event" : {
"type" : "app_requested" ,
"app_request" : {
"id" : "1234" ,
"app" : {
"id" : "A5678" ,
"name" : "Brent's app" ,
"description" : "They're good apps, Bront." ,
"help_url" : "brontsapp.com" ,
"privacy_policy_url" : "brontsapp.com" ,
"app_homepage_url" : "brontsapp.com" ,
"app_directory_url" : "https://slack.slack.com/apps/A102ARD7Y" ,
"is_granular_bot_app" : true ,
"is_app_directory_approved" : true ,
"is_internal" : false ,
"additional_info" : "none"
} ,
"previous_resolution" : {
"status" : "approved" ,
"scopes" : [
{
"name" : "app_requested" ,
"description" : "allows this app to listen for app install requests" ,
"is_sensitive" : false ,
"token_type" : "user" ,
"is_optional" : true ,
"is_approved" : false
}
]
} ,
"user" : {
"id" : "U1234" ,
"name" : "Bront" ,
"email" : "
[email protected]"
} ,
"team" : {
"id" : "T1234" ,
"name" : "Brant App Team" ,
"domain" : "brantappteam"
} ,
"enterprise" : null ,
"scopes" : [
{
"name" : "app_requested" ,
"description" : "allows this app to listen for app install requests" ,
"is_sensitive" : false ,
"token_type" : "user" ,
"is_optional" : true ,
"is_approved" : false
}
] ,
"message" : "none" ,
"manager_app_id" : "A12345678"
}
} ,
"type" : "event_callback" ,
"authorizations" : [
{
"team_id" : "T123ABC456" ,
"user_id" : "U123ABC456" ,
"is_bot" : false ,
"is_enterprise_install" : false ,
}
] ,
"event_id" : "Ev123ABC456" ,
"event_time" : 123456789
}
The app_requested event payload contains info about an app that a user on a team has requested to install. Field Description app Info on the app that the user has requested. Nested inside the app field, the help_url , privacy_policy_url , app_homepage_url , and app_directory_url fields contain links to more info. previous_resolution Indicates whether the app was previously approved or restricted in this org. If the app installation has not been requested before, previous_resolution won't appear in the payload. user User ID of the user requesting the install. team Team ID of of the team that the app will be approved for. If null , then the approval request is for the whole enterprise. enterprise If not null , conveys that the approval is for whole enterprise. scopes The scopes that the app requests. message An optional message from the app. manager_app_id App ID of the manager app if the requested app being installed was provisioned by one.
Previous
app_rate_limited
Next
app_uninstalled_team
Copy as markdown
* Usage info
.
*
Tools
* Slack CLI
* Bolt frameworks
* Slack SDKs
* Block Kit Builder
* Developer program
* Code samples & tutorials
* LLM? Read llms.txt
* All tools
Learn
* Learning paths
* Workshops
* Slack certifications
* Trailhead
* Resource library
* All learning resources
Community
* Slack community
* Slack events
Resources
* Docs
* Blog
* Slack marketplace
* Developer newsletter
Manage Apps
* Your apps
* Status
* Privacy
* Terms
* Cookie Preferences
* Support
* Changelog
* Your Privacy Choices
© 2026 Slack Technologies, LLC, a Salesforce company. All rights reserved. Various trademarks held by their respective owners.
*
*
*