App

Learn how to query apps built with the monday.com apps framework

Using the apps framework, you can build apps on top of the monday.com platform. These apps extend the platform's core functionality by bridging gaps and enabling you to customize your workflows.

Apps can be shared directly with select accounts, listed in the app marketplace for all monday.com users, or kept private within the account. They are created and managed in the Developer Center.

Queries

Get app

  • Returns an object containing metadata about an app
  • Can be queried directly at the root or nested within a daily_analytics query
query {
  platform_api {
    daily_analytics {
      by_app {
        app {
          name
          features {
            type
            name
          }
          id
          api_app_id
          state
        }
        usage
      }
    }
  }
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });

const query = `query ($appId: ID!) { app (id: $appId) { features { id type } } }`;
const variables = {
  appId: 1234567890,
};
const response = await mondayApiClient.request(query, variables);

Arguments

ArgumentTypeDescription
idID!The app's unique identifier.

Fields

FieldTypeDescriptionEnum Values
account_idIDThe app's account ID.
api_app_idIDThe app's unique API consumer identifier.
client_idStringThe app's unique API consumer identifier.
collaborators[User!]The app's collaborators.
created_atDateThe app's creation date.
created_byIDThe unique identifier of the user who created the app.
descriptionStringThe app's description.
features[AppFeatureType!]The app's features.
idID!The app's unique identifier.
kindStringThe app's kind.
nameStringThe app's name.
permissions[String!]The app's permissions.
photo_urlStringThe URL of the app's photo.
photo_url_smallStringThe URL of the app's photo in a small size.
slugStringThe app's slug.
stateStringThe app's state (active/inactive).
statusAppStatusThe app's status.DRAFT
LIVE
updated_atDateThe date the app was last updated.
user_idIDThe unique identifier of the user who created the app.
version_typeStringThe app's latest version type.
versions[DeveloperAppVersion!]The app's versions. Useful for polling the status of a version being promoted. Only available in versions 2026-10 and later.
webhook_urlStringThe app's webhook endpoint URL.

Mutations

Create app

Creates a new app. Returns App.

mutation {
  create_app(
    input: {
      collaborators: [54321, 12345],
      description: "The updated app description.",
      name: "The updated app name.",
      kind: PUBLIC,
      permissions: ["docs:write", "me:read"]
    }
  ) {
    description
    name
    kind
    permissions
    collaborators {
      id
    }
  }
}

Arguments

ArgumentTypeDescription
inputCreateAppInput!An object containing the new app's configuration data.

Update app

Updates an app. Returns App.

🚧 Only works for app collaborators

mutation {
  update_app(
    id: 123456,
    input: {
      collaborators: [54321, 12345],
      description: "The updated app description.",
      name: "The updated app name."
    }
  ) {
    description
    name
    collaborators {
      id
    }
  }
}	

Arguments

ArgumentTypeDescription
idID!The unique identifier of the app to update.
inputUpdateAppInput!An object containing the updated app's configuration data.

Promote app

🚧

Only available in API versions 2026-10 and later

Initiates promotion of a draft app version to live. This is an asynchronous operation — promotion may take several seconds to complete. Returns a DeveloperAppVersion object that you can use to poll the promotion status.

To track when promotion is complete, poll the app query and check versions[].status until it changes from PROMOTING to LIVE.

📘

NOTE

Only app collaborators can run this mutation.

mutation {
  promote_app(
    app_id: "1234567890"
  ) {
    id
    status
  }
}
# Poll app versions after promoting
query {
  app(id: "1234567890") {
    id
    name
    versions {
      id
      status
    }
  }
}

Arguments

ArgumentTypeDescription
app_idID!The unique identifier of the app to promote.
app_version_idIDThe ID of the specific draft version to promote. If omitted, the latest draft version is promoted.