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

You can use the app query to retrieve app data via the API.

  • Returns an object containing metadata about an app
  • Can be queried directly at the root level 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

You can use the following argument to reduce the number of results returned in your app query.

ArgumentDescription
id ID!The app's unique identifier.

Fields

You can use the following fields to specify what information your app query will return. Some fields support their own subfields.

FieldDescriptionEnum ValuesSupported Subfields
account_id IDThe app's account ID. Only available in API versions 2025-10 and later.
api_app_id IDThe app's unique API consumer identifier.
client_id StringThe app's unique API consumer identifier.
collaborators [User!]The app's collaborators. Only available in API versions 2025-10 and later.
created_at DateThe app's creation date.
created_by IDThe unique identifier of the user who created the app. Only available in API versions 2025-10 and later.
description StringThe app's description. Only available in API versions 2025-10 and later.
features [AppFeatureType!]The app's features. app_id ID
created_at Date
data JSON
id ID!
name String
type String
updated_at Date
id ID!The app's unique identifier.
kind StringThe app's kind.
name StringThe app's name.
permissions [String!]The app's permissions. Only available in API versions 2025-10 and later.
photo_url StringThe URL of the app's photo.
photo_url_small StringThe URL of the app's photo in a small size.
slug StringThe app's slug. Only available in API versions 2025-10 and later.
state StringThe app's state (active/inactive).
status AppStatusThe app's status. Only available in API versions 2025-10 and later.DRAFT
LIVE
updated_at DateThe date the app was last updated.
user_id IDThe unique identifier of the user who created the app.
version_type StringThe app's latest version type.
webhook_url StringThe app's webhook endpoint URL. Only available in API versions 2025-10 and later.

Mutations

You can create and update apps via the API using the following mutations.

🚧 These mutations are only available in API versions 2025-10 and later

Create app

The create_app mutation creates a new app via the API. You can specify which fields to return from the new app in the mutation response.

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

You can use the following arguments to define the new app's characteristics.

ArgumentDescriptionSupported Fields
input CreateAppInput!An object containing the new app's configuration data.collaborators [ID!]
description String
kind AppKind
name String!
permissions [String!]
slug String
webhook_url String

Update app

The update_app mutation allows an app collaborator to update an app via the API. You can specify which fields to return from the updated app in the mutation response.

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

Arguments

You can use the following arguments to define the app's updated characteristics.

ArgumentDescriptionSupported Fields
id ID!The unique identifier of the app to update.
input UpdateAppInput!An object containing the updated app's configuration data.collaborators [ID!]
description String
kind AppKind
name String!
permissions [String!]
slug String
webhook_url String