User requested an app


Required scopes

Works with

Events API
  "type": "app_requested",
      "id": "1234",
      "app": {
        "id": "A5678",
        "name": "Brent's app",
        "description": "They're good apps, Bront.",
        "help_url": "",
        "privacy_policy_url": "",
        "app_homepage_url": "",
        "app_directory_url": "",
        "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",
        "id": "U1234",
        "name": "Bront",
        "email": ""
      "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"
      "message": "none"

The app_requested event payload contains info about an app that a user on a team has requested to install.

  1. The app field gives 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 information on the app.
  2. The previous_resolution field 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.
  3. The user field gives info on the user requesting the install.
  4. The team field gives info on the team that the app will be approved for. If null, then the approval request is for the whole enterprise.
  5. The enterprise field if not null conveys that the approval is for whole enterprise.
  6. The scopes field gives info on the scopes that the app requests.
  7. The message field may contain an optional message from the app.

When an event occurs, we will send an HTTP POST request to your Request URL. The outer payload is uniform across all Events API methods, and contains fields like team_id and event. Learn more