schema { query: Query mutation: Mutation } "Root query type for the Dependencies service" type Query { """ Retrieve audit logs for your Monday account. You can filter logs by event types, user ID, IP address and start and end date. Here is an example audit log query: query { audit_logs( user_id: "1234567890" events: ["login", "logout"] ip_address: "123.123.123.123" start_time: "2021-01-01T00:00:00Z" end_time: "2021-01-01T23:59:59Z" limit: 100 page: 1 ) { logs { timestamp event ip_address user { id name email } activity_metadata } pagination { page page_size has_more_pages next_page_number } } } To get the list of all possible event types, you should use the audit_event_catalogue query like this: query { audit_event_catalogue { name description metadata_details } } """ audit_logs( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1, """ Filter logs by this user ID (which appears as an integer value). If you have an email address, you can get the user ID by looking up the user's email address through the Users API. """ user_id: ID, """ Filter logs by specific event types. Returns logs that match any of the event types in the provided list. """ events: [String!], "Filter logs that have this IP address" ip_address: String, """ Filter for logs from this date and time onwards. Timestamps must be in ISO 8601 format and are in the UTC timezone. """ start_time: ISO8601DateTime, """ Filter for logs up to this date and time. Timestamps must be in ISO 8601 format and are in the UTC timezone. """ end_time: ISO8601DateTime): AuditLogPage """ Lists all the audit event types that can be logged and information about them. Example query: query { audit_event_catalogue { name description metadata_details } } """ audit_event_catalogue: [AuditEventCatalogueEntry!] "Returns connections for the authenticated user. Supports filtering, pagination, ordering, and partial-scope options." connections( "Include connections that have automations attached." withAutomations: Boolean, "Filter connections by their state (e.g., active, inactive)." connectionState: String, "Validate connection state before returning the result." withStateValidation: Boolean, "Page index for offset-based pagination (starting from 1)." page: Int, "Number of records to return per page when using offset-based pagination." pageSize: Int, """ Ordering of returned connections (e.g., "createdAt", "-createdAt"). """ order: String, "Include connections created with partial scopes." withPartialScopes: Boolean, """ Cursor-based pagination parameters: specify "limit" and optionally "lastId". """ pagination: PaginationInput): [Connection!] "Returns connections that belong to the authenticated user." user_connections( "Include connections that have automations attached." withAutomations: Boolean, "Validate connection state before returning the result." withStateValidation: Boolean, "Page index for offset-based pagination (starting from 1)." page: Int, "Number of records to return per page when using offset-based pagination." pageSize: Int, """ Ordering of returned connections (e.g., "createdAt", "-createdAt"). """ order: String, """ Cursor-based pagination parameters: specify "limit" and optionally "lastId". """ pagination: PaginationInput): [Connection!] "Returns all connections for the account. Requires admin privileges." account_connections( "Include connections that have automations attached." withAutomations: Boolean, "Validate connection state before returning the result." withStateValidation: Boolean, "Page index for offset-based pagination (starting from 1)." page: Int, "Number of records to return per page when using offset-based pagination." pageSize: Int, """ Ordering of returned connections (e.g., "createdAt", "-createdAt"). """ order: String, """ Cursor-based pagination parameters: specify "limit" and optionally "lastId". """ pagination: PaginationInput): [Connection!] "Fetch a single connection by its unique ID." connection( "Unique identifier of the connection." id: Int!): Connection "Get board IDs that are linked to a specific connection." connection_board_ids( "Unique identifier of the connection." connectionId: Int!): [Int!] "List trigger events with optional filters" trigger_events(nextPageOffset: Int = 0, filters: TriggerEventsFiltersInput): TriggerEventsPage "Fetch a single trigger event by UUID" trigger_event(triggerUuid: String!): TriggerEvent "List block events for a given trigger UUID" block_events(triggerUuid: String!, nextPageOffset: Int = 0): BlockEventsPage "List tool events for a given trigger UUID" tool_events(trigger_uuid: String!, next_page_offset: Int = 0): ToolEventsPage "Get aggregated automation runs statistics in the account" account_trigger_statistics(filters: AccountTriggerStatisticsFiltersInput): AccountTriggerStatistics "Get aggregated automation runs statistics grouped by entity Ids" account_triggers_statistics_by_entity_id(run_status: TriggerEventState!, filters: AccountTriggersByEntityIdFiltersInput): AccountTriggersByEntityId """ Placeholder query field for automations-test microservice. This can be replaced with actual queries as the service evolves. """ empty: String """ Retrieves the JSON schema definition for a specific create view type. Use this query before calling create_view mutation to understand the structure and validation rules for the settings parameter. The schema defines what properties are available when creating views of a specific type. """ get_view_schema_by_type( """ Specifies which view type to retrieve the schema for. Valid values include "DASHBOARD", "TABLE", "FORM", "APP", etc. Each type has different available properties and validation rules. """ type: ViewKind!, """ Specifies the type of mutation to retrieve the schema for. Valid values include "create" or "update". """ mutationType: ViewMutationKind!): JSON updates( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1, "A list of updates unique identifiers." ids: [ID!], "Filter updates created from this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm)." from_date: String, "Filter updates created up to this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm)." to_date: String): [Update!] "Get a collection of replies filtered by board IDs and date range." replies( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1, "A list of board IDs to filter replies by." board_ids: [ID!]!, "Filter replies created from this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss)." created_at_from: String, "Filter replies created up to this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss)." created_at_to: String): [Reply!] custom_activity( "The ids of the custom activities to fetch" ids: [String!], "The name of the custom activity, case insensitive and partial match" name: String, "The icon of the custom activity" icon_id: CustomActivityIcon, "The color of the custom activity" color: CustomActivityColor): [CustomActivity!] timeline_item( "The id of the timeline item to delete" id: ID!): TimelineItem "Fetches timeline items for a given item" timeline( "The id of the item" id: ID!, "Whether to skip connected items" skipConnectedItems: Boolean): TimelineResponse "Get managed column data." managed_column( "The managed column ids." id: [String!], "The state of the managed column." state: [ManagedColumnState!]): [ManagedColumn!] "Retrieves the JSON schema definition for a specific column type. Use this query before calling update_column mutation to understand the structure and validation rules for the defaults parameter. The schema defines what properties are available when updating columns of a specific type." get_column_type_schema( """ Specifies which column type to retrieve the schema for. Valid values include "text", "status", "date", "numbers", etc. Each type has different available properties and validation rules. """ type: ColumnType!): JSON "Get validations configuration for a board" validations(id: ID!, "The type of entity for validations the default is board" type: ValidationsEntityType = board): Validations "Get account departments" departments( "Filter by department IDs" ids: [ID!]): [Department!] "Export the dependency graph for a specific board" export_graph( "The ID of the board to export the graph for" boardId: String!): BoardGraphExport "Fetch dependency column configuration for a board" dependency_column_config( "The ID of the board to fetch dependency columns from" board_id: ID!, "The account ID (needed for authentication)" account_id: ID!, "The user ID (needed for authentication)" user_id: ID!): DependencyColumnConfigResult "Export events for a board within a date range. Requires a valid X-Tool-Execution-Secret header." export_events( "Filter events by board ID" board_id: ID, "Filter events created after this date (ISO format)" start_date: String, "Filter events created before this date (ISO format)" end_date: String, "Filter events by state(s)" state: [String!], "Filter events by type(s)" type: [String!], "Maximum number of events to return (default: 100, max: 1000)" limit: Int, "Number of events to skip for pagination" offset: Int, "Field to order by (default: createdAt)" order_by: String, "Order direction: ASC or DESC (default: DESC)" order_direction: String): EventsExport "Retrieves blocks for the published version of a specific article if the requesting user has permission to access it. Returns paginated blocks in their position order. Will return an error if the user lacks the required permissions." article_blocks( "The unique identifier of the article object. Can be used to reference this specific object in queries and mutations. This ID can be found in the article's URL." object_id: ID!, "Maximum number of blocks to return per article. Defaults to 25." limit: Int = 25, "Page number for blocks pagination, starting from 1." page: Int = 1): [ArticleBlock]! "Retrieves a list of published articles with their metadata and content blocks that the requesting user has permission to access. Articles without proper permissions will be filtered out. By default, returns the first 25 blocks per article. To retrieve more blocks, use the article_blocks query." articles( "Array of article object IDs to fetch. These IDs can be found in the articles' URLs." object_ids: [ID!]!, "Optional array of workspace IDs to filter articles by." workspace_ids: [ID!], "Maximum number of articles to return. Defaults to 25." limit: Int = 25, "Page number, starting from 1." page: Int = 1): [Article]! "Retrieves the content diff between two versions of a document. Pass two restoring point dates (from doc_version_history) to see what blocks were added, deleted, or changed. Only blocks with changes are returned." doc_version_diff( "The ID of the document to get the diff for." doc_id: ID!, "The newer restoring point date (ISO 8601 string). Use a date from the doc_version_history restoring_points." date: String!, "The older restoring point date (ISO 8601 string). Use a date from the doc_version_history restoring_points." prev_date: String!): DocVersionDiff "Retrieves the version history of a document. Returns a list of restoring points (snapshots) with timestamps and the users who made changes. Snapshots are grouped in 5-minute intervals. Use the since and until arguments to filter the time range." doc_version_history( "The ID of the document to retrieve version history for." doc_id: ID!, "Optional ISO 8601 date string or timestamp to filter restoring points from. Only restoring points after this date will be returned." since: String, "Optional ISO 8601 date string or timestamp to filter restoring points until. Only restoring points before this date will be returned." until: String): DocVersionHistory "Converts document content into standard markdown format for external use, backup, or processing. Exports the entire document by default, or specific blocks if block IDs are provided. Use this to extract content for integration with other systems, create backups, generate reports, or process document content with external tools. The output is clean, portable markdown that preserves formatting and structure." export_markdown_from_doc( "The document's unique identifier to export. Get this from document queries or creation responses." docId: ID!, "Optional array of specific block IDs to export. If omitted, exports the entire document. Use when you only need specific sections." blockIds: [String!]): ExportMarkdownResult "Search knowledge base snippets." knowledge_base_search( "The search query." query: String!, "The maximum number of results to return." limit: Int = 5): KnowledgeBaseAnswer "Get all personal list items by list ID" favorites: [GraphqlHierarchyObjectItem!] marketplace_app_discounts( "The id of an app" app_id: ID!): [MarketplaceAppDiscount!]! app_subscriptions( "The ID of an app" app_id: ID!, status: SubscriptionStatus, "The ID of an account" account_id: Int, "The value, which identifies the exact point to continue fetching the subscriptions from" cursor: String, "The size of the requested page" limit: Int): AppSubscriptions! "Search for marketplace apps using vector similarity" marketplace_vector_search( "The input for the marketplace search, including the search query, limit, and offset" input: MarketplaceSearchInput!): MarketplaceSearchResults! "Search for marketplace apps using full-text search" marketplace_fulltext_search( "The input for the marketplace search, including the search query, limit, and offset" input: MarketplaceSearchInput!): MarketplaceSearchResults! "Search for marketplace apps using a combination of vector and full-text search" marketplace_hybrid_search( "The input for the marketplace search, including the search query, limit, and offset" input: MarketplaceSearchInput!): MarketplaceSearchResults! "Search for marketplace apps using AI" marketplace_ai_search( "The input for the marketplace search, including the search query, limit, and offset" input: MarketplaceAiSearchInput!): MarketplaceAiSearchResults! "Get an app by ID or slug." app( "The ID or slug of the app" id: ID!): AppType "Query the monday.com apps documentation using AI. Returns an AI-generated answer based on the documentation." ask_developer_docs( "The question to ask about monday.com apps documentation." query: String!): AppDocumentationAiResponse "Get lifecycle subscriptions for all entity types in a specific app version. If version_id is not provided, resolves the active version (user testing version, live, or latest)." get_app_lifecycle_subscriptions( "The app ID or slug" app_id: ID!, "Optional app version ID. If not provided, resolves the active version (user testing version, live, or latest)" version_id: ID): [LifecycleSubscriptionKind!] "Get the connected account's information." account: Account "Get a collection of installs of an app." app_installs( "The id of an account to filter app installs by." account_id: ID, "The id of an application." app_id: ID!, "Number of items to get, the default is 25. Max: 100" limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [AppInstall] "Get the current app subscription. Note: This query does not work in the playground" app_subscription: [AppSubscription] "Get operations counter current value" app_subscription_operations( "Operation name. A string of up to 14 characters containing alphanumeric characters and the symbols -_ " kind: String = "global"): AppSubscriptionOperationsCounter "Get apps monetization information for an account" apps_monetization_info: AppsMonetizationInfo "Get apps monetization status for an account" apps_monetization_status: AppMonetizationStatus "Get a collection of assets by ids." assets( "Ids of the assets/files you want to get" ids: [ID!]!): [Asset] "Get a collection of boards." boards( "The board's kind (public / private / share)" board_kind: BoardKind, "A list of hierarchy types" hierarchy_types: [BoardHierarchy!], "A list of boards unique identifiers." ids: [ID!], "Boolean that brings the latest data" latest: Boolean, "Number of items to get, the default is 25." limit: Int = 25, "Property to order by (created_at / used_at)." order_by: BoardsOrderBy, "Page number to get, starting at 1." page: Int = 1, "The state of the board (all / active / archived / deleted), the default is active." state: State = active, "A list of workspace ids the boards are contained in." workspace_ids: [ID]): [Board] "Get the complexity data of your queries." complexity: Complexity "Get a collection of docs." docs( "A list of document unique identifiers." ids: [ID!], "Number of items to get, the default is 25." limit: Int = 25, "A list of associated board or object’s unique identifier." object_ids: [ID!], "Property to order by (created_at / used_at)." order_by: DocsOrderBy, "Page number to get, starting at 1." page: Int = 1, "A list of workspace ids the documents are contained in." workspace_ids: [ID]): [Document] "Get a collection of folders. Note: This query won't return folders from closed workspaces to which you are not subscribed" folders( "A list of folders unique identifiers." ids: [ID!], "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1, "A list of workspace unique identifiers to filter folders by workspaces. (pass null to include Main Workspace)" workspace_ids: [ID]): [Folder] "Get a collection of items." items( "Excludes items that are inactive, deleted or belong to deleted items" exclude_nonactive: Boolean, "A list of items unique identifiers." ids: [ID!], "Number of items to get, the default is 25." limit: Int = 25, "Get the recently created items at the top of the list" newest_first: Boolean, "Page number to get, starting at 1." page: Int = 1): [Item] "Search items by multiple columns and values." items_page_by_column_values( "The board's unique identifier." board_id: ID!, "One or more columns, and their values to search items by." columns: [ItemsPageByColumnValuesQuery!], """ An opaque token representing the position in the result set from which to resume fetching items. Use this to paginate through large result sets. """ cursor: String, "The hierarchy config to use for the query filters." hierarchy_scope_config: String, """ The maximum number of items to fetch in a single request. Use this to control the size of the result set and manage pagination. Maximum: 500. """ limit: Int! = 25): ItemsResponse! "Get the connected user's information." me: User "Get next pages of board's items (rows) by cursor." next_items_page( """ An opaque token representing the position in the result set from which to resume fetching items. Use this to paginate through large result sets. """ cursor: String!, """ The maximum number of items to fetch in a single request. Use this to control the size of the result set and manage pagination. Maximum: 500. """ limit: Int! = 25): ItemsResponse! "Get a collection of tags." tags( "A list of tags unique identifiers." ids: [ID!]): [Tag] "Get a collection of teams." teams( "A list of teams unique identifiers." ids: [ID!]): [Team] "Get a collection of users." users( "A list of users' emails." emails: [String], "A list of users' unique identifiers." ids: [ID!], "The kind to search users by (all / non_guests / guests / non_pending)." kind: UserKind, "Number of users to get." limit: Int, "Allows to fuzzy search by name" name: String, "Get the recently created users at the top of the list" newest_first: Boolean, "Return non active users in the account." non_active: Boolean, "Page number to get, starting at 1." page: Int): [User] "Get a collection of webhooks for the board" webhooks( "Filters webhooks that were created by the app initiating the request" app_webhooks_only: Boolean, "Board unique identifier." board_id: ID!): [Webhook] "Get a collection of workspaces." workspaces( "A list of workspace unique identifiers." ids: [ID!], "The workspace's kind (open / closed / template)" kind: WorkspaceKind, "Number of items to get, the default is 25." limit: Int = 25, "The workspace's membership kind (member / all)" membership_kind: WorkspaceMembershipKind = all, "Property to order by (created_at)." order_by: WorkspacesOrderBy, "Page number to get, starting at 1." page: Int = 1, "Parameters to filter workspaces" query_params: WorkspacesQueryInput, "The state of the workspace (all / active / archived / deleted), the default is active." state: State = active): [Workspace] "Get board candidates based on workspace and usage type" board_candidates( "The workspace ID to get boards from" workspaceId: String!, "The usage type for filtering boards" usageType: BoardUsage!): [Board!] "Namespace for all notetaker-related queries." notetaker: NotetakerQueries notifications( "The last notification id to get." cursor: ID, "Number of items to get, the default is 25." limit: Int = 25, "Whether to get only unread notifications." filter_read: Boolean, "Filter notifications created from this date (inclusive). ISO 8601 format (e.g., YYYY-MM-DD or YYYY-MM-DDTHH:mm)." since: ISO8601DateTime): [NotificationV2!] "Retrieves the current user's notification settings across all available channels." notifications_settings( "notification settings scope types. Options: account user defaults or user private settings." scope_type: ScopeType!, "Relevant when using scopeType: user. The userId of the user whose notification settings you want to retrieve. By default, the current user is used." scope_id: Int, "Filter results to specific notification setting types by their names. Leave empty to retrieve all settings." setting_kinds: [String!], "Return results for a specific notification channel type" channels: [ChannelType!]): [NotificationSetting!] "Get mute board notification settings for the current user" mute_board_settings( "The IDs of the boards to get mute settings for" board_ids: [ID!]!): [BoardMuteSettings!] "Retrieves a list of available object types that can be created or queried. Each object type is uniquely identified by an 'object_type_unique_key'. This key is required for mutations like 'create_object' and for filtering in the 'objects' query. Use this query to discover what types of objects are available in the system (e.g., 'workflows', 'projects') and get their corresponding unique keys. The structure of unique key is 'app_slug::app_feature_slug'." object_types_unique_keys: [ObjectTypeUniqueKey!] "Retrieves a list of objects from the Monday.com Objects Platform based on specified filters. This query can return any type of object (board, doc, dashboard, workflow, etc.) depending on the filter criteria. Use object_type_unique_keys to filter for specific object types." objects( "The unique identifier for the object type, formatted as 'app_slug::app_feature_slug'" object_type_unique_keys: [String!], "Filter by specific object ID(s). Use this when you need to retrieve one or more specific objects by their unique identifiers." ids: [ID!], "Maximum number of objects to return in the response. Default is 25, but can be increased to retrieve more objects at once." limit: Int, "Specifies the order in which objects are returned." order_by: OrderBy, "Filter objects by their state." state: ObjectState, "Filter objects by their kind/visibility setting." privacy_kind: PrivacyKind, "Filter objects by workspace ID(s). Returns only objects that belong to the specified workspace(s). Use null or omit for objects in the main workspace." workspace_ids: [ID!]): [Object!] "Fetch relations for a specific object" object_relations( "ID of the source object" object_id: ID!, "Kind of the relation to fetch. If not provided, all relation kinds are returned." kind: RelationKind, """ Direction of the relation (defaults to "outgoing") """ direction: RelationDirection = OUTGOING): [ObjectRelation!] "Get the API version in use" version: Version! "Get a list containing the versions of the API" versions: [Version!] "Platform API data." platform_api: PlatformApi "Performs aggregation operations on board data" aggregate( "The aggregation query to execute" query: AggregateQueryInput!): AggregateQueryResult "Fetch resources information from the resource directory" get_directory_resources( "Query parameters for filtering resources" query_params: ItemsQuery, "The cursor which allows to fetch the next page of directory resources." cursor: String, "Number of items to get, the default is 25." limit: Int = 25): DirectoryResourcesResponse "Get sequences that the current user is allowed to enroll items to, that are connected to the provided board. Returns sequences owned by the user or sequences where the user has access to the sender connection." allowed_sequences_to_enroll( "The ID of the board to get allowed sequences for" board_id: ID!): [Sequence!] "Get a collection of monday dev sprints" sprints( "A list of monday dev sprints unique identifiers" ids: [ID!]!): [Sprint!] "Get all roles for the account" account_roles: [AccountRole!] "Returns all available widget schemas for documentation and validation purposes" all_widgets_schema: [WidgetSchemaInfo!] "Fetch a form by its token. The returned form includes all the details of the form such as its settings, questions, title, etc. Use this endpoint when you need to retrieve complete form data for display or processing. Requires that the requesting user has read access to the associated board." form( "The unique identifier token for the form. This token is used to securely access the form and can be found in the form URL." formToken: String!): ResponseForm } "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1." scalar Int """ The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. """ scalar ID "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text." scalar String "The `Boolean` scalar type represents `true` or `false`." scalar Boolean "A monday.com user." type User { "The user's unique identifier." id: ID! "The department the user is a member of (if any)" department: Department "The user's account." account: Account! "The products the user is assigned to." account_products: [AccountProduct!] "The user's birthday." birthday: Date "The user’s country code." country_code: String "The user's creation date." created_at: Date "The current user's language" current_language: String "The custom field metas of the user profile." custom_field_metas: [CustomFieldMetas] "The custom field values of the user profile." custom_field_values: [CustomFieldValue] "The user's email." email: String! "Is the user enabled or not." enabled: Boolean! @deprecated(reason: "This field is deprecated. Please use status instead.") "The token of the user for email to board." encrypt_api_token: String @deprecated(reason: "This field is deprecated and will be removed in later versions.") "Is the user an account admin." is_admin: Boolean @deprecated(reason: "This field is deprecated. Please use kind instead.") "Is the user a guest or not." is_guest: Boolean @deprecated(reason: "This field is deprecated. Please use kind instead.") "Is the user a pending user" is_pending: Boolean @deprecated(reason: "This field is deprecated. Please use status instead.") "Is user verified his email." is_verified: Boolean @deprecated(reason: "This field is deprecated. Please use is_email_confirmed instead.") "Is the user a view only user or not." is_view_only: Boolean @deprecated(reason: "This field is deprecated. Please use kind instead.") "The date the user joined the account." join_date: Date @deprecated(reason: "This field is deprecated. Please use became_active_at instead.") "Last date & time when user was active" last_activity: Date "The user’s location." location: String "The user's mobile phone number." mobile_phone: String "The user's name." name: String! "The user's out of office status." out_of_office: OutOfOffice "The user's phone number." phone: String "The user's photo in the original size." photo_original: String @deprecated(reason: "This field is deprecated. Please use photo_url.original instead.") "The user's photo in small size (150x150)." photo_small: String @deprecated(reason: "This field is deprecated. Please use photo_url.small instead.") "The user's photo in thumbnail size (100x100)." photo_thumb: String @deprecated(reason: "This field is deprecated. Please use photo_url.thumb instead.") "The user's photo in small thumbnail size (50x50)." photo_thumb_small: String @deprecated(reason: "This field is deprecated. Please use photo_url.thumb_small instead.") "The user's photo in tiny size (30x30)." photo_tiny: String @deprecated(reason: "This field is deprecated. Please use photo_url.tiny instead.") "The product to which the user signed up to first." sign_up_product_kind: String @deprecated(reason: "This field is deprecated and will be removed in later versions.") "The teams the user is a member in." teams( "A list of teams unique identifiers." ids: [ID!]): [Team] "The user’s timezone identifier." time_zone_identifier: String "The user's title." title: String "The user's profile url." url: String! "The user’s utc hours difference." utc_hours_diff: Int } "Root mutation type for the Dependencies service" type Mutation { "Execute an integration block with the provided field values" execute_integration_block( "The ID of the integration block instance to execute" block_instance_id: ID!, "The field values to pass to the integration block" inbound_field_values: JSON!): IntegrationExecutionResult "Create a new table view" create_view_table( "The ID of the board" board_id: ID!, "The name of the view" name: String, "User ID to filter by" filter_user_id: ID, "Team ID to filter by" filter_team_id: ID, "The rule filters to apply to the board view" filter: ItemsQueryGroup, "The sort order to apply to the board view" sort: [ItemsQueryOrderBy!], "Tags to apply for board view" tags: [String!], "View settings configuration for the table board view" settings: TableViewSettingsInput): BoardView "Create a view" create_view( "The ID of the board" board_id: ID!, "The type of view to create" type: ViewKind!, "The name of the view" name: String, "User ID to filter by" filter_user_id: ID, "Team ID to filter by" filter_team_id: ID, "The rule filters to apply to the board view" filter: ItemsQueryGroup, "The sort order to apply to the board view" sort: [ItemsQueryOrderBy!], "Tags to apply for board view" tags: [String!], """ Type-specific configuration object containing view settings. The structure varies by view type - use get_view_schema_by_type query to see available properties. Examples: APP view include app_feature_id part of it's settings """ settings: JSON): BoardView "Update an existing board table view" update_view_table( "The ID of the view to update" view_id: ID!, "The ID of the board" board_id: ID!, "The name of the view" name: String, "User ID to filter by" filter_user_id: ID, "Team ID to filter by" filter_team_id: ID, "The rule filters to apply to the board view" filter: ItemsQueryGroup, "The sort order to apply to the board view" sort: [ItemsQueryOrderBy!], "Tags to apply for board view" tags: [String!], "The settings for the view" settings: TableViewSettingsInput): BoardView "Update an existing view" update_view( "The name of the view" name: String, "User ID to filter by" filter_user_id: ID, "Team ID to filter by" filter_team_id: ID, "The rule filters to apply to the board view" filter: ItemsQueryGroup, "The sort order to apply to the board view" sort: [ItemsQueryOrderBy!], "Tags to apply for board view" tags: [String!], "The ID of the view to update" view_id: ID!, "The ID of the board" board_id: ID!, "The type of view to update" type: ViewKind!, """ Type-specific configuration object containing view settings. The structure varies by view type - use get_view_schema_by_type query to see available properties. Examples: TABLE view include group_by and columns configuration as part of it's settings """ settings: JSON): BoardView "Delete an existing board subset/view" delete_view( "The ID of the view to delete" view_id: ID!, "The ID of the board" board_id: ID!): BoardView like_update( "The update identifier." update_id: ID!, "The reaction type." reaction_type: String): Update unlike_update( "The update identifier." update_id: ID!): Update! delete_update( "The update's unique identifier." id: ID!): Update edit_update( "The update's unique identifier." id: ID!, "The update text." body: String!): Update! pin_to_top( "The update's unique identifier." id: ID!, "The item unique identifier." item_id: ID): Update! unpin_from_top( "The update's unique identifier." id: ID!, "The item unique identifier." item_id: ID): Update! create_update( "The update text. Do not use @ to mention users, use the mentions field instead (if available)." body: String!, "Original creation date of the update." original_creation_date: String, """ Mention users, teams, or boards in this update. Example: [{"id": "123", "type": "User"}, {"id": "456", "type": "Board"}] """ mentions_list: [UpdateMention], "The item's unique identifier on which the update will be created on. No need to set if you are using parent_id for replying to a post." item_id: ID, "The parent post identifier. Use this to reply to a post." parent_id: ID, "Use app info for the post creator." use_app_info: Boolean): Update create_timeline_item( "The item the timeline item will be created in." item_id: ID!, "The user who created the timeline item. Only for account admins." user_id: Int, "The title of the timeline item." title: String!, "The creation time of the event." timestamp: ISO8601DateTime!, summary: String, content: String, "Location field value" location: String, "Phone number field value" phone: String, "URL field value" url: String, "The start and end time of the new timeline item." time_range: TimelineItemTimeRange, "The id of the custom activity of the timeline item." custom_activity_id: String!): TimelineItem delete_timeline_item( "The id of the timeline item to delete" id: String!): TimelineItem create_custom_activity( "The name of the custom activity" name: String!, "The icon of the custom activity" icon_id: CustomActivityIcon!, "The color of the custom activity" color: CustomActivityColor!): CustomActivity delete_custom_activity( "The id of the custom activity" id: String!): CustomActivity "Create managed column of type dropdown mutation." create_dropdown_managed_column( "The column title." title: String!, "The column description." description: String, settings: CreateDropdownColumnSettingsInput): DropdownManagedColumn "Create managed column of type status mutation." create_status_managed_column( "The column title." title: String!, "The column description." description: String, settings: CreateStatusColumnSettingsInput): StatusManagedColumn "Update managed column of type dropdown mutation." update_dropdown_managed_column( "The column id." id: String!, "The column title." title: String, "The column description." description: String, settings: UpdateDropdownColumnSettingsInput, "The column revision." revision: Int!): DropdownManagedColumn "Update managed column of type status mutation." update_status_managed_column( "The column id." id: String!, "The column title." title: String, "The column description." description: String, settings: UpdateStatusColumnSettingsInput, "The column revision." revision: Int!): StatusManagedColumn "Activate managed column mutation." activate_managed_column( "The column id." id: String!): ManagedColumn "Deactivate managed column mutation." deactivate_managed_column( "The column id." id: String!): ManagedColumn "Delete managed column mutation." delete_managed_column( "The column id." id: String!): ManagedColumn """ Updates a status column's properties including title, description, and status label settings. Status columns allow users to track item progress through customizable labels (e.g., "Working on it", "Done", "Stuck"). This mutation is specifically for status/color columns and provides type-safe updates. """ update_status_column( "The unique identifier of the board containing the column to update." board_id: ID!, "The unique identifier of the column to update." id: String!, "The new display title for the column. If not provided, the current title remains unchanged." title: String, "The new description text for the column. If not provided, the current description remains unchanged." description: String, "The width of the column. If not provided, the current width remains unchanged." width: Int, "The revision of the column, as returned by the column query. Used for optimistic concurrency control." revision: String!, "Status column capabilities configuration. If not provided, existing capabilities remain unchanged." capabilities: StatusColumnCapabilitiesInput, "Configuration object for status column settings including available status labels, their colors, positions, and other display properties." settings: UpdateStatusColumnSettingsInput): Column "Updates a dropdown column's properties including title, description, and dropdown label settings. Dropdown columns allow users to select from a predefined list of options. This mutation is specifically for dropdown columns and provides type-safe updates." update_dropdown_column( "The unique identifier of the board containing the column to update." board_id: ID!, "The unique identifier of the column to update." id: String!, "The new display title for the column. If not provided, the current title remains unchanged." title: String, "The new description text for the column. If not provided, the current description remains unchanged." description: String, "The width of the column. If not provided, the current width remains unchanged." width: Int, "The revision of the column, as returned by the column query. Used for optimistic concurrency control." revision: String!, "Configuration object for dropdown column settings including available dropdown labels, their positions, and other display properties." settings: UpdateDropdownColumnSettingsInput): Column "Generic mutation for updating any column type with validation. Supports updating column properties like title, description, and type-specific defaults/settings. The mutation validates input against the column type's schema before applying changes. Use get_column_type_schema query to understand available properties for each column type." update_column( "The unique identifier of the board containing the column to update." board_id: ID!, "The unique identifier of the column to update." id: String!, "The new display title for the column. If not provided, the current title remains unchanged." title: String, "The new description text for the column. If not provided, the current description remains unchanged." description: String, "The width of the column. If not provided, the current width remains unchanged." width: Int, "The revision of the column, as returned by the column query. Used for optimistic concurrency control." revision: String!, "Column capabilities configuration. If not provided, existing capabilities remain unchanged." capabilities: ColumnCapabilitiesInput, "Type-specific configuration object containing column settings. The structure varies by column type - use get_column_type_schema query to see available properties. Examples: status column labels, dropdown options, number formatting rules, date display preferences." settings: JSON, """ The column type being updated (e.g., "text", "status", "date", "numbers"). Must match the existing column type. Determines which properties are valid in the defaults object. """ column_type: ColumnType!): Column "Deletes a column from a board. Cannot delete mandatory columns (e.g., name column)." delete_column( "The unique identifier of the board containing the column to delete." board_id: ID!, "The unique identifier of the column to delete." column_id: String!): Column """ Creates a new status column with strongly typed settings. Status columns allow users to track item progress through customizable labels (e.g., "Working on it", "Done", "Stuck"). This mutation is specifically for status/color columns and provides type-safe creation with label configuration. """ create_status_column( "The unique identifier of the board where the column will be created." board_id: ID!, "The unique identifier of the column. If not provided, a new id will be generated." id: String, "The display title for the column." title: String!, "The description text for the column." description: String, "The column's unique identifier after which the new column will be inserted." after_column_id: ID, "Status column capabilities configuration. If not provided, default capabilities will be created." capabilities: StatusColumnCapabilitiesInput, "Configuration object for status column settings including available status labels, their colors, positions, and other display properties." defaults: CreateStatusColumnSettingsInput): Column "Creates a new dropdown column with strongly typed settings. Dropdown columns allow users to select from a predefined list of options. This mutation is specifically for dropdown columns and provides type-safe creation with dropdown options configuration." create_dropdown_column( "The unique identifier of the board where the column will be created." board_id: ID!, "The unique identifier of the column. If not provided, a new id will be generated." id: String, "The display title for the column." title: String!, "The description text for the column." description: String, "The column's unique identifier after which the new column will be inserted." after_column_id: ID, "Configuration object for dropdown column settings including available dropdown options and their properties." defaults: CreateDropdownColumnSettingsInput): Column "Generic mutation for creating any column type with validation. Supports creating column with properties like title, description, and type-specific defaults/settings. The mutation validates input against the column type's schema before applying changes. Use get_column_type_schema query to understand available properties for each column type." create_column( "The unique identifier of the board where the column will be created." board_id: ID!, "The unique identifier of the column. If not provided, a new id will be generated." id: String, "The display title for the column." title: String!, "The description text for the column." description: String, "The column's unique identifier after which the new column will be inserted." after_column_id: ID, "Column capabilities configuration. If not provided, default capabilities will be created." capabilities: ColumnCapabilitiesInput, "Type-specific configuration object containing column defaults and settings. Accepts both JSON objects (recommended) and JSON strings (for backward compatibility). For JSON objects, use get_column_type_schema query to see available properties and validation rules. Examples: status column labels, dropdown options, number formatting rules, date display preferences." defaults: JSON, """ The column type being updated (e.g., "text", "status", "date", "numbers"). Must match the existing column type. Determines which properties are valid in the defaults object. """ column_type: ColumnType!): Column "Creates a new status column in a board that is linked to a managed column. The column data and settings are controlled by the managed column. Only title and description can be overridden locally." attach_status_managed_column( "The unique identifier of the board where the column will be created." board_id: ID!, "The unique identifier of the managed column to attach." managed_column_id: ID!, "Optional title override for the column. If not provided, uses the managed column title." title: String, "Optional description override for the column. If not provided, uses the managed column description." description: String, "The column's unique identifier after which the new column will be inserted." after_column_id: ID): Column "Creates a new dropdown column in a board that is linked to a managed column. The column data and settings are controlled by the managed column. Title, description, and dropdown-specific settings (limit_select, label_limit_count) can be overridden locally." attach_dropdown_managed_column( "The unique identifier of the board where the column will be created." board_id: ID!, "The unique identifier of the managed column to attach." managed_column_id: ID!, "Optional title override for the column. If not provided, uses the managed column title." title: String, "Optional description override for the column. If not provided, uses the managed column description." description: String, "The column's unique identifier after which the new column will be inserted." after_column_id: ID, "Optional settings overrides for the dropdown column." settings: DropdownSettingsOverridesInput): Column "Add a required column to a board" add_required_column(id: ID!, column_id: String!, "The type of entity for validations the default is board" type: ValidationsEntityType = board): RequiredColumns "Remove a required column from a board" remove_required_column(id: ID!, column_id: String!, "The type of entity for validations the default is board" type: ValidationsEntityType = board): RequiredColumns "Assigns members to a department." assign_department_members( "The department ID to assign the members to." department_id: ID!, "The user IDs to assign to the department." user_ids: [ID!]!): AssignDepartmentMembersResult "Clear users department" clear_users_department( "The user IDs to remove theirs department." user_ids: [ID!]!): ClearUsersDepartmentResult "Assigns an owner to a department." assign_department_owner( "The department ID to assign the owner to." department_id: ID!, "The user ID to assign as the owner of the department." user_id: ID!): AssignDepartmentOwnerResult "Unassigns owners from a department." unassign_department_owners( "The department ID to unassign the owners from." department_id: ID!, "The user IDs to unassign as the owners of the department." user_ids: [ID!]!): UnassignDepartmentOwnerResult "Creates a new department." create_department(data: CreateDepartmentDataInput!): Department "Updates a department." update_department( "The department ID to update." department_id: ID!, data: UpdateDepartmentOptionsInput): Department "Deletes a department." delete_department( "The department ID to delete." department_id: ID!): Department "Update the dependency column for a specific pulse" update_dependency_column(boardId: String!, pulseId: String!, value: DependencyValueInput!, columnId: String!, "Optional new date for the successor node (or one of its descendants). When provided, updates the successor date and all predecessor edge lags." successor_new_date: TimelineDateInput): JSON! "Batch update the dependency column values in a board. Limited to 50 items per batch." batch_update_dependency_column(boardId: String!, columnId: String!, "The list of pulses with their dependency column values to update" values: [DependencyPulseValueInput!]!): JSON! "Adds markdown content to an existing document by converting it into document blocks. Use this to append content to the end of a document or insert content after a specific block. The markdown will be parsed and converted into the appropriate document block types (text, headers, lists, etc.). Returns the IDs of the newly created blocks on success." add_content_to_doc_from_markdown( "The document's unique identifier." docId: ID!, "The markdown content to convert into document blocks." markdown: String!, "Optional block ID to insert the markdown content after." afterBlockId: String): DocBlocksFromMarkdownResult "Creates a new article in the specified workspace. Optionally accepts a name and folder ID. Returns the created article metadata." create_article( "The display name of the article. This is what appears in the monday.com interface." name: String, "The ID of the workspace containing this article." workspace_id: ID!, "The ID of the folder containing this article, if the article is organized in a folder structure." folder_id: ID): ArticleMetadata "Deletes an article with the specified object ID" delete_article( "The unique identifier of the article object. Can be used to reference this specific object in queries and mutations. This ID can be found in the article's URL." object_id: ID!): ArticleMetadata "Permanently deletes a document and all its content from the system. This action cannot be undone. The document will be removed from all user views and workspaces. Use with caution - ensure the document is no longer needed before deletion. Returns success status and the deleted document ID." delete_doc( "The document's unique identifier. Get this from document queries or creation responses." docId: ID!): JSON "Creates an exact copy of an existing document, including all content, structure, and formatting. Use this to create templates, backup documents before major changes, or create variations of existing documents. The duplicated document will have a new unique ID and can be modified independently. Returns the new document's ID on success." duplicate_doc( "The document's unique identifier to duplicate. Get this from document queries or creation responses." docId: ID!, "Controls what gets duplicated: content only (default) or content with update history. Choose content-only for clean copies." duplicateType: DuplicateType): JSON "Imports HTML content as a new document by converting it into document blocks. The HTML will be parsed and converted into the appropriate document block types (text, headers, lists, etc.). Returns the ID of the newly created document on success." import_doc_from_html( "The HTML content to convert into a new document." html: String!, "The workspace ID where the document should be created." workspaceId: ID!, """ The access level of the document. Defaults to "public" if not specified. """ kind: DocKind, "The folder ID where the document should be placed. If not provided, the document will be created at the root level of the workspace." folderId: ID, "The name/title of the document. If not provided, the title will be inferred from the HTML content." title: String): ImportDocFromHtmlResult "Publishes an article with the specified object ID. Allows setting privacy level, target folder, and managing subscribers (users and teams). Returns the updated article metadata." publish_article( "The unique identifier of the article object. Can be used to reference this specific object in queries and mutations. This ID can be found in the article's URL." object_id: ID!, "The kind/visibility setting of the article (private, public). Determines who can access it." privacy_kind: PrivacyKind!, "The ID of the folder to move the article to. If not specified, the article will remain at its current folder level" folder_id: ID, "List of user IDs to add as subscribers to this article. Only applicable when privacy_kind is PRIVATE" add_subscriber_ids: [ID!], "List of team IDs to add as subscribers to this article. Only applicable when privacy_kind is PRIVATE" add_subscriber_team_ids: [ID!], "List of user IDs to remove from article subscribers. Only applicable when privacy_kind is PRIVATE" remove_subscriber_ids: [ID!], "List of team IDs to remove from article subscribers. Only applicable when privacy_kind is PRIVATE" remove_subscriber_team_ids: [ID!]): ArticleMetadata "Updates the content of a specific article block. The block must belong to a draft article that the user has permission to edit. Cannot update blocks of published articles." update_article_block( "The ID of the block to update" block_id: String!, "The new content for the block" content: JSON!): ArticleBlock "Update a document's name/title. Changes are applied immediately and visible to all users with access to the document." update_doc_name( "The document's unique identifier. Use document ID from API responses" docId: ID!, "The new name/title for the document. Should be descriptive and help users identify the document purpose." name: String!): JSON "Sets an item description document's content with new markdown data. This mutation converts the provided markdown into document blocks and replaces the existing content of the item's description. Returns the IDs of the newly created blocks on success. Note: Markdown does not support text colors or background highlights. Any existing colored or highlighted text will be lost after replacement." set_item_description_content( "The item's unique identifier." item_id: ID!, "The markdown content to replace the document with." markdown: String!): DocBlocksFromMarkdownResult "Add workspace object to favorites" create_favorite( "The input for adding an object to the favorites" input: CreateFavoriteInput!): CreateFavoriteResultType "Remove an object from favorites" delete_favorite( "The input for removing an object from favorites" input: DeleteFavoriteInput!): DeleteFavoriteInputResultType "Update the position of an object in favorites" update_favorite_position( "The input for updating the favorite object position" input: UpdateObjectHierarchyPositionInput!): UpdateFavoriteResultType "Create a marketplace app discount" create_marketplace_app_discount( "The id of an app" app_id: ID!, "Slug of an account" account_slug: String!, discount_data: CreateMarketplaceAppDiscountInput!): CreateMarketplaceAppDiscountResult! delete_marketplace_app_discount( "The id of an app" app_id: ID!, "Slug of an account" account_slug: String!): DeleteMarketplaceAppDiscountResult! grant_marketplace_app_discount( "The id of an app" app_id: ID!, "Slug of an account" account_slug: String!, data: GrantMarketplaceAppDiscountData!): GrantMarketplaceAppDiscountResult! "Creates a new app with the specified configuration." create_app( "App configuration data" input: CreateAppInput!): CreateAppResponse "Updates an existing app. If the app latest version is live, a new draft version is automatically created and updated." update_app( "The app identifier" id: ID!, "App configuration data to update" input: UpdateAppInput!): AppType "Update an app feature." update_app_feature( "The ID of the app feature to update." id: ID!, "The input data for updating the app feature." input: UpdateAppFeatureInput!): AppFeatureType "Create a new app feature." create_app_feature( "The name of the app feature. If not provided, a default name will be used." name: String, "The unique slug identifier for the app feature." slug: String!, "The ID of the app to create the app feature for." app_id: ID!, "The ID of the app version to create the app feature for. If not provided, the latest draft version will be used." app_version_id: ID, "The type of the app feature to create." type: AppFeatureTypeE!, "The app feature data to update. This structure is dynamic and depends on the different app feature types." data: JSON, "The deployment data for the app feature. https://developer.monday.com/apps/docs/deploy-your-app" deployment: AppFeatureReleaseInput): AppFeatureType "Update (or create) lifecycle subscriptions for an entity. This will soft delete all existing subscriptions for this entity_identifier and create new ones." update_app_lifecycle_subscription( "App feature entity ID or full slug (app_slug::feature_slug)" entity_identifier: ID!, """ Entity type enum (currently only "appFeature" is supported) """ entity_type: String!, "Lifecycle event configurations" input: UpdateLifecycleSubscriptionsInput!): [LifecycleSubscriptionKind!] "Delete all lifecycle subscriptions for an entity. Returns true if deleted successfully or if no subscriptions exist." delete_app_lifecycle_subscription( "App feature entity ID or full slug (app_slug::feature_slug)" entity_identifier: ID!, """ Entity type enum (currently only "appFeature" is supported) """ entity_type: String!): Boolean "Add a file to a column value." add_file_to_column( "The column to add the file to." column_id: String!, "The file to upload." file: File!, "The item to add the file to." item_id: ID!): Asset "Add a file to an update." add_file_to_update( "The file to upload." file: File!, "The update to add the file to." update_id: ID!): Asset "Add subscribers to a board." add_subscribers_to_board( "The board's unique identifier." board_id: ID!, "Subscribers kind (subscriber / owner)" kind: BoardSubscriberKind = subscriber, "User ids to subscribe to a board" user_ids: [ID!]!): [User] @deprecated(reason: "use add_users_to_board instead") "Add teams subscribers to a board." add_teams_to_board( "The board's unique identifier." board_id: ID!, "Subscribers kind (subscriber / owner)" kind: BoardSubscriberKind = subscriber, "Team ids to subscribe to a board" team_ids: [ID!]!): [Team] "Add teams to a workspace." add_teams_to_workspace( "Subscribers kind (subscriber / owner)" kind: WorkspaceSubscriberKind = subscriber, "Team ids to subscribe to a workspace" team_ids: [ID!]!, "The workspace's unique identifier." workspace_id: ID!): [Team] "Add subscribers to a board." add_users_to_board( "The board's unique identifier." board_id: ID!, "Subscribers kind (subscriber / owner)" kind: BoardSubscriberKind = subscriber, "User ids to subscribe to a board" user_ids: [ID!]!): [User] "Add users to team." add_users_to_team( "The team's unique identifier." team_id: ID!, "User ids to add to/remove from the team" user_ids: [ID!]!): ChangeTeamMembershipsResult "Add users to a workspace." add_users_to_workspace( "Subscribers kind (subscriber / owner)" kind: WorkspaceSubscriberKind = subscriber, "User ids to subscribe to a workspace" user_ids: [ID!]!, "The workspace's unique identifier." workspace_id: ID!): [User] "Archive a board." archive_board( "The board's unique identifier" board_id: ID!): Board "Archives a group in a specific board." archive_group( "The board's unique identifier." board_id: ID!, "The group's unique identifier." group_id: String!): Group "Archive an item." archive_item( "The item's unique identifier." item_id: ID): Item "Extends trial period of an application to selected accounts" batch_extend_trial_period( "The accounts' slags. Max: 5" account_slugs: [String!]!, "The id of an application." app_id: ID!, "The amount of days to extend a trial period. Max: 365" duration_in_days: Int!, "The id of a payment plan." plan_id: String!): BatchExtendTrialPeriod "Change a column's properties" change_column_metadata( "The board's unique identifier." board_id: ID!, "The column's unique identifier." column_id: String!, "The property name of the column to be changed (title / description)." column_property: ColumnProperty, "The new description of the column." value: String): Column "Change a column's title" change_column_title( "The board's unique identifier." board_id: ID!, "The column's unique identifier." column_id: String!, "The new title of the column." title: String!): Column "Change an item's column value." change_column_value( "The board's unique identifier." board_id: ID!, "The column's unique identifier." column_id: String!, "Create Status/Dropdown labels if they're missing. (Requires permission to change board structure)" create_labels_if_missing: Boolean, "The item's unique identifier." item_id: ID, "The new value of the column." value: JSON!): Item "Change an item's position." change_item_position( """ The group's unique identifier. When provided, the item will be moved to the group. Mutually exclusive with 'relative_to'. """ group_id: ID, """ Only allowed in combination with 'group_id'. Determines whether the item will be placed at the top or bottom of the group. """ group_top: Boolean, "The item's unique identifier." item_id: ID!, "Whether to place the item before or after the relative_to item. Only allowed with 'relative_to'." position_relative_method: PositionRelative, "The ID of an item in the same board to set the position relative to. Mutually exclusive with 'group_id'." relative_to: ID): Item "Changes the column values of a specific item." change_multiple_column_values( "The board's unique identifier." board_id: ID!, "The column values updates." column_values: JSON!, "Create Status/Dropdown labels if they're missing. (Requires permission to change board structure)" create_labels_if_missing: Boolean, "The item's unique identifier." item_id: ID): Item "Change an item's column with simple value." change_simple_column_value( "The board's unique identifier." board_id: ID!, "The column's unique identifier." column_id: String!, "Create Status/Dropdown labels if they're missing. (Requires permission to change board structure)" create_labels_if_missing: Boolean, "The item's unique identifier." item_id: ID, "The new simple value of the column (pass null to empty the column)." value: String): Item "Clear an item's updates." clear_item_updates( "The item's unique identifier." item_id: ID!): Item "Get the complexity data of your mutations." complexity: Complexity "Create a new board." create_board( "The board's kind (public / private / share)" board_kind: BoardKind!, "The board's name" board_name: String!, "Optional board owner user ids" board_owner_ids: [ID!], "Optional board owner team ids" board_owner_team_ids: [ID!], "Optional board subscriber ids" board_subscriber_ids: [ID!], "Optional list of subscriber team ids" board_subscriber_teams_ids: [ID!], "Optional board's description" description: String, "Optional flag to create an empty board (without any default items)" empty: Boolean = false, "Optional board folder id" folder_id: ID, "Optional item nickname configuration for the board" item_nickname: ItemNicknameInput, "AI prompt to generate the board structure and content" prompt: String, "Optional board template id" template_id: ID, "Optional workspace id" workspace_id: ID): Board "Create a new doc." create_doc( "new monday doc location" location: CreateDocInput!): Document "Create new document block" create_doc_block( "After which block to insert this one. If not provided, will be inserted first in the document" after_block_id: String, "The block's content." content: JSON!, "The doc's unique identifier." doc_id: ID!, "The parent block id to append the created block under." parent_block_id: String, "The block's content type." type: DocBlockContentType!): DocumentBlock "Creates a folder in a specific workspace." create_folder( "The folder's color." color: FolderColor, "The folder's custom icon." custom_icon: FolderCustomIcon, "The folder's font weight." font_weight: FolderFontWeight, "The folder's name" name: String!, "The folder's parent folder unique identifier." parent_folder_id: ID, "The unique identifier of the workspace to create this folder in" workspace_id: ID): Folder "Creates a new group in a specific board." create_group( "The board's unique identifier." board_id: ID!, "A hex representing the group's color" group_color: String, "The name of the new group." group_name: String!, "The group's position in the board. DEPRECATED! Replaced with relative position (position_relative_method, relative_to)" position: String, "The position relative method to another group (before_at / after_at)" position_relative_method: PositionRelative, "The group to set the position next to." relative_to: String): Group "Create a new item." create_item( "The board's unique identifier." board_id: ID!, "The column values of the new item." column_values: JSON, "Create Status/Dropdown labels if they're missing. (Requires permission to change board structure)" create_labels_if_missing: Boolean, "The group's unique identifier." group_id: String, "The new item's name." item_name: String!, "The position relative method to another item (before_at / after_at)" position_relative_method: PositionRelative, "The item to set the position next to." relative_to: ID): Item "Create a new notification." create_notification( "The target's unique identifier." target_id: ID!, "The target's type (Project / Post)" target_type: NotificationTargetType!, "The notification text." text: String!, "The user's unique identifier." user_id: ID!): Notification "Create a new tag or get it if it already exists." create_or_get_tag( "The private board id to create the tag at (not needed for public boards)" board_id: ID, "The new tag's name." tag_name: String): Tag "Create subitem." create_subitem( "The column values of the new item." column_values: JSON, "Create Status/Dropdown labels if they're missing. (Requires permission to change board structure)" create_labels_if_missing: Boolean, "The new item's name." item_name: String!, "The parent item's unique identifier." parent_item_id: ID!): Item "Create a new webhook." create_webhook( "The board's unique identifier." board_id: ID!, "The webhook config" config: JSON, "The event to listen to" event: WebhookEventType!, "The webhook URL." url: String!): Webhook "Create a new workspace." create_workspace( "The account product's id" account_product_id: ID, "The Workspace's description" description: String, "The workspace's kind (open / closed / template)" kind: WorkspaceKind!, "The Workspace's name" name: String!): Workspace "Delete a board." delete_board( "The board's unique identifier" board_id: ID!): Board "Delete a document block" delete_doc_block( "The block's unique identifier." block_id: String!): DocumentBlockIdOnly "Deletes a folder in a specific workspace." delete_folder( "The folder's unique identifier." folder_id: ID!): Folder "Deletes a group in a specific board." delete_group( "The board's unique identifier." board_id: ID!, "The group's unique identifier." group_id: String!): Group "Delete an item." delete_item( "The item's unique identifier." item_id: ID): Item "Remove subscribers from the board." delete_subscribers_from_board( "The board's unique identifier." board_id: ID!, "User ids to unsubscribe from a board" user_ids: [ID!]!): [User] "Remove team subscribers from the board." delete_teams_from_board( "The board's unique identifier" board_id: ID!, "Team ids to unsubscribe from a workspace" team_ids: [ID!]!): [Team] "Delete teams from a workspace." delete_teams_from_workspace( "Team ids to unsubscribe from a workspace" team_ids: [ID!]!, "The workspace's unique identifier." workspace_id: ID!): [Team] "Delete users from a workspace." delete_users_from_workspace( "User ids to unsubscribe from a workspace" user_ids: [ID!]!, "The workspace's unique identifier." workspace_id: ID!): [User] "Delete a new webhook." delete_webhook( "The webhook's unique identifier." id: ID!): Webhook "Delete workspace." delete_workspace( "The workspace's unique identifier" workspace_id: ID!): Workspace "Duplicate a board." duplicate_board( "The board's unique identifier." board_id: ID!, "Optional the new board's name. If omitted then automatically generated" board_name: String, "The duplication type." duplicate_type: DuplicateBoardType!, "Optional destination folder in destination workspace. Defaults to the original board folder." folder_id: ID, "Duplicate the subscribers to the new board. Defaults to false." keep_subscribers: Boolean, "Optional destination workspace. Defaults to the original board workspace." workspace_id: ID): BoardDuplication "Duplicate a group." duplicate_group( "Should the new group be added to the top." add_to_top: Boolean, "The board's unique identifier." board_id: ID!, "The group's unique identifier." group_id: String!, "The group's title." group_title: String): Group "Duplicate an item." duplicate_item( "The board's unique identifier." board_id: ID!, "The item's unique identifier. *Required" item_id: ID, "Duplicate with the item's updates." with_updates: Boolean): Item "Increase operations counter" increase_app_subscription_operations( "Must be positive number." increment_by: Int = 1, "Operation name. A string of up to 14 characters containing alphanumeric characters and the symbols -_ " kind: String = "global"): AppSubscriptionOperationsCounter "Move an item to a different board." move_item_to_board( "The unique identifier of a target board." board_id: ID!, "Mapping of columns between the original board and target board" columns_mapping: [ColumnMappingInput!], "The unique identifier of a target group." group_id: ID!, "The unique identifier of an item to move." item_id: ID!, "Mapping of subitem columns between the original board and target board" subitems_columns_mapping: [ColumnMappingInput!]): Item "Move an item to a different group." move_item_to_group( "The group's unique identifier." group_id: String!, "The item's unique identifier." item_id: ID): Item "Remove mock app subscription for the current account" remove_mock_app_subscription( "The app id of the app to remove the mocked subscription for." app_id: ID!, "The last 10 characters of the app's signing secret." partial_signing_secret: String!): AppSubscription "Remove users from team." remove_users_from_team( "The team's unique identifier." team_id: ID!, "User ids to add to/remove from the team" user_ids: [ID!]!): ChangeTeamMembershipsResult """ Set or update the board's permission to specified role. This concept is also known as default board role, general access or board permission set. """ set_board_permission( """ The basic role name to set. One of: editor (can edit structure and content), contributor (can edit content only), viewer (read-only access). Note: assigned_contributor is not yet supported. """ basic_role_name: BoardBasicRoleName, "The board's unique identifier" board_id: ID!): SetBoardPermissionResponse "Set mock app subscription for the current account" set_mock_app_subscription( "The app id of the app to mock subscription for." app_id: ID!, "Billing period [monthly/yearly]" billing_period: String, "Is the subscription a trial" is_trial: Boolean, "Maximum number of units for the mocked plan" max_units: Int, "The last 10 characters of the app's signing secret." partial_signing_secret: String!, "The plan id for the mocked plan" plan_id: String, "Pricing plans version" pricing_version: Int, "The subscription renewal date" renewal_date: Date): AppSubscription "Update item column value by existing assets" update_assets_on_item( "The board's unique identifier." board_id: ID!, "The column's unique identifier." column_id: String!, "Array of files values." files: [FileInput!]!, "The item's unique identifier." item_id: ID!): Item "Update Board attribute." update_board( "The board's attribute to update (name / description / communication / item_nickname)" board_attribute: BoardAttributes!, "The board's unique identifier" board_id: ID!, "The new attribute value." new_value: String!): JSON "Update a board's position, workspace, or account product." update_board_hierarchy( "The position and location attributes to update" attributes: UpdateBoardHierarchyAttributesInput!, "The board's unique identifier" board_id: ID!): UpdateBoardHierarchyResult "Update a document block" update_doc_block( "The block's unique identifier." block_id: String!, "The block's content." content: JSON!): DocumentBlock "Updates a folder." update_folder( "The target account product's ID to move the folder to" account_product_id: ID, "The folder's color." color: FolderColor, "The folder's custom icon." custom_icon: FolderCustomIcon, "The folder's unique identifier" folder_id: ID!, "The folder's font weight." font_weight: FolderFontWeight, "The folder's name" name: String, "The folder's parent folder." parent_folder_id: ID, "The folder's position relative to another object" position: DynamicPosition, "The workspace's unique identifier." workspace_id: ID): Folder "Update an existing group." update_group( "The board's unique identifier." board_id: ID!, "The groups's attribute to update (title / color / position / relative_position_after / relative_position_before)" group_attribute: GroupAttributes!, "The Group's unique identifier." group_id: String!, "The new attribute value." new_value: String!): Group "Update the position of a dashboard." update_overview_hierarchy( "The position and location attributes to update" attributes: UpdateOverviewHierarchyAttributesInput!, "The overview's unique identifier" overview_id: ID!): UpdateOverviewHierarchy "Update an existing workspace." update_workspace( "The attributes of the workspace to update" attributes: UpdateWorkspaceAttributesInput!, "The workspace ID." id: ID): Workspace "Use a template" use_template( "The board's kind (public / private / share)" board_kind: BoardKind, "Optional board owner user ids" board_owner_ids: [Int], "Optional board owner team ids" board_owner_team_ids: [Int], "Optional board subscriber ids" board_subscriber_ids: [Int], "Optional list of subscriber team ids" board_subscriber_teams_ids: [Int], "The callback URL to send the workspace, boards and dashboards IDs result, after its completed in the background" callback_url_on_complete: String, "The folder ID to duplicate the template to." destination_folder_id: Int, "The folder name to duplicate the template to, in case of multiple boards template" destination_folder_name: String, "The name of the instance" destination_name: String, "The workspace ID to duplicate the template to, If not defined, it will be created in Main Workspace" destination_workspace_id: Int, "Skips target folder creation in multiple entities templates" skip_target_folder_creation: Boolean, "Optional adding extra options" solution_extra_options: JSON, "The template ID" template_id: Int!): Template "Convert an existing monday.com board into a project with enhanced project management capabilities. This mutation transforms a regular board by applying project-specific features and configurations through column mappings that define how existing board columns should be interpreted in the project context. The conversion process is asynchronous and returns a process_id for tracking completion. Optionally accepts a callback URL for notification when the conversion completes. Use this when you have an existing board with data that needs to be upgraded to a full project with advanced project management features like Resource Planner integration." convert_board_to_project(input: ConvertBoardToProjectInput!): ConvertBoardToProjectResult "Create a new project in monday.com from scratch. This mutation initiates asynchronous project creation with comprehensive customization options including: privacy settings (private/public - share is currently not supported), optional companions like Resource Planner for enhanced project management capabilities, workspace assignment for organizational structure, folder placement for better organization, and template selection for predefined project structures. Since project creation is asynchronous, you can optionally provide a callback_url where the project ID will be sent via POST request once creation completes. The callback will receive: { is_success: boolean, process_id: string, project_id?: number }. Returns a process_id for tracking the creation request." create_project(input: CreateProjectInput!): CreateProjectResult "Updates a notification setting's enabled status." update_notification_setting( "Notification settings scope types, the options are account user defaults or user private settings" scope_type: ScopeType!, "Relevant when using scopeType: user, the user id of the user whose notification settings you want to update, by default the current user is used" scope_id: Int, "The notification setting type to update. Must be one of the allowed notification setting kinds." setting_kind: String!, "The channel type to update (Monday, Email, Slack, etc.)" channel: ChannelType!, "Whether the notification setting should be enabled or disabled" enabled: Boolean!): [NotificationSetting!] "Update mute notification settings for a board. Allows muting all notifications for all users, only for the current user, or setting mentions/assigns-only. Returns the updated mute state for the board. Requires appropriate permissions for muting all users." update_mute_board_settings( "The ID of the board to update mute settings for. Must be a valid board ID." board_id: String!, """ The desired mute state for the board. - MUTE_ALL: Mute all notifications for all users (admin only). - CURRENT_USER_MUTE_ALL: Mute all notifications for the current user only. - MENTIONS_AND_ASSIGNS_ONLY: Only notify the current user on mentions or assigns. - NOT_MUTED: Unmute notifications. """ mute_state: BoardMuteState!, "When mute_state is CUSTOM_SETTINGS, this array specifies which custom settings are enabled. Accepts IM_MENTIONED, IM_ASSIGNED, AUTOMATION_NOTIFY." enabled: [CustomizableBoardSettings!]): [BoardMuteSettings!] "Creates a new object in the Monday.com Objects Platform. The type of object created is determined by the object_type_unique_key parameter. This mutation can create boards, docs, dashboards, workflows, or specialized objects like CRM, capacity manager, etc. Under the hood, this creates a board with the corresponding app_feature_id." create_object( "The name of the new object. This will be displayed in the Monday.com interface as the primary identifier for this object." name: String!, "The kind/visibility setting of the object (private, public, share). Determines who can access it." privacy_kind: PrivacyKind!, "The ID of the workspace containing this object. Null indicates the object is in the main workspace." workspace_id: ID, "Optional description of the object, providing additional context about its purpose or contents." description: String, "The ID of the folder to create the object in. Used for organizing objects in folders. visible in the left pane of the platform. Must be a valid and existing workspace id in monday.com." folder_id: ID, "List of user IDs who will be assigned as owners of this object. Owners have full control permissions." owner_ids: [ID!], "List of team IDs who will be assigned as owners of this object. All members of these teams will have owner permissions." owner_team_ids: [ID!], "List of user IDs who will be added as subscribers to this object. Subscribers receive notifications about changes." subscriber_ids: [ID!], "List of team IDs who will be added as subscribers to this object. All members of these teams will receive notifications about changes." subscriber_teams_ids: [ID!], "The unique identifier for the object type, formatted as 'app_slug::app_feature_slug. To create an object you must provide this key. You can get a list of available keys by using the 'object_types_unique_keys' query." object_type_unique_key: String!, "JSON of creation payload, that will include additional fields for the object creation" payload: JSON, "Optional relations to create with the object" relations: [ObjectRelationInput!]): Object "Permanently deletes an object from the Monday.com Objects Platform. Unlike archiving, deletion is only reversible for 30 days and removes all associated data. This operation works for any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). WARNING: This operation cannot be undone after 30 days." delete_object( "The unique identifier of the object to delete. Each object has a unique ID regardless of its type (board, doc, dashboard, etc.). WARNING: Deletion is only reversible for 30 days." id: ID!): Object """ Archives an object in the Monday.com Objects Platform, changing its state to "archived" while preserving all data. Archived objects remain in the system but are hidden from regular views. This operation works for any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). Under the hood, this archives the board that represents this object. """ archive_object( "The unique identifier of the object to archive. Each object has a unique ID regardless of its type (board, doc, dashboard, etc.)." id: ID!): Object "Adds users to an existing object as either subscribers or owners. Subscribers receive notifications about object changes, while owners have full control permissions. Works with any object type including boards, docs, dashboards, workflows, and specialized objects (CRM, capacity manager, etc.). Equivalent to the add_users_to_board mutation in the boards API." add_subscribers_to_object( "The unique identifier of the object to add users to. Each object has a unique ID regardless of its type (board, doc, dashboard, etc.)." id: ID!, "List of user IDs to add to the object. These must be valid user IDs existing in the Monday.com platform." user_ids: [ID!]!, """ The role to assign to the users. "owner" grants full control permissions, while "subscriber" only provides notification access. If not specified, users will be added as subscribers. """ kind: SubscriberKind = SUBSCRIBER): Object "Updates an object." update_object(id: String!, input: UpdateObjectInput!): Object "Publishes object out of draft state. Returns {success: true} on success, {success: false} on failure." publish_object( "The unique identifier of the object instance." id: ID!): ObjectOperationResponse "Unpublishes object from public state back to draft state. Returns {success: true} on success, {success: false} on failure." unpublish_object( "The unique identifier of the object instance." id: ID!): ObjectOperationResponse "Create relations for an object" create_object_relations( "ID of the source object" source_object_id: ID!, "List of relations to create" relations: [ObjectRelationInput!]!): [ObjectRelation!] "Delete a specific object relation or all relations for an object. Returns the number of relations deleted." delete_object_relation( "ID of the source object" source_object_id: ID!, "ID of the relation to delete. If not provided, deletes all relations for the source object." relation_id: ID): Int "Connect project to portfolio" connect_project_to_portfolio( "The ID of the project to connect" projectBoardId: ID!, "The ID of the portfolio to connect to" portfolioBoardId: ID!): ConnectProjectResult "Create a new portfolio" create_portfolio(boardName: String!, boardPrivacy: String!, destinationWorkspaceId: Int): CreatePortfolioResult "Update attributes (Job Role, Skills, or Location) for multiple resources in the directory" update_directory_resources_attributes( "The attribute type to update (JOB_ROLE, SKILLS, or LOCATION)" attribute: DirectoryResourceAttribute!, "The values of the attribute to update" values: [String!]!, "List of resource IDs to update" resource_ids: [ID!]!): UpdateDirectoryResourceAttributesResponse "Enroll multiple items to a single sequence. Maximum 50 items per request." enroll_items_to_sequence( "Input for enrolling multiple items to a single sequence" input: EnrollToSequenceInput!): EnrollToSequenceResult "Creates a new team." create_team(input: CreateTeamAttributesInput!, options: CreateTeamOptionsInput): Team "Activates the specified users." activate_users( "The ids of the users to activate. (Limit: 200)" user_ids: [ID!]!): ActivateUsersResult "Deactivates the specified users." deactivate_users( "The ids of the users to deactivate. (Limit: 200)" user_ids: [ID!]!): DeactivateUsersResult "Deletes the specified team." delete_team( "The team to be deleted." team_id: ID!): Team "Updates the role of the specified users." update_users_role( "The ids of the users to update. (Limit: 200)" user_ids: [ID!]!, "The base role name (e.g. admin, member, etc.)" new_role: BaseRoleName, "The ID of a custom role" role_id: ID): UpdateUsersRoleResult "Assigns the specified users as owners of the specified team." assign_team_owners( "The team identifier." team_id: ID!, "The user identifiers (max 200)" user_ids: [ID!]!): AssignTeamOwnersResult "Removes the specified users as owners of the specified team." remove_team_owners( "The team identifier." team_id: ID!, "The user identifiers (max 200)" user_ids: [ID!]!): RemoveTeamOwnersResult "Updates the email domain for the specified users." update_email_domain(input: UpdateEmailDomainAttributesInput!): UpdateEmailDomainResult "Updates attributes for users." update_multiple_users( "List of user updates, each containing an ID and attribute updates." user_updates: [UserUpdateInput!]!, "Whether to bypass email confirmation for claimed domains." bypass_confirmation_for_claimed_domains: Boolean, "Whether to use async mode. If true, the update will be done in the background and can handle more than 200 users at once." use_async_mode: Boolean): UpdateUserAttributesResult "Invite users to the account." invite_users( "The emails of the users to invite." emails: [String!]!, "The new role of the users." user_role: UserRole, "The product to invite the users to" product: Product): InviteUsersResult "Create a new widget." create_widget( "Parent container for the widget (dashboard or board view)." parent: WidgetParentInput!, "The kind of widget to create (i.e CHART, NUMBER, BATTERY, CALENDAR, GANTT)." kind: ExternalWidget!, "The name of the widget." name: String!, "Widget-specific settings as JSON. Each widget type has its own JSON schema that defines the required and optional fields. The settings object must conform to the JSON schema for the specific widget type being created. To discover available widget types and their schemas, use the all_widgets_schema query which returns the complete JSON schema for each supported widget type." settings: JSON!, """ WORKS ONLY IN BOARD VIEWS. Optional filter to apply to the widget data using GraphQL query syntax. Supports filtering by board columns (status, numbers, date, person, etc.) with operators like any_of, greater_than, equals, contains. Structure: { rules: [{ column_id: "status", compare_value: [1, 2], operator: "any_of" }], operator: "and" }. IMPORTANT: Person/People columns require "person-{id}" format (e.g., ["person-3"] not [3]). Status columns use raw indices [0,1,2]. Numbers use raw values [2,43]. Example - Filter by person: { operator: "and", rules: [{ column_id: "project_owner", operator: "any_of", compare_value: ["person-3"] }] } """ filter: ItemsQueryGroup): Widget "Delete an existing widget." delete_widget( "The ID of the widget to delete." id: ID!): Boolean "Create a new dashboard." create_dashboard( "Human-readable dashboard title (UTF-8 chars)." name: String!, "ID of the workspace that will own the dashboard." workspace_id: ID!, "List of board IDs as strings (min 1 element)." board_ids: [ID!]!, "Visibility level: `PUBLIC` or `PRIVATE`, default value is `PRIVATE`." kind: DashboardKind, "Folder ID within the workspace in which to place the dashboard." board_folder_id: ID): Dashboard "Update an existing dashboard." update_dashboard( "The ID of the dashboard to update." id: ID!, "Human-readable dashboard title (UTF-8 chars)." name: String, "The ID of the workspace to update the dashboard in." workspace_id: ID, "Visibility level: `PUBLIC` or `PRIVATE`." kind: DashboardKind, "Folder ID within the workspace in which to place the dashboard." board_folder_id: ID): Dashboard "Delete an existing dashboard." delete_dashboard( "The ID of the dashboard to delete." id: ID!): Boolean "Update form properties including title, description, or question order." update_form( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "Complete form configuration object containing properties to create or update." input: UpdateFormInput!): ResponseForm "Update form configuration including features, appearance, and accessibility options." update_form_settings( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "Complete form settings object containing all configuration options." settings: UpdateFormSettingsInput!): ResponseForm "Create a new question within a form. Returns the created question with auto-generated ID." create_form_question( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "Complete question object containing all properties for creation or update." question: CreateQuestionInput!): FormQuestion "Update an existing question properties including title, type, or settings. Requires question ID." update_form_question( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "The unique identifier for the question. Used to target specific questions within a form." questionId: String!, "Complete question object containing all properties for creation or update." question: UpdateQuestionInput!): FormQuestion "Permanently remove a question from a form. This action cannot be undone." delete_question( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "The unique identifier for the question. Used to target specific questions within a form." questionId: String!): Boolean "Activate a form to make it visible to users and accept new submissions." activate_form( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!): Boolean "Deactivate a form to hide it from users and stop accepting submissions. Form data is preserved." deactivate_form( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!): Boolean "Shorten a URL for a form and store it in the form settings. Returns the shortened link object." shorten_form_url( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!): FormShortenedLink "Create a new tag for a form. Tags are used to categorize and track responses. (e.g. UTM tags)" create_form_tag( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "The tag data to create" tag: CreateFormTagInput!): FormTag "Update an existing tag in a form" update_form_tag( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "The unique identifier for the tag" tagId: String!, "The tag data to create" tag: UpdateFormTagInput!): Boolean @deprecated(reason: "Updating tag values is no longer supported after version 2026-07.") "Delete a tag from a form" delete_form_tag( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "The unique identifier for the tag" tagId: String!, "Options for deleting the tag" options: DeleteFormTagInput): Boolean "Create a new form with specified configuration. Returns the created form with its unique token." create_form( "The workspace in which the form will be created in." destination_workspace_id: ID!, "The folder in which the form will be created under." destination_folder_id: ID, "The name of the folder in which the form will be created in." destination_folder_name: String, "The board kind to create for the board in which the form will create items in." board_kind: BoardKind, "The name of the board that will be created to store the form responses in." destination_name: String, "Array of user IDs who will have owner permissions on the board in which the form will create items in." board_owner_ids: [ID!], "Array of team IDs whose members will have owner permissions on the board in which the form will create items in." board_owner_team_ids: [ID!], "Array of user IDs who will receive notifications about board activity for the board in which the form will create items in." board_subscriber_ids: [ID!], "Array of team IDs whose members will receive notifications about board activity for the board in which the form will create items in." board_subscriber_teams_ids: [ID!]): DehydratedFormResponse "Set a password on a form to restrict access. This will enable password protection for the form." set_form_password( "The unique identifier token for the form. Required for all form-specific operations." formToken: String!, "The password to set for the form. Must be at least 1 character long." input: SetFormPasswordInput!): ResponseForm } "A date." scalar Date "Result of executing an integration block" type IntegrationExecutionResult { "The output fields returned by the integration block execution" output_fields: JSON } "An ISO 8601-encoded datetime (e.g., 2024-04-09T13:45:30Z)" scalar ISO8601DateTime "A JSON formatted string." scalar JSON "A file" scalar File type AuditEventCatalogueEntry { name: String description: String metadata_details: JSON } type AuditLogEntry { timestamp: String account_id: String user: User event: String slug: String ip_address: String user_agent: String client_name: String client_version: String os_name: String os_version: String device_name: String device_type: String activity_metadata: JSON } """ A paginated collection of audit log entries. This object contains two properties: logs, the requested page of AuditLogEntry objects matching your query, and pagination, which contains metadata about the current and next page (if present). """ type AuditLogPage { """ List of audit log entries for the current page. See the audit log entry object for more details on this object. """ logs: [AuditLogEntry!] "Pagination metadata. See the pagination object for more details." pagination: Pagination } """ Pagination metadata: indicates the current page and page size, whether there are more pages, and the next page number if one exists. Note that the page size reflects the number of items requested, not the number of items returned. """ type Pagination { "Current page number (1-based)" page: Int "Number of items per page" page_size: Int "Indicates if there are more pages available" has_more_pages: Boolean "Number of the next page" next_page_number: Int } "Represents an integration connection between a monday.com account and an external service." type Connection { "Unique identifier of the connection." id: Int "Identifier of the monday.com account that owns the connection." accountId: Int "Identifier of the user who created the connection." userId: Int "External service provider of the connection (e.g., gmail, slack)." provider: String "Human-readable display name for the connection." name: String "Authentication method used by the connection (e.g., oauth, token_based)." method: String "Identifier of the linked account at the provider side." providerAccountIdentifier: String "Current state of the connection (e.g., active, inactive)." state: String "ISO timestamp when the connection was created." createdAt: String "ISO timestamp when the connection was last updated." updatedAt: String } "Pagination parameters for queries" input PaginationInput { "Maximum number of results to return" limit: Int "Last ID for cursor-based pagination" lastId: Int } "Aggregated automation runs statistics grouped by entity Ids" type AccountTriggersByEntityId { "Unique identifier for the statistics result" id: ID! "Statistics for automations grouped by automation Id. Returns an object where each key is an automation Id, and the value contains the total count and breakdown by error reason" automation_statistics: JSON "Statistics for workflows grouped by workflow entity Id. Returns an object where each key is a workflow entity Id, and the value contains the total count and breakdown by error reason" workflow_statistics: JSON } "Filters for account triggers statistics by entity Id query" input AccountTriggersByEntityIdFiltersInput { "Filter by board Id" board_id: Int "Exclude statistics for the specified automation Ids" automation_ids: [Int!] "Filter by multiple user Ids" user_ids: [Int!] } "Aggregated automation runs statistics in the account" type AccountTriggerStatistics { "Unique identifier for the statistics result" id: ID! "Number of successful automation runs" success: Int "Number of failed automation runs" failure: Int "Total number of automation runs" total: Int } "Filters for account trigger statistics query" input AccountTriggerStatisticsFiltersInput { "Filter by board Id" board_id: Int "Filter by multiple user Ids" user_ids: [Int!] } "Automation block execution event" type BlockEvent { "Document identifier" id: String "Account identifier" accountId: Int "User identifier who triggered the automation" userId: Int "Board identifier" boardId: Int "Kind of the block event" eventKind: String "Current state of the block event" eventState: String "UUID of the parent trigger event" triggerUuid: String "Timestamp (epoch) when parent trigger started" triggerStarted: Float "Date when parent trigger started" triggerStartedAt: ISO8601DateTime "Timestamp (epoch) when block started" blockStartTimestamp: Float "Timestamp (epoch) when block finished" blockFinishTimestamp: Float "Atomic action identifier" atomicActionId: String "Block title" title: String "Whether block condition was satisfied" conditionSatisfied: Boolean "Workflow node identifier" workflowNodeId: Int "Entity kind for the block" entityKind: String "Number of billing actions counted in this block" billingActionCountForBlock: Int "Error reason if block failed" errorReason: String "Iterator identifier if block is part of a loop" iterator_id: ID "Current iteration number within the loop" current_iteration: Int "Total number of iterations configured for the loop" max_iterations: Int } "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point)." scalar Float "A page of block events" type BlockEventsPage { "List of block events in the current page" blockEvents: [BlockEvent!] } "Date range filter (inclusive)" input DateRangeInput { "Start date (ISO 8601)" startDate: String! "End date (ISO 8601)" endDate: String! } "MCP tool execution event" type ToolEvent { "Document identifier" id: ID "Account identifier" account_id: ID "User identifier" user_id: ID "UUID of the parent trigger event" trigger_uuid: String "Atomic action identifier" atomic_action_id: ID "Recipe identifier" recipe_id: ID "Integration identifier" integration_id: ID "Name of the MCP tool" tool_name: String "MCP server name" mcp_server: String "Status of the tool execution" event_status: String "Error message if tool execution failed" error_message: String "Timestamp (epoch) when tool execution started" tool_start_timestamp: Float "Timestamp (epoch) when tool execution finished" tool_finish_timestamp: Float "Execution duration in milliseconds" execution_duration_ms: Int } "A page of tool events" type ToolEventsPage { "List of tool events in the current page" tool_events: [ToolEvent!] } "Represents a single automation trigger event" type TriggerEvent { "Account identifier" accountId: Int "Trigger UUID" triggerUuid: String "Kind of the event" eventKind: String "Current state of the event" eventState: String "Timestamp (epoch) when trigger started" triggerStarted: Float "Date when trigger started" triggerStartedAt: ISO8601DateTime "Creation time of the record" createdAt: ISO8601DateTime "Error reason if the event failed" errorReason: String "Number of billing actions counted for this trigger" billingActionsCount: Int "Waiting trigger name, when applicable" waitingForTriggerName: String "Duration of the trigger in milliseconds" triggerDuration: Float "Entity kind for the trigger (item / subitem / etc.)" entityKind: String "Reignition subscription ID if trigger was reignited" reignitionSubscriptionId: String "Host type on which the automation is executed" hostType: String "Host instance ID" hostInstanceId: String "Original creator feature reference ID" creatorAppFeatureReferenceId: String } "Filters for querying trigger events" input TriggerEventsFiltersInput { "Date range filter" dateRange: DateRangeInput "Filter by entity kind" entityKind: String "Filter by automation IDs" automationIds: [Int!] "Filter by workflow entity IDs" workflowEntityIds: [Int!] "Filter by event state" stateFilter: [String!] "Filter by item identifier" itemId: String "Whether to filter only monday automations" filterByEntity: Boolean "True if entity is automation" isAutomationsEntity: Boolean "Filter by app names" appFilter: [String!] "Filter by host type" hostType: String "Filter by host instance identifier" hostInstanceId: String "Filter by creator app feature reference ID" creatorAppFeatureReferenceId: Int "Billing action count field to filter by" billingActionCountField: String "Whether workflow filter is applied" isWorkflowFilter: Boolean "Filter by board identifier" boardId: String "Filter by status" statusFilter: [String!] } "A page of trigger events and pagination data" type TriggerEventsPage { "List of trigger events in the current page" triggerEvents: [TriggerEvent!] } "Automation run status" enum TriggerEventState { "Automation run completed successfully" success "Automation run failed" failure "Automation run exhausted all retry attempts" exhausted } "A monday.com board." type Board { "The unique identifier of the board." id: ID! "The board's views." views( "A list of view unique identifiers." ids: [ID!], "The view's type" type: String): [BoardView] "The board's updates." updates( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1, "A list of items unique identifiers." ids: [ID!], "Should include only board-level updates." board_updates_only: Boolean, from_date: ISO8601DateTime, to_date: ISO8601DateTime): [Update!] "The board's visible columns." columns( "A list of column unique identifiers." ids: [String], "A list of column types." types: [ColumnType!], "A list of column capabilities to filter by. Returns columns that have any of the specified capabilities. Use null in the array to represent columns with no capabilities (e.g., [null] for only columns without capabilities, [null, CALCULATED] for columns without capabilities or with calculated)." capabilities: [ColumnCapability] = [null,VISIBILITY]): [Column] "The user's permission level for this board (view / edit)." access_level: BoardAccessLevel! "The board log events." activity_logs( "Column ids to filter" column_ids: [String], "From timestamp (ISO8601)" from: ISO8601DateTime, "Group ids to filter" group_ids: [String], "Item id to filter" item_ids: [ID!], "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1, "To timestamp (ISO8601)" to: ISO8601DateTime, "User ids to filter." user_ids: [ID!]): [ActivityLogType] "The board's folder unique identifier." board_folder_id: ID "The board's kind (public / private / share)." board_kind: BoardKind! "The board's columns namespace." columns_namespace: String "Get the board communication value - typically meeting ID" communication: JSON "The time the board was created at." created_at: ISO8601DateTime "The board's source board unique identifier (the board from which this board was created)" created_from_board_id: ID "The creator of the board." creator: User! "The board's description." description: String "The folder that contains this board, or null if it isn't in any folder." folder: Folder "The board's visible groups." groups( "A list of group unique identifiers." ids: [String]): [Group] "The hierarchy type of the board" hierarchy_type: BoardHierarchy "The Board's item nickname, one of a predefined set of values, or a custom user value" item_terminology: String "The number of items on the board" items_count: Int "The maximum number of items this board can have" items_limit: Int "The board's items (rows)." items_page( """ An opaque token representing the position in the result set from which to resume fetching items. Use this to paginate through large result sets. """ cursor: String, "The hierarchy config to use for the query filters." hierarchy_scope_config: String, """ The maximum number of items to fetch in a single request. Use this to control the size of the result set and manage pagination. Maximum: 500. """ limit: Int! = 25, """ A set of parameters to filter, sort, and control the scope of the items query. Use this to customize the results based on specific criteria. """ query_params: ItemsQuery): ItemsResponse! "The board's name." name: String! "The Board's object type unique key" object_type_unique_key: String "The owner of the board." owner: User! @deprecated(reason: "This field returned creator of the board. Please use 'creator' or 'owners' fields instead.") "List of user board owners" owners: [User]! "The board's permissions." permissions: String! "The board's state (all / active / archived / deleted)." state: State! "The board's subscribers." subscribers: [User]! "The board's specific tags." tags: [Tag] "List of team board owners" team_owners( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [Team!] "The board's team subscribers." team_subscribers( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [Team!] "The top group at this board." top_group: Group! "The board object type." type: BoardObjectType "The last time the board was updated at." updated_at: ISO8601DateTime "The Board's url" url: String! "The workspace that contains this board (null for main workspace)." workspace: Workspace "The board's workspace unique identifier (null for main workspace)." workspace_id: ID } "A board's view." type BoardView { "The view's unique identifier." id: ID! "The view's name." name: String! "The view's type." type: String "The view's settings in a string form." settings_str: String! "Specific board view data (supported only for forms)" view_specific_data_str: String! "The view's template id if it was duplicated from other view" source_view_id: ID "The view's settings, the structure varies by view type" settings: JSON "The view's sort" sort: JSON "The view's filter user id" filter_user_id: Int "The view's filter team id" filter_team_id: Int "The view's tags" tags: [String!] "The view's filter" filter: JSON "The view's access level" access_level: BoardViewAccessLevel! } "The board view access level of the user" enum BoardViewAccessLevel { "View" view "Edit" edit } input ColumnPropertyInput { "The ID of the column" column_id: String! "Whether the column is visible" visible: Boolean! } input ColumnsConfigInput { "Configuration for main board columns" column_properties: [ColumnPropertyInput!] "Configuration for subitems columns" subitems_column_properties: [ColumnPropertyInput!] "Number of floating columns to display" floating_columns_count: Int "Order of columns" column_order: [String!] } "A string or number value for comparison" scalar CompareValue "Configuration settings for group by column" input GroupByColumnConfigInput { "Sort settings for the column" sortSettings: GroupBySortSettingsInput } "Condition for grouping items by column" input GroupByConditionInput { "ID of the column to group by" columnId: String! "Configuration for the group by column" config: GroupByColumnConfigInput } "Settings for grouping board items" input GroupBySettingsInput { "List of conditions for grouping items" conditions: [GroupByConditionInput!]! "Whether to hide groups with no items" hideEmptyGroups: Boolean } "Sort settings for group by configuration" input GroupBySortSettingsInput { "Sort direction for the group" direction: SortDirection! "Type of sorting to apply" type: String } "Sort direction" enum ItemsOrderByDirection { "Ascending order" asc "Descending order" desc } "A group of rules or rule groups" input ItemsQueryGroup { "A list of rules" rules: [ItemsQueryRule!] "A list of rule groups" groups: [ItemsQueryGroup!] "The operator to use for the query rules or rule groups. Default: AND" operator: ItemsQueryOperator = and } "Logical operator" enum ItemsQueryOperator { "Logical OR" or "Logical AND" and } "Sort the results by specified columns" input ItemsQueryOrderBy { column_id: String! "Sort direction (defaults to ASC)" direction: ItemsOrderByDirection = asc } "A rule to filter items by a specific column" input ItemsQueryRule { column_id: ID! compare_value: CompareValue! compare_attribute: String operator: ItemsQueryRuleOperator = any_of } "Rule operator" enum ItemsQueryRuleOperator { "Any of the values" any_of "None of the values" not_any_of "Empty value" is_empty "Not empty value" is_not_empty "Greater than the value" greater_than "Greater than or equal to the value" greater_than_or_equals "Lower than the value" lower_than "Lower than or equal to the value" lower_than_or_equal "Between the two values" between "Does not contain the text" not_contains_text "Contains the text" contains_text "Contains all the terms" contains_terms "Starts with the value" starts_with "Ends with the value" ends_with "Within the next" within_the_next "Within the last" within_the_last } "Direction for sorting items" enum SortDirection { "Ascending order" ASC "Descending order" DESC } "Settings configuration for table view display options" input TableViewSettingsInput { "Column visibility configuration for the board view" columns: ColumnsConfigInput "The group by to apply to the board view" group_by: GroupBySettingsInput } "Available view types for board displays" enum ViewKind { "Dashboard view for displaying dashboard view" DASHBOARD "Table view for displaying items in a structured table format" TABLE "Form view for input and data entry" FORM "App view for feature-specific display" APP } "Type of mutation operation" enum ViewMutationKind { "Create operation" CREATE "Update operation" UPDATE } "The type of entity that a reaction is attributed to." enum AttributionEntity { "An AI agent" AGENT } "An item (table row)." type Item { "The item's unique identifier." id: ID! "The item's updates." updates( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1, "A list of items unique identifiers." ids: [ID!]): [Update!] "The item's assets/files." assets( "The assets source (all / columns / gallery)" assets_source: AssetsSource, "Ids of the columns you want to get assets from." column_ids: [String]): [Asset] "The board that contains this item." board: Board "The item's column values." column_values( "Capabilities supported by the API." capabilities: [ColumnCapability!], "A list of column ids to return" ids: [String!], "A list of column types to return" types: [ColumnType!]): [ColumnValue!]! "The item's create date." created_at: Date "The item's creator." creator: User "The unique identifier of the item creator." creator_id: String! "The item's description" description: ItemDescription "The item's email." email: String! "The group that contains this item." group: Group "The item's linked items" linked_items( "The id of the link to item column" link_to_item_column_id: String!, "The id of the linked board" linked_board_id: ID!): [Item!]! "The item's name." name: String! "The parent item of a subitem." parent_item: Item "The item's relative path" relative_link: String "The item's state (all / active / archived / deleted)." state: State "The item's subitems." subitems: [Item] "The pulses's subscribers." subscribers: [User]! "The item's last update date." updated_at: Date "The item's link" url: String! } type Like { id: ID! creator_id: String creator: User reaction_type: String "The reference identifier of the entity that created this reaction on behalf of the user, who this reaction should be attributed to (e.g. agent_{agentId})." attribution_entity_ref: String "The type of entity that created this reaction." attribution_entity_type: AttributionEntity created_at: Date updated_at: Date } "The type of the mention." enum MentionType { "Mention a user" User "Mention a team" Team "Mention a project" Project "Mention a board" Board "Mention an AI agent" Agent } "A reply for an update." type Reply { "The reply's unique identifier." id: ID! "The reply's html formatted body." body: String! kind: String! "The unique identifier of the reply creator." creator_id: String edited_at: Date! "The reply's creator." creator: User likes: [Like!]! pinned_to_top: [UpdatePin!]! viewers( "Number of items to get, the default is 100." limit: Int = 100, "Page number to get, starting at 1." page: Int = 1): [Watcher!]! "The reply's creation date." created_at: Date "The reply's last edit date." updated_at: Date "The reply's assets/files." assets: [Asset] "The reply's text body." text_body: String } "An update." type Update { "The update's unique identifier." id: ID! "The update's html formatted body." body: String! "The unique identifier of the update creator." creator_id: String edited_at: Date! "The update's creator." creator: User likes: [Like!]! pinned_to_top: [UpdatePin!]! viewers( "Number of items to get, the default is 100." limit: Int = 100, "Page number to get, starting at 1." page: Int = 1): [Watcher!]! "The update's creation date." created_at: Date "The update's last edit date." updated_at: Date "The update's item ID." item_id: String "The original creation time of the update." original_creation_date: String item: Item "The update's replies." replies: [Reply!] "The update's assets/files." assets: [Asset] "The update's text body." text_body: String } input UpdateMention { "The object id." id: ID! "The type of the mention." type: MentionType! } "The pin to top data of the update." type UpdatePin { item_id: ID! } "The viewer of the update." type Watcher { user_id: ID! medium: String! user: User } type CustomActivity { id: ID type: String name: String icon_id: CustomActivityIcon color: CustomActivityColor } enum CustomActivityColor { VIVID_CERULEAN GO_GREEN PHILIPPINE_GREEN YANKEES_BLUE CELTIC_BLUE MEDIUM_TURQUOISE CORNFLOWER_BLUE MAYA_BLUE SLATE_BLUE GRAY YELLOW_GREEN DINGY_DUNGEON PARADISE_PINK BRINK_PINK YELLOW_ORANGE LIGHT_DEEP_PINK LIGHT_HOT_PINK PHILIPPINE_YELLOW } enum CustomActivityIcon { ASCENDING CAMERA CONFERENCE FLAG GIFT HEADPHONES HOMEKEYS LOCATION PAPERPLANE PLANE NOTEBOOK PLIERS TRIPOD TWOFLAGS UTENCILS } type TimelineItem { id: ID type: String "The item that the timeline item is on." item: Item "The board that the timeline item is on." board: Board "The user who created the timeline item." user: User "The title of the timeline item." title: String "The external ID of the custom activity of the timeline item." custom_activity_id: String "The content of the timeline item." content: String "The creation date of the timeline item." created_at: Date! } type TimelineItemsPage { "The timeline items in the current page" timeline_items: [TimelineItem!]! "Cursor for fetching the next page" cursor: String } input TimelineItemTimeRange { "Start time" start_timestamp: ISO8601DateTime! "End time" end_timestamp: ISO8601DateTime! } type TimelineResponse { "Paginated set of timeline items and a cursor to get the next page" timeline_items_page( "The cursor for the next set of timeline items" cursor: String = null, "The limit for the current page of timeline items" limit: Int = 25): TimelineItemsPage! } "Calculated capability settings for a column" type CalculatedCapability { "Function to calculate the parent values" function: CalculatedFunction! "Type of the calculated value" calculated_type: ColumnType } "Input for configuring calculated capability settings on a column" input CalculatedCapabilityInput { "Function to calculate the values. If not provided, will use the default function for the column type." function: CalculatedFunction! } "Available functions for calculating values in column capabilities" enum CalculatedFunction { "Calculate the minimum value" MIN "Calculate the maximum value" MAX "Calculate the sum of all values" SUM "Calculate both minimum and maximum values for time ranges" MIN_MAX "No calculation" NONE "Count the number of labels" COUNT_KEYS } type Column { "The column's unique identifier." id: ID! "The column's title." title: String! "The column's description." description: String "The column's type." type: ColumnType! "The column's width." width: Int "Is the column archived or not." archived: Boolean! "The column's settings in a JSON form." settings: JSON "The column's settings in a string form." settings_str: String! @deprecated(reason: "From version 2025-10, use settings instead. Will be removed in a future version.") "The revision of the column (fetch to get latest revision). Used for optimistic concurrency control." revision: String! "Capabilities available for this column" capabilities: ColumnCapabilities! } "Capabilities available for a column" type ColumnCapabilities { "Calculated capability settings" calculated: CalculatedCapability "Visibility capability settings" visibility: String } "Input for configuring column capabilities during creation" input ColumnCapabilitiesInput { "Calculated capability settings. If provided, enables calculated functionality for the column." calculated: CalculatedCapabilityInput } "Capabilities supported by the API" enum ColumnCapability { "Capability to show column's calculated value" CALCULATED "Capability to mark column as hidden" VISIBILITY } union ColumnSettings = StatusColumnSettings | DropdownColumnSettings "Types of columns supported by the API" enum ColumnType { "Number items according to their order in the group/board" auto_number "Connect data from other boards" board_relation "Perform actions on items by clicking a button" button "Check off items and see what's done at a glance" checkbox "Manage a design system using a color palette" color_picker "Choose a country" country "Add the item's creator and creation date automatically" creation_log "Add dates like deadlines to ensure you never drop the ball" date "Set up dependencies between items in the board" dependency "Document your work and increase collaboration" doc "Create a dropdown list of options" dropdown "Email team members and clients directly from your board" email "Add files & docs to your item" file "Use functions to manipulate data across multiple columns" formula group "Add times to manage and schedule tasks, shifts and more" hour "Integration is really cool..." integration "Show all item's assignees" item_assignees "Show a unique ID for each item" item_id "Add the person that last updated the item and the date" last_updated "Simply hyperlink to any website" link "Place multiple locations on a geographic map" location "Add large amounts of text without changing column width" long_text "Show and edit columns' data from connected boards" mirror "Add revenue, costs, time estimations and more" numbers "Assign people to improve team work" people "Call your contacts directly from monday.com" phone "Show progress by combining status columns in a battery" progress "Rate or rank anything visually" rating "Get an instant overview of where things stand" status "Add tags to categorize items across multiple boards" tags "Assign a full team to an item " team "Add textual information e.g. addresses, names or keywords" text "Visualize your item’s duration, with a start and end date" timeline "Easily track time spent on each item, group, and board" time_tracking "Vote on an item e.g. pick a new feature or a favorite lunch place" vote "Select the week on which each item should be completed" week "Keep track of the time anywhere in the world" world_clock "Unsupported column type" unsupported "Name is really cool..." name "Assign a person to increase ownership and accountability (deprecated)" person "Document your work and increase collaboration" direct_doc "Use the subtasks column to create another level of tasks" subtasks } input CreateDropdownColumnSettingsInput { labels: [CreateDropdownLabelInput!]! "Whether to limit the number of labels that can be selected" limit_select: Boolean "Maximum number of labels that can be selected when limit_select is enabled" label_limit_count: Int } input CreateDropdownLabelInput { label: String! } input CreateStatusColumnSettingsInput { labels: [CreateStatusLabelInput!]! } input CreateStatusLabelInput { label: String! color: StatusColumnColors! index: Int! description: String is_done: Boolean } type DropdownColumnSettings { type: ManagedColumnTypes labels: [DropdownLabel!] } type DropdownLabel { id: Int label: String is_deactivated: Boolean } type DropdownManagedColumn { id: String title: String description: String settings_json: JSON created_by: ID updated_by: ID revision: Int state: ManagedColumnState "The date and time of creation." created_at: Date "The date and time of the last update." updated_at: Date settings: DropdownColumnSettings } "Overridable settings for dropdown columns attached to a managed column." input DropdownSettingsOverridesInput { "Whether to limit the number of selectable labels." limit_select: Boolean "Maximum number of labels that can be selected when limit_select is enabled." label_limit_count: Int } type ManagedColumn { id: String title: String description: String settings_json: JSON created_by: ID updated_by: ID revision: Int state: ManagedColumnState "The date and time of creation." created_at: Date "The date and time of the last update." updated_at: Date settings: ColumnSettings } enum ManagedColumnState { active deleted inactive } enum ManagedColumnTypes { status dropdown } "Input for configuring calculated capability settings on a status column" input StatusCalculatedCapabilityInput { "Function to calculate the values. For status columns, only COUNT_KEYS function is supported." function: StatusCalculatedFunction! } "Available functions for calculating values in status column capabilities" enum StatusCalculatedFunction { "Count the number of labels" COUNT_KEYS } "Input for configuring status column capabilities during creation" input StatusColumnCapabilitiesInput { "Calculated capability settings. If provided, enables calculated functionality for the status column." calculated: StatusCalculatedCapabilityInput } enum StatusColumnColors { working_orange done_green stuck_red dark_blue purple explosive grass_green bright_blue saladish egg_yolk blackish dark_red sofia_pink lipstick dark_purple bright_green chili_blue american_gray brown dark_orange sunset bubble peach berry winter river navy aquamarine indigo dark_indigo pecan lavender royal steel orchid lilac tan sky coffee teal } type StatusColumnSettings { type: ManagedColumnTypes labels: [StatusLabel!] } type StatusLabel { id: Int label: String color: StatusColumnColors index: Int description: String is_deactivated: Boolean is_done: Boolean } type StatusManagedColumn { id: String title: String description: String settings_json: JSON created_by: ID updated_by: ID revision: Int state: ManagedColumnState "The date and time of creation." created_at: Date "The date and time of the last update." updated_at: Date settings: StatusColumnSettings } input UpdateDropdownColumnSettingsInput { labels: [UpdateDropdownLabelInput!]! "Whether to limit the number of labels that can be selected" limit_select: Boolean "Maximum number of labels that can be selected when limit_select is enabled" label_limit_count: Int } input UpdateDropdownLabelInput { label: String! id: Int is_deactivated: Boolean } input UpdateStatusColumnSettingsInput { labels: [UpdateStatusLabelInput!]! } input UpdateStatusLabelInput { label: String! color: StatusColumnColors! index: Int! description: String is_done: Boolean id: Int is_deactivated: Boolean } "List of required column IDs for a board" type RequiredColumns { "Array of required column IDs" required_column_ids: [String!]! } type Validations { "Array of required column IDs" required_column_ids: [String!] "Validation rules" rules: JSON } enum ValidationsEntityType { board } "Result of assigning members to a department." type AssignDepartmentMembersResult { "The users that were successfully assigned to the department." successful_users: [User!] "The users that were not assigned to the department." failed_users: [User!] } "Result of assigning an owner to a department." type AssignDepartmentOwnerResult { "The user ID of the owner that was assigned to the department." owner: User } "Result of clearing users department." type ClearUsersDepartmentResult { "The users that their department was cleared." cleared_users: [User!] } "Data for creating a department." input CreateDepartmentDataInput { "The name of the department." name: String! "The number of reserved seats for the department." reserved_seats: Int } "A department in the account." type Department { "The department's ID." id: ID! "The department's name." name: String! "The number of seats reserved for the department." reserved_seats: Int! "The number of seats assigned to the department." assigned_seats: Int! "The members of the department" members: [User!] "The owners of the department" owners: [User!] } "Result of unassigning owners from a department." type UnassignDepartmentOwnerResult { "The user IDs of the owners that were unassigned from the department." unassigned_users: [User!] } "Options for updating a department." input UpdateDepartmentOptionsInput { "The new name of the department." name: String "The new number of reserved seats for the department." reserved_seats: Int } "The complete graph export for a board" type BoardGraphExport { "The ID of the board" boardId: String "The graph data structure" graphData: JSON "The timestamp when the graph was exported" exportedAt: String "The total number of nodes in the graph" nodeCount: Int "The total number of edges in the graph" edgeCount: Int "The attributes of the graph" graphAttributes: JSON "The cycles in the graph" cycles: JSON } "Configuration record for a dependency column" type DependencyColumnConfig { "The ID of the configuration record" id: ID "The account ID" account_id: ID "The board ID" board_id: ID "Configuration data containing mode and is_new_dependency" data: JSON "Creation timestamp" created_at: String "Last update timestamp" updated_at: String """ The type of configuration (always "dependency") """ config_type: String } "Result containing dependency column configurations for a board" type DependencyColumnConfigResult { "The ID of the board" board_id: ID "Array of dependency column configurations" dependency_columns: [DependencyColumnConfig!] } "Input type for updating a single pulse dependency value" input DependencyPulseValueInput { "The ID of the pulse to update the dependency value for" pulseId: ID! "The value of the dependency pulse value to update" value: DependencyValueInput! } "Type of dependency relationship between items" enum DependencyRelation { "Finish to Start - The dependent item can start only after the predecessor finishes" FS "Start to Finish - The dependent item can finish only after the predecessor starts" SS "Finish to Finish - The dependent item can finish only after the predecessor finishes" FF "Start to Start - The dependent item can start only after the predecessor starts" SF } "Input type for updating dependency column value, supporting both adding and removing dependencies" input DependencyValueInput { "List of pulses to add as dependencies with their configuration" added_pulse: [UpdateDependencyColumnInput!] "List of pulses to remove from dependencies" removed_pulse: [UpdateDependencyColumnInput!] } "A single event record" type Event { "The unique identifier of the event" id: ID "The type of the event" type: String "The current state of the event" state: String "The ID of the board associated with this event" board_id: ID "The event data payload" event_data: JSON "The timestamp of the origin last update" origin_last_updated: String "The timestamp when the event was created" created_at: String "The timestamp when the event was last updated" updated_at: String } "Paginated export of events" type EventsExport { "The list of events" events: [Event!] "The total number of events matching the query" total: Int "The maximum number of events returned" limit: Int "The offset from which events are returned" offset: Int } "Metadata wrapper containing payload information for dependency configuration" input MetadataInput { "The dependency configuration payload containing type and lag settings" payload: PayloadInput } "Input type for dependency metadata payload containing dependency type and lag configuration" input PayloadInput { "Type of dependency relationship between the items" dependency_type: DependencyRelation "Number of days offset between the dependent items (can be negative)" lag: Int } "Input type for timeline dates with from and to date strings" input TimelineDateInput { "The ID of the successor pulse whose date should be updated" id: ID! "Start date of the timeline in ISO format" from: String! "End date of the timeline in ISO format" to: String! } "Input type for updating a single dependency relationship between pulses" input UpdateDependencyColumnInput { "The ID of the pulse to create or remove a dependency relationship with" linkedPulseId: ID! "Optional metadata containing dependency configuration (type and lag)" metadata: MetadataInput } "The Article is the main object type of monday.com Knowledge product. A collaborative article that can contain rich text, media, and structured content. Articles have both draft and published versions, and are organized within workspaces and folders, with configurable privacy settings and access controls. They support features like version history, real-time collaboration, and can be shared with specific users or teams. Articles are commonly used for documentation, knowledge sharing, and team collaboration." type Article { "The Article is the main object type of monday.com Knowledge product. Article Metadata is a subset of the Article object that contains only the metadata of the article, not the article itself. It is used to get the metadata of an article without having to fetch the article itself." metadata: ArticleMetadata "The content blocks that make up the article." blocks: [ArticleBlock!] } "The content blocks that make up the article." type ArticleBlock { "The block's unique identifier." id: ID "The block's content." content: JSON "The block's creation date." created_at: String "The block's creator" created_by: User "The unique identifier of the published article that contains this block." published_article_id: ID "The block's parent block unique identifier. Will be null if the block is at the top level of the article." parent_block_id: ID "The block's position on the article." position: Float "The block content type." type: String "The block's last updated date." updated_at: String } "The Article is the main object type of monday.com Knowledge product. Article Metadata is a subset of the Article object that contains only the metadata of the article, not the article itself. It is used to get the metadata of an article without having to fetch the article itself." type ArticleMetadata { "The unique identifier of the article object. Can be used to reference this specific object in queries and mutations. This ID can be found in the article's URL." object_id: ID "The ID of the draft version of this article." draft_article_id: ID "The ID of the published version of this article." published_article_id: ID "The display name of the article. This is what appears in the monday.com interface." name: String "The kind/visibility setting of the article (private, public). Determines who can access it." privacy_kind: String "The ID of the workspace containing this article." workspace_id: ID "The ID of the folder containing this article, if the article is organized in a folder structure." folder_id: ID "Timestamp of when the article was last updated. Format is ISO 8601." updated_at: String "The current state of the article. Determines visibility in the interface." state: String "The ID of the user who created this article. Useful for tracking article origin." creator: ID "List of users who are owners of this article. Owners have full control permissions." owners: [User!] "List of users who are subscribers to this article. Subscribers receive notifications about changes." subscribers: [User!] } "Describes what type of change occurred to a block between two versions." type BlockChanges { "True if this block was added in the newer version." added: Boolean "True if this block was deleted in the newer version. The content reflects the state before deletion." deleted: Boolean "True if this block content was modified between the two versions." changed: Boolean } "A document block that was changed between two versions, including its content and what type of change occurred." type DiffBlock { "The unique identifier of the block." id: ID "The type of block (e.g., text, image, list)." type: String "The block content as a JSON string." content: String "A human-readable summary of what changed in this block. For text blocks, shows the added and deleted text. For other block types, describes the change type." summary: String "The parent block ID, or null if the block is at the top level." parent_block_id: ID "The changes that occurred to this block (added, deleted, or changed)." changes: BlockChanges } "Response from adding markdown content to a document. Contains success status and the IDs of newly created blocks." type DocBlocksFromMarkdownResult { "True if markdown was successfully converted and added to the document" success: Boolean! "Array of block IDs that were created from the markdown content. Use these IDs to reference or modify the newly created blocks." block_ids: [String!] "Detailed error message if the operation failed. Check this when success is false." error: String } "The kind/type of document access level" enum DocKind { "Private document" private "Public document" public "Shareable document" share } "A single restoring point (snapshot) in the document version history. Represents a group of changes made within a time window, including which users made changes." type DocRestoringPoint { "The ISO 8601 timestamp of when this restoring point was captured." date: String "The IDs of users who made changes in this restoring point time window." user_ids: [ID!] """ The type of restoring point. "publish" indicates the document was published at this point. Null for regular edit snapshots. """ type: String "AI agents that contributed changes in this restoring point time window." agent_attributions: [RestoringPointAgentAttribution!] } """ Represents a monday.com doc - a rich-text page built from editable blocks (text, files, embeds, etc.). A doc can belong to: (1) a workspace (left-pane doc), (2) an item (doc on column), (3) a board view (doc as a board view). """ type Document { """ Unique document ID returned when the doc is created. Use this ID in every API call that references the doc. How to find it: • Call the docs() GraphQL query with object_ids to map object_id → id • Enable 'Developer Mode' in monday.labs to display it inside the doc. """ id: ID! """ Identifier that appears in the doc's URL. Returned on creation, but DO NOT use it in API routes that expect a document ID. """ object_id: ID! "The document's content blocks" blocks( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [DocumentBlock] "The document's creation date." created_at: Date "The document's creator" created_by: User "The document's folder unique identifier (null for first level)." doc_folder_id: ID "The document's kind (public / private / share)." doc_kind: BoardKind! "The document's name." name: String! "The document's relative url" relative_url: String "The document's settings." settings: JSON "The document's last updated date." updated_at: Date "The document's direct url" url: String "The workspace that contains this document (null for main workspace)." workspace: Workspace "The document's workspace unique identifier (null for main workspace)." workspace_id: ID } "Represents the diff between two versions of a document. Contains the blocks that were added, deleted, or changed between two restoring points." type DocVersionDiff { "The ID of the document this diff belongs to." doc_id: ID "The newer version date used for this diff." date: String "The older version date used for this diff." prev_date: String "The list of blocks that have changes between the two versions. Only blocks with actual changes are included." blocks: [DiffBlock!] } "Represents the version history of a document, including a list of restoring points (snapshots) that capture the state of the document at specific points in time." type DocVersionHistory { "The ID of the document this version history belongs to." doc_id: ID "The list of restoring points (snapshots) for this document, ordered by date descending." restoring_points: [DocRestoringPoint!] } "Controls what gets copied when duplicating a document" enum DuplicateType { "Creates a clean copy with only the document structure and content blocks. Best for creating templates or fresh copies." duplicate_doc_with_content "Creates a complete copy including document structure, content blocks, and all comments/update history. Use for full backups." duplicate_doc_with_content_and_updates } "Response from exporting document content as markdown. Contains the generated markdown text or error details." type ExportMarkdownResult { "True if document content was successfully exported as markdown" success: Boolean! "The exported markdown content as a string. Ready to use in other systems or save to files." markdown: String "Detailed error message if the export failed. Check this when success is false." error: String } "Response from importing an HTML document. Contains success status and the ID of the newly created document." type ImportDocFromHtmlResult { "True if HTML was successfully converted and imported as a new document" success: Boolean! "The ID of the newly created document. Use this ID to reference or modify the imported document." doc_id: String "Detailed error message if the operation failed. Check this when success is false." error: String } "The kind/visibility setting of the article (private, public). Determines who can access it." enum PrivacyKind { "Private objects are only visible to specific users who are members of the object." PRIVATE "Public objects are visible to all users within the account, unless their access is blocked on a higher level in the hierarchy, or by specific object permission." PUBLIC } "An AI agent that contributed changes in this restoring point time window." type RestoringPointAgentAttribution { "The ID of the agent that made changes." agent_id: ID """ The type of entity (e.g. "agent", "workflow"). """ entity_type: String "The display name of the agent, if available." agent_name: String } "Knowledge base answer generated from snippets using LLM." type KnowledgeBaseAnswer { "List of knowledge base snippets used to generate the answer." raw_snippets: [SnippetSearchResult!] "LLM-generated answer based on the knowledge base snippets." answer: String } "A knowledge base for monday.com which returns a list of snippet search results containing document content and metadata." type SnippetSearchResult { "The unique identifier of the snippet." id: ID! "The title of the article." title: String "The content of the snippet." text: String "The parent document ID." parent_id: ID "When the snippet was created." created_at: String "When the snippet was last updated." updated_at: String "The vector distance score. Lower is better. value between 0 and 1." distance: Float "The URL of the source article." url: String } "Input type for adding an object to a hierarchy list" input CreateFavoriteInput { "The object to add to the list" object: HierarchyObjectIDInputType! "The name of the object" name: String "The position where to add the object" newPosition: ObjectDynamicPositionInput } "Represents the response when adding an object to a list" type CreateFavoriteResultType { "The favorite item that was created" favorite: GraphqlHierarchyObjectItem "If the object that was created is a folder, this is extra data about the folder" folder: GraphqlFolder } "Input type for removing an object from favorites" input DeleteFavoriteInput { "The object to remove from favorites" object: HierarchyObjectIDInputType! } "Result type for removing an object from favorites" type DeleteFavoriteInputResultType { "Whether the object was successfully removed" success: Boolean } "Represents a folder in the hierarchy" type GraphqlFolder { "The unique identifier of the folder" id: ID "The account identifier this folder belongs to" accountId: ID "The name of the folder" name: String "The timestamp when this folder was created" createdAt: Date "The timestamp when this folder was last updated" updatedAt: Date "The user who created this folder" createdBy: ID "The app feature slug associated with this folder" app_feature_slug: String } "Represents an item in favorites" type GraphqlHierarchyObjectItem { "The unique identifier of the hierarchy item" id: ID "The account identifier this item belongs to" accountId: ID "The object identifier and type" object: HierarchyObjectID "The folder identifier if the item is contained within a folder" folderId: ID "The position of the item within its list or folder" position: Float "The timestamp when this item was created" createdAt: Date "The timestamp when this item was last updated" updatedAt: Date } "Represents a monday object." enum GraphqlMondayObject { "A monday.com board" Board "A monday.com folder" Folder "Aggregates data from one or more boards." Dashboard "A monday.com workspace" Workspace } "Represents a monday object identifier with its type" type HierarchyObjectID { "The unique identifier of the object" id: ID "The type of the object" type: GraphqlMondayObject } "Input type for identifying a favorites object by its ID and type" input HierarchyObjectIDInputType { "The ID of the object" id: ID! "The type of the object" type: GraphqlMondayObject! } input ObjectDynamicPositionInput { "The previous object in the list" prevObject: HierarchyObjectIDInputType "The next object in the list" nextObject: HierarchyObjectIDInputType } "Represents the response when adding an object to a list" type UpdateFavoriteResultType { "The favorite item that its position was updated" favorite: GraphqlHierarchyObjectItem } input UpdateObjectHierarchyPositionInput { "The favorite's object to update" object: HierarchyObjectIDInputType! "The new folder ID to move the object to, if necessary" newFolder: ID "The new position for the object" newPosition: ObjectDynamicPositionInput } "Subscription object" type AppSubscriptionDetails { "The ID of an account" account_id: Int! "The ID of a pricing plan" plan_id: String! "The ID of a pricing version" pricing_version_id: Int! "The monthly price of the product purchased in the given currency, after applying discounts" monthly_price: Float! "The currency, in which the product was purchased" currency: String! period_type: SubscriptionPeriodType! "The date the active subscription is set to renew. Equals to null for inactive subscriptions" renewal_date: String "The date the the inactive subscription ended. Equals to null for active subscriptions" end_date: String status: SubscriptionStatus! discounts: [SubscriptionDiscount!]! "The number of days left until the subscription ends" days_left: Int! "The subscribed unit quantity. Null for feature-based plans" max_units: Int } type AppSubscriptions { subscriptions: [AppSubscriptionDetails!]! "Total number of subscriptions matching the given parameters" total_count: Int! "The value, which identifies the exact point to continue fetching the subscriptions from" cursor: String } "A granted marketplace app discount offer" type CreateMarketplaceAppDiscount { "Number of days a discount will be valid" days_valid: Int! "Percentage value of a discount" discount: Int! "Is discount recurring" is_recurring: Boolean! "The period of a discount" period: DiscountPeriod "List of app plan ids" app_plan_ids: [ID!] "The id of an app" app_id: ID! } "Input data for creating a marketplace app discount" input CreateMarketplaceAppDiscountInput { "Number of days a discount will be valid" days_valid: Int! "Percentage value of a discount" discount: Int! "The period of a discount" period: DiscountPeriod "List of app plan ids" app_plan_ids: [ID!]! } "Result of granting a marketplace app discount offer" type CreateMarketplaceAppDiscountResult { "The granted discount offer" granted_discount: CreateMarketplaceAppDiscount! } type DeleteMarketplaceAppDiscount { "Slug of an account" account_slug: String! "The id of an app" app_id: ID! } type DeleteMarketplaceAppDiscountResult { deleted_discount: DeleteMarketplaceAppDiscount! } "The period of a discount" enum DiscountPeriod { MONTHLY YEARLY } type GrantMarketplaceAppDiscount { "Number of days a discount will be valid" days_valid: Int! "Percentage value of a discount" discount: Int! "Is discount recurring" is_recurring: Boolean! period: DiscountPeriod "List of app plan ids" app_plan_ids: [String!]! "The id of an app" app_id: ID! } input GrantMarketplaceAppDiscountData { "Number of days a discount will be valid" days_valid: Int! "Percentage value of a discount" discount: Int! "Is discount recurring" is_recurring: Boolean! "The period of a discount" period: DiscountPeriod "List of app plan ids" app_plan_ids: [String!]! } type GrantMarketplaceAppDiscountResult { granted_discount: GrantMarketplaceAppDiscount! } input MarketplaceAiSearchInput { "The search query term" query: String! "Maximum number of search results to return" limit: Int } type MarketplaceAiSearchResult { "The ID of the marketplace app" marketplace_app_id: ID! "The name of the marketplace app" name: String! "How well the app matches the user query (0-100)" match_percentage: Float! "List of relevant features that match the user needs" features: [String!]! } type MarketplaceAiSearchResults { results: [MarketplaceAiSearchResult!]! } type MarketplaceAppDiscount { "Slug of an account" account_slug: String! "The ID of an account" account_id: ID! "Percentage value of a discount" discount: Int! "Is discount recurring" is_recurring: Boolean! "List of app plan ids" app_plan_ids: [String!]! period: DiscountPeriod "Date until a discount is valid" valid_until: String! "Date when a discount was created" created_at: String! } type MarketplaceAppMetadata { "The average rating of the marketplace app" rating: Float! "The number of ratings for the marketplace app" ratingCount: Int! "The number of installs for the marketplace app" installsCount: Int! } type MarketplaceSearchAppDocument { "The ID of the marketplace app" marketplace_app_id: ID! "The name of the marketplace app" name: String! "The description of the marketplace app" description: String! "The short description of the marketplace app" short_description: String! "The keywords associated with the marketplace app" keywords: String! metadata: MarketplaceAppMetadata! } type MarketplaceSearchHit { "The unique identifier of the search result" id: String! "The relevance score of the search result" score: Float! document: MarketplaceSearchAppDocument! } input MarketplaceSearchInput { "The search query term" query: String! "Maximum number of search results to return" limit: Int "Number of search results to skip" offset: Int } type MarketplaceSearchResults { hits: [MarketplaceSearchHit!]! "The total number of search results" count: Int! "The time taken to perform the search" elapsed: String! } "The discounts granted to the subscription" type SubscriptionDiscount { "The value of the discount in percentage (e.g. the value 80 refers to 80%)" value: Int! discount_model_type: SubscriptionDiscountModelType! discount_type: SubscriptionDiscountType! } "The information whether the discount is percentage or nominal" enum SubscriptionDiscountModelType { percent nominal } "The information whether the discount has been granted one time or recurring" enum SubscriptionDiscountType { recurring one_time } "The billing period of the subscription. Possible values: monthly, yearly" enum SubscriptionPeriodType { monthly yearly } "The status of the subscription. Possible values: active, inactive." enum SubscriptionStatus { active inactive } "Response from querying the apps documentation AI." type AppDocumentationAiResponse { "Unique identifier for this query response." id: ID "The original question that was asked." question: String "The AI-generated answer based on the documentation." answer: String! "The conversation ID for follow-up queries." conversation_id: ID } "Input for app feature release data." input AppFeatureReleaseDataInput { "The URL for the release." url: String } "Input for updating an app feature release." input AppFeatureReleaseInput { "The hosting type for the release. The app release category will be automatically determined based on this value." kind: AppFeatureReleaseKind "The data of the release." data: AppFeatureReleaseDataInput } "The hosting type for the app feature release" enum AppFeatureReleaseKind { "Server-side application hosted on monday code infrastructure" SERVER_SIDE_CODE "Client-side application deployed via monday.com CLI" CLIENT_SIDE_CODE "Externally hosted application loaded via iframe" EXTERNAL_HOSTING } type AppFeatureType { id: ID! created_at: Date updated_at: Date "The name of the app feature" name: String "The app feature app id" app_id: ID "The reference ID of the app feature" reference_id: ID "The type of the app feature" type: String "The data of the app feature" data: JSON "The deployment information for the app feature" deployment: JSON } "The type of the app feature." enum AppFeatureTypeE { "OAUTH" OAUTH "BOARD_VIEW" BOARD_VIEW "INTEGRATION" INTEGRATION "SOLUTION" SOLUTION "ITEM_VIEW" ITEM_VIEW "DASHBOARD_WIDGET" DASHBOARD_WIDGET "ACCOUNT_SETTINGS_VIEW" ACCOUNT_SETTINGS_VIEW "DOC_ACTIONS" DOC_ACTIONS "OBJECT" OBJECT "WORKSPACE_VIEW" WORKSPACE_VIEW "AI" AI "AI_BOARD_MAIN_MENU_HEADER" AI_BOARD_MAIN_MENU_HEADER "AI_ITEM_UPDATE_ACTIONS" AI_ITEM_UPDATE_ACTIONS "AI_DOC_SLASH_COMMAND" AI_DOC_SLASH_COMMAND "AI_DOC_CONTEXTUAL_MENU" AI_DOC_CONTEXTUAL_MENU "AI_DOC_QUICK_START" AI_DOC_QUICK_START "AI_DOC_TOP_BAR" AI_DOC_TOP_BAR "COLUMN_TEMPLATE" COLUMN_TEMPLATE "AI_IC_ASSISTANT_HELP_CENTER" AI_IC_ASSISTANT_HELP_CENTER "APP_WIZARD" APP_WIZARD "GROUP_MENU_ACTION" GROUP_MENU_ACTION "ITEM_MENU_ACTION" ITEM_MENU_ACTION "NOTIFICATION_KIND" NOTIFICATION_KIND "NOTIFICATION_SETTING_KIND" NOTIFICATION_SETTING_KIND "BLOCK" BLOCK "ITEM_BATCH_ACTION" ITEM_BATCH_ACTION "AI_FORMULA" AI_FORMULA "AI_ITEM_EMAILS_AND_ACTIVITIES_ACTIONS" AI_ITEM_EMAILS_AND_ACTIVITIES_ACTIONS "AI_EMAILS_AND_ACTIVITIES_HEADER_ACTIONS" AI_EMAILS_AND_ACTIVITIES_HEADER_ACTIONS "FIELD_TYPE" FIELD_TYPE "PRODUCT" PRODUCT "PRODUCT_VIEW" PRODUCT_VIEW "BOARD_COLUMN_ACTION" BOARD_COLUMN_ACTION "BOARD_COLUMN_EXTENSION" BOARD_COLUMN_EXTENSION "PACKAGED_BLOCK" PACKAGED_BLOCK "CREDENTIALS" CREDENTIALS "TOPBAR" TOPBAR "WORKFLOW_TEMPLATE" WORKFLOW_TEMPLATE "COLUMN" COLUMN "SUB_WORKFLOW" SUB_WORKFLOW "BOARD_HEADER_ACTION" BOARD_HEADER_ACTION "DIALOG" DIALOG "DATA_ENTITY" DATA_ENTITY "SYNCABLE_RESOURCE" SYNCABLE_RESOURCE "AI_AGENT" AI_AGENT "SURFACE_VIEW" SURFACE_VIEW "GROWTH_CONFIG" GROWTH_CONFIG "MODAL" MODAL "ADMIN_VIEW" ADMIN_VIEW "DIGITAL_WORKER" DIGITAL_WORKER "AI_AGENT_SKILL" AI_AGENT_SKILL "SKILL" SKILL "VIBE_OBJECT" VIBE_OBJECT "VIBE_ITEM_VIEW" VIBE_ITEM_VIEW "AI_PLATFORM_AGENT" AI_PLATFORM_AGENT } "The visibility type of an app" enum AppKind { "App is private and only visible to the account that created it" PRIVATE "App is public and can be shared and installed by other accounts" PUBLIC } "Permitted OAuth scopes for apps" enum AppPermission { "Permission scope: me:read" ME_READ "Permission scope: boards:read" BOARDS_READ "Permission scope: boards:write" BOARDS_WRITE "Permission scope: workspaces:read" WORKSPACES_READ "Permission scope: workspaces:write" WORKSPACES_WRITE "Permission scope: users:read" USERS_READ "Permission scope: users:write" USERS_WRITE "Permission scope: account:read" ACCOUNT_READ "Permission scope: updates:read" UPDATES_READ "Permission scope: updates:write" UPDATES_WRITE "Permission scope: tags:read" TAGS_READ "Permission scope: assets:read" ASSETS_READ "Permission scope: teams:read" TEAMS_READ "Permission scope: teams:write" TEAMS_WRITE "Permission scope: departments:read" DEPARTMENTS_READ "Permission scope: departments:write" DEPARTMENTS_WRITE "Permission scope: notifications:write" NOTIFICATIONS_WRITE "Permission scope: webhooks:write" WEBHOOKS_WRITE "Permission scope: webhooks:read" WEBHOOKS_READ "Permission scope: docs:read" DOCS_READ "Permission scope: docs:write" DOCS_WRITE } "The current state of an app based on its version status" enum AppStatus { "App is in draft state and not yet published" DRAFT "App has a live published version" LIVE } type AppType { id: ID! created_at: Date updated_at: Date "The app name" name: String "The API app ID" api_app_id: ID "The client ID used to identify the app for OAuth and API access" client_id: String "The app photo URL" photo_url: String "The app photo URL for small size" photo_url_small: String "The app kind" kind: AppKind "The app status (i.e. is live?)" status: AppStatus "The latest version type" version_type: String "The description of the app" description: String "The URL-friendly identifier" slug: String "The array of permission scopes" permissions: [String!] "The webhook endpoint URL" webhook_url: String "The user who created the app" created_by: ID "The app account ID" account_id: ID "The app collaborators" collaborators: [User!] "The apps' features" features( "Whether to return only the live version data instead of all versions" live_version_only: Boolean = false, "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [AppFeatureType!] } "Input for creating an app with its configuration data." input CreateAppInput { "The display name of the app" name: String! "App visibility type" kind: AppKind "Detailed description of the app" description: String """ URL-friendly identifier in the format {account_slug}_{app_slug}. Must contain only letters, numbers, dashes, and underscores. Example: "account-slug_my-scheduler" """ slug: String "Array of permission scopes" permissions: [AppPermission!] "Webhook endpoint URL" webhook_url: String "Array of user IDs with access" collaborators: [ID!] } "Response object for app creation operations, including app data and API credentials" type CreateAppResponse { "The app's ID" id: ID "The app's API app ID" api_app_id: ID "The app's client ID" client_id: String "The app's client secret" client_secret: String "The app's signing secret used for webhook signature verification" signing_secret: String } "Input for a single lifecycle event subscription" input LifecycleEventInput { """ The lifecycle event type (e.g., "AppFeatureColumn:create") """ event_type: String! "The webhook URL for this event (max 2048 characters)" webhook_url: String! "Whether the subscription is synchronous (defaults to false)" is_sync: Boolean } "A lifecycle subscription configuration for an entity" type LifecycleSubscriptionKind { "The subscription ID" id: ID "The entity ID (e.g., app feature ID)" entity_id: ID """ The type of entity (e.g., "appFeature") """ entity_type: String """ The lifecycle event type (e.g., "AppFeatureColumn:create") """ event_type: String "The webhook URL for notifications" webhook_url: String "Whether the subscription is synchronous" is_sync: Boolean "When the subscription was created" created_at: Date "When the subscription was last updated" updated_at: Date } "Input for updating an app feature with its associated data and release information." input UpdateAppFeatureInput { "The app feature data to update. This structure is dynamic and depends on the different app feature types." data: JSON "The deployment data to update. https://developer.monday.com/apps/docs/deploy-your-app" deployment: AppFeatureReleaseInput } "Input for updating an existing app. Creates draft version for live apps." input UpdateAppInput { "The display name of the app" name: String "App visibility type" kind: AppKind "Detailed description of the app" description: String "URL-friendly identifier (only settable if app has no existing slug)" slug: String "Array of permission scopes (replaces existing permissions)" permissions: [AppPermission!] "Webhook endpoint URL" webhook_url: String "Array of user IDs with access (replaces existing collaborators)" collaborators: [ID!] } "Input for updating lifecycle subscriptions for an entity" input UpdateLifecycleSubscriptionsInput { "List of lifecycle event configurations (must have unique eventType values)" lifecycle_events: [LifecycleEventInput!]! } "Your monday.com account" type Account { "The number of active member users in the account" active_members_count: Int "The account's country two-letter code in ISO3166 format" country_code: String "The account's creation date." created_at: Date "The first day of the week for the account (sunday / monday)" first_day_of_the_week: FirstDayOfTheWeek! "The account's unique identifier." id: ID! "Is the account during the free trial period" is_during_trial: Boolean "Is the account's trial expired" is_trial_expired: Boolean "The account's logo." logo: String "The account's name." name: String! "The account's payment plan." plan: Plan "The account's active products" products: [AccountProduct] "Show weekends in timeline" show_timeline_weekends: Boolean! "The product the account signed up to first." sign_up_product_kind: String "The account's slug." slug: String! "The account's tier." tier: String } "The product a workspace is used in." type AccountProduct { "The account product default workspace id" default_workspace_id: ID "The account product id" id: ID """ The account product kind (core / marketing / crm / software / projectManagement / project_management / service / forms / whiteboard). """ kind: String "The account product tier." tier: String } "An activity log event" type ActivityLogType { account_id: String! created_at: String! "The item's column values in string form." data: String! entity: String! event: String! id: String! user_id: String! } "An app install details." type AppInstall { "The app's unique identifier." app_id: ID! "An app installer's account details." app_install_account: AppInstallAccount! "An app installer's user details" app_install_user: AppInstallUser! "The app's version details" app_version: AppVersion "The required and approved scopes for an app install." permissions: AppInstallPermissions "Installation date" timestamp: String } "An app installer's account details" type AppInstallAccount { "The app's installer account id." id: ID! } "The required and approved scopes for an app install." type AppInstallPermissions { "The scopes approved by the account admin" approved_scopes: [String!]! "The scopes required by the latest live version" required_scopes: [String!]! } "An app installer's user details" type AppInstallUser { "The app's installer user id." id: ID } "The app monetization status for the current account" type AppMonetizationStatus { "Is apps monetization is supported for the account" is_supported: Boolean! } "The app monetization information for the current account" type AppsMonetizationInfo { """ The number of seats in the account, across all products, used to match the app’s subscription among apps that utilize the seats-based monetization method """ seats_count: Int } "The account subscription details for the app." type AppSubscription { "The type of the billing period [monthly/yearly]." billing_period: String "The number of days left until the subscription ends." days_left: Int "Is the subscription a trial" is_trial: Boolean "Maximum number of units for current subscription plan." max_units: Int "The subscription plan id (on the app's side)." plan_id: String! "The pricing version of subscription plan." pricing_version: Int "The subscription renewal date." renewal_date: Date! } "The Operations counter response for the app action." type AppSubscriptionOperationsCounter { "The account subscription details for the app." app_subscription: AppSubscription "The new counter value." counter_value: Int "Operations name." kind: String! "Window key." period_key: String } "An app's version details." type AppVersion { "The app's major version." major: Int! "The app's minor version." minor: Int! "The app's patch version." patch: Int! "The app's version text" text: String! "The app's version type." type: String } "A file uploaded to monday.com" type Asset { "The file's creation date." created_at: Date "The file's extension." file_extension: String! "The file's size in bytes." file_size: Int! "The file's unique identifier." id: ID! "The file's name." name: String! "original geometry of the asset." original_geometry: String "public url to the asset, valid for 1 hour." public_url: String! "The user who uploaded the file." uploaded_by: User! "url to view the asset." url: String! "url to view the asset in thumbnail mode. Only available for images." url_thumbnail: String } "The source of the asset" enum AssetsSource { "Assets from file columns and item's files gallery. From version 2026-04, also includes assets from updates" all "Assets only from file columns" columns "Assets only from item's files gallery" gallery } "Result of an batch operation" type BatchExtendTrialPeriod { "Details of operations" details: [ExtendTrialPeriod!] "Reason of an error" reason: String "Result of a batch operation" success: Boolean! } "A value showing status distribution counts" type BatteryValue implements ColumnValue { "The battery value for this item" battery_value: [BatteryValueItem!]! "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "A battery value item representing a status count" type BatteryValueItem { "The count for this status" count: Int! "The status index key" key: ID! } "The board access level of the user" enum BoardAccessLevel { "Edit contents" edit "View" view } "The board attributes available." enum BoardAttributes { "Object that contains available Video conferences on the board." communication "Board description." description "The nickname of items on the board (item terminology)." item_nickname "Board name." name } "Basic role names for board permissions. Each role grants different levels of access to the board." enum BoardBasicRoleName { """ Assigned Contributor role - Can edit content (items) only, and only for items where they are assigned in the specified assignee columns (Coming soon - not yet supported, please use the UI instead) """ assigned_contributor "Contributor role - Can edit content (items) only, but not the structure (columns, groups) of the board" contributor "Editor role - Can edit both the structure (columns, groups) and content (items) of the board" editor "Viewer role - Read-only access to the board, cannot edit structure or content" viewer } "A board duplication" type BoardDuplication { "The new board created by the duplication" board: Board! "Was the board duplication performed asynchronously" is_async: Boolean! } "Edit permissions level for boards." enum BoardEditPermissions { "Assignee" assignee "Collaborators" collaborators "Everyone" everyone "Owners" owners } "The board hierarchy type" enum BoardHierarchy { "classic" classic "multilevel of items" multi_level } "The board kinds available." enum BoardKind { "Private boards." private "Public boards." public "Shareable boards." share } "The board object types." enum BoardObjectType { "Parent Board." board "Custom Object." custom_object "Document." document "Sub Items Board." sub_items_board } type BoardRelationValue implements ColumnValue { "The column that this value belongs to." column: Column! "A string representing all the names of the linked items, separated by commas" display_value: String! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The linked items IDs" linked_item_ids: [ID!]! "The linked items." linked_items: [Item!]! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } "Options to order by." enum BoardsOrderBy { "The rank order of the board creation time (desc)." created_at "The last time the user making the request used the board (desc)." used_at } "The board subscriber kind." enum BoardSubscriberKind { "Board owner." owner "Board subscriber." subscriber } type ButtonValue implements ColumnValue { "The button's color in hex value." color: String "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The button's label." label: String text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "The result of adding users to / removing users from a team." type ChangeTeamMembershipsResult { "The users that team membership update failed for" failed_users: [User!] "The users that team membership update succeeded for" successful_users: [User!] } type CheckboxValue implements ColumnValue { "The column's boolean value." checked: Boolean "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date value: JSON } type ColorPickerValue implements ColumnValue { "The color in hex value." color: String "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } "An object defining a mapping of column between source board and destination board" input ColumnMappingInput { "The source column's unique identifier." source: ID! "The target column's unique identifier." target: ID } "The property name of the column to be changed." enum ColumnProperty { "the column description." description "the column title." title } interface ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "Complexity data." type Complexity { "The remainder of complexity after the query's execution." after: Int! "The remainder of complexity before the query's execution." before: Int! "The specific query's complexity." query: Int! "How long in seconds before the complexity budget is reset" reset_in_x_seconds: Int! } type Country { "The country's two-letter code." code: String! "The country's name." name: String! } type CountryValue implements ColumnValue { "The column that this value belongs to." column: Column! "The country value." country: Country "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } input CreateDocBoardInput { "Column id" column_id: String! "Item id" item_id: ID! } input CreateDocInput { board: CreateDocBoardInput workspace: CreateDocWorkspaceInput } input CreateDocWorkspaceInput { "Optional board folder id" folder_id: ID "The doc's kind (public / private / share)" kind: BoardKind "The doc's name" name: String! "Workspace id" workspace_id: ID! } type CreationLogValue implements ColumnValue { "The column that this value belongs to." column: Column! "The date when the item was created." created_at: Date! "User who created the item" creator: User! "ID of the user who created the item" creator_id: ID! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "The custom fields meta data for user profile." type CustomFieldMetas { "The custom field meta's description." description: String "Is the custom field meta editable or not." editable: Boolean "The custom field meta's type." field_type: String "Is the custom field meta flagged or not." flagged: Boolean "The custom field meta's icon." icon: String "The custom field meta's unique identifier." id: String "The custom field meta's position in the user profile page." position: String "The custom field meta's title." title: String } "A custom field value for user profile." type CustomFieldValue { "The custom field value's meta unique identifier." custom_field_meta_id: String "The custom field value." value: String } type DateValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's date value." date: String "The string representation of selected icon." icon: String "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The formatted date and time in user time zone." text: String "The column's time value." time: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type DependencyValue implements ColumnValue { "The column that this value belongs to." column: Column! "A string representing all the names of the linked items, separated by commas" display_value: String! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The linked items ids" linked_item_ids: [ID!]! "The linked items." linked_items: [Item!]! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type DirectDocValue implements ColumnValue { "The column that this value belongs to." column: Column! "The document file attached to the column." file: DirectDocValue "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "Various documents blocks types, such as text." enum DocBlockContentType { "Bulleted list block" bulleted_list "Check list block" check_list "Code block" code "Divider block" divider "Image block" image "Large title block" large_title "Layout block" layout "Medium title block" medium_title "Simple text block" normal_text "Notice block" notice_box "Numbered list block" numbered_list "Page break block" page_break "Quote text block" quote "Small title block" small_title "Table block" table "Video block" video } "Options to order by." enum DocsOrderBy { "The rank order of the document creation time (desc)." created_at "The last time the user making the request viewd the document (desc)." used_at } "A monday.com document block." type DocumentBlock { "The block's content." content: JSON "The block's creation date." created_at: Date "The block's creator" created_by: User "The block's document unique identifier." doc_id: ID "The block's unique identifier." id: String! "The block's parent block unique identifier." parent_block_id: String "The block's position on the document." position: Float "The block content type." type: String "The block's last updated date." updated_at: Date } "A monday.com doc block." type DocumentBlockIdOnly { "The block's unique identifier." id: String! } type DocValue implements ColumnValue { "The column that this value belongs to." column: Column! "The document file attached to the column." file: FileDocValue "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } type DropdownValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON "The selected dropdown values." values: [DropdownValueOption!]! } type DropdownValueOption { "The dropdown item's unique identifier." id: ID! "The dropdown item's label." label: String! } "The board duplicate types available." enum DuplicateBoardType { "Duplicate board with structure and items." duplicate_board_with_pulses "Duplicate board with structure, items and updates." duplicate_board_with_pulses_and_updates "Duplicate board with structure." duplicate_board_with_structure } input DynamicPosition { """ A boolean flag indicating the desired position of the target item: set to true to place the item after the reference object, or false to place it before. """ is_after: Boolean = true "The unique identifier of the reference object relative to which the target item will be positioned." object_id: String! """ The type or category of the reference object, used to determine how the target item should be positioned in relation to it. """ object_type: ObjectType! } type EmailValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's email value." email: String "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The column's text value. It can be the same as email when user didn't enter any text." label: String "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } "Result of a single operation" type ExtendTrialPeriod { "Account slug" account_slug: String! "Reason of an error" reason: String "Result of a single operation" success: Boolean! } "A file with an invalid or missing asset." type FileAssetInvalidValue { "The asset's id." asset_id: ID! "The file's creation date." created_at: Date! "The user who created the file." creator: User "The ID of user who created the file." creator_id: ID "The error message." error: String! "The file's name." name: String } type FileAssetValue { "The asset associated with the file." asset: Asset! "The asset's id." asset_id: ID! "The file's creation date." created_at: Date! "The user who created the file." creator: User "The ID of user who created the file." creator_id: ID "Whether the file is an image." is_image: Boolean! "The file's name." name: String! } "The type of a link value stored inside a file column" enum FileColumnValue { "Asset file" asset "Box file" box "Doc file" doc "Dropbox file" dropbox "Google Drive file" google_drive "Generic link file" link "OneDrive file" onedrive } type FileDocValue { "The file's creation date." created_at: Date! "The user who created the file." creator: User "The ID of user who created the file." creator_id: ID "The doc associated with the file." doc: Document! "The file's unique identifier." file_id: ID! "The associated board or object's unique identifier." object_id: ID! "The file's url." url: String } input FileInput { "The asset's id." assetId: ID "File kind" fileType: FileColumnValue! "File link" linkToFile: String "File display name" name: String! "The doc's id" objectId: ID } type FileLinkValue { "The file's creation date." created_at: Date! "The user who created the file." creator: User "The ID of user who created the file." creator_id: ID "The file's id." file_id: ID! "The file's kind." kind: FileLinkValueKind! "The file's name." name: String! "The file's url." url: String } "The type of a link value stored inside a file column" enum FileLinkValueKind { "Box file" box "Dropbox file" dropbox "Google Drive file" google_drive "Generic link file" link "OneDrive file" onedrive } type FileValue implements ColumnValue { "The column that this value belongs to." column: Column! "The files attached to the column." files: [FileValueItem!]! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "A single file in a column." union FileValueItem = FileAssetInvalidValue | FileAssetValue | FileDocValue | FileLinkValue "The first day of work week" enum FirstDayOfTheWeek { "Monday" monday "Sunday" sunday } "A workspace folder containing boards, docs, sub folders, etc." type Folder { "The folder's app feature slug (folders 2.0)" app_feature_slug: String "The various items in the folder, not including sub-folders and dashboards." children: [Board]! "The folder's color." color: FolderColor "The folder's creation date." created_at: Date! "The folder's custom icon." custom_icon: FolderCustomIcon "The folder's font weight." font_weight: FolderFontWeight "The folder's unique identifier." id: ID! "The folder's name." name: String! "The folder's user owner unique identifier." owner_id: ID "The folder's parent folder." parent: Folder "Sub-folders inside this folder." sub_folders: [Folder]! "The workspace that contains this folder (null id for main workspace)." workspace: Workspace! } "One value out of a list of valid folder colors" enum FolderColor { "aquamarine" AQUAMARINE "bright-blue" BRIGHT_BLUE "bright-green" BRIGHT_GREEN "chili-blue" CHILI_BLUE "dark-orange" DARK_ORANGE "dark_purple" DARK_PURPLE "dark-red" DARK_RED "done-green" DONE_GREEN "indigo" INDIGO "lipstick" LIPSTICK "No color" NULL "purple" PURPLE "sofia_pink" SOFIA_PINK "stuck-red" STUCK_RED "sunset" SUNSET "working_orange" WORKING_ORANGE } "One value out of a list of valid folder custom icons" enum FolderCustomIcon { "Folder" FOLDER "MoreBelow" MOREBELOW "MoreBelowFilled" MOREBELOWFILLED "No custom icon" NULL "Work" WORK } "One value out of a list of valid folder font weights" enum FolderFontWeight { "font-weight-bold" FONT_WEIGHT_BOLD "font-weight-light" FONT_WEIGHT_LIGHT "font-weight-normal" FONT_WEIGHT_NORMAL "font-weight-very-light" FONT_WEIGHT_VERY_LIGHT "No font weight" NULL } type FormulaValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON "A string representing all the formula values, separated by commas" display_value: String! } "A group of items in a board." type Group { "Is the group archived or not." archived: Boolean "The group's color." color: String! "Is the group deleted or not." deleted: Boolean "The group's unique identifier." id: ID! "The items in the group." items_page( """ An opaque token representing the position in the result set from which to resume fetching items. Use this to paginate through large result sets. """ cursor: String, "The hierarchy config to use for the query filters." hierarchy_scope_config: String, """ The maximum number of items to fetch in a single request. Use this to control the size of the result set and manage pagination. Maximum: 500. """ limit: Int! = 25, """ A set of parameters to filter, sort, and control the scope of the items query. Use this to customize the results based on specific criteria. """ query_params: ItemsQuery): ItemsResponse! "The group's position in the board." position: String! "The group's title." title: String! } "The group attributes available." enum GroupAttributes { "Group color (one of the supported colors, check the API documentation)." color "The group's position in the board. Deprecated! - replaced with relative position" position "The group's relative position after another group in the board." relative_position_after "The group's relative position before another group in the board." relative_position_before "Group title." title } type GroupValue implements ColumnValue { "The column that this value belongs to." column: Column! "The group value." group: Group "The group identifier." group_id: ID "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } type HourValue implements ColumnValue { "The column that this value belongs to." column: Column! "Hour" hour: Int "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Minute" minute: Int text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type IntegrationValue implements ColumnValue { "The column that this value belongs to." column: Column! "ID of the entity" entity_id: ID "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "URL of the issue" issue_api_url: ID "ID of the issue" issue_id: String "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "An item description." type ItemDescription { "The item's content blocks" blocks( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [DocumentBlock] "The item's unique identifier." id: ID } type ItemIdValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "ID of the item" item_id: ID! text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "Input type for item nickname configuration" input ItemNicknameInput { "The plural form of the item nickname" plural: String "The preset type for item nickname" preset_type: String "The singular form of the item nickname" singular: String } input ItemsPageByColumnValuesQuery { "The column's unique identifier." column_id: String! "The column values to search items by." column_values: [String]! } input ItemsQuery { "A list of rule groups" groups: [ItemsQueryGroup!] "A list of item IDs to fetch. Use this to fetch a specific set of items by their IDs. Limited to 100 IDs in ItemsQuery" ids: [ID!] "The operator to use for the query rules or rule groups. Default: AND" operator: ItemsQueryOperator = and "Sort the results by specified columns" order_by: [ItemsQueryOrderBy!] "A list of rules" rules: [ItemsQueryRule!] } type ItemsResponse { """ An opaque cursor that represents the position in the list after the last returned item. Use this cursor for pagination to fetch the next set of items. If the cursor is null, there are no more items to fetch. """ cursor: String "The items associated with the cursor." items: [Item!]! } "Kind of assignee" enum Kind { "Represents an AI agent" agent "Represents a person" person "Represents a team" team } type LastUpdatedValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "Timestamp of the last time the item was updated" updated_at: Date "User who updated the item" updater: User "ID of the user who updated the item" updater_id: ID "The column's raw value in JSON format." value: JSON } type LinkValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "Url" url: String "Url text" url_text: String "The column's raw value in JSON format." value: JSON } type LocationValue implements ColumnValue { "Address" address: String "City" city: String "City" city_short: String "The column that this value belongs to." column: Column! "Country" country: String "Country short name (e.g. PE for Peru)" country_short: String "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Latitude" lat: Float "Longitude" lng: Float "Place ID of the location" place_id: String "Street" street: String "Number of building in the street" street_number: String "Short number of building in the street" street_number_short: String "Street" street_short: String text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type LongTextValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type MirroredItem { "The linked board." linked_board: Board! "The linked board's unique identifier." linked_board_id: ID! "The linked item." linked_item: Item! "The mirrored values." mirrored_value: MirroredValue } "Represents a mirrored value (column value, group, or board)." union MirroredValue = BatteryValue | Board | BoardRelationValue | ButtonValue | CheckboxValue | ColorPickerValue | CountryValue | CreationLogValue | DateValue | DependencyValue | DirectDocValue | DocValue | DropdownValue | EmailValue | FileValue | FormulaValue | Group | GroupValue | HourValue | IntegrationValue | ItemIdValue | LastUpdatedValue | LinkValue | LocationValue | LongTextValue | MirrorValue | NumbersValue | PeopleValue | PersonValue | PhoneValue | ProgressValue | RatingValue | StatusValue | SubtasksValue | TagsValue | TeamValue | TextValue | TimeTrackingValue | TimelineValue | UnsupportedValue | VoteValue | WeekValue | WorldClockValue type MirrorValue implements ColumnValue { "The column that this value belongs to." column: Column! "A string representing all the names of the linked items, separated by commas" display_value: String! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The mirrored items." mirrored_items: [MirroredItem!]! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "A notification." type Notification { "The notification's unique identifier." id: ID! "The notification text." text: String } "The notification's target type." enum NotificationTargetType { "Update" Post "Item or Board." Project } type NumbersValue implements ColumnValue { "The column that this value belongs to." column: Column! "Indicates where the symbol should be placed - on the right or left of the number" direction: NumberValueUnitDirection "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Number" number: Float "The symbol of the unit" symbol: String text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "Indicates where the unit symbol should be placed in a number value" enum NumberValueUnitDirection { "The symbol is placed on the left of the number" left "The symbol is placed on the right of the number" right } "Represents a monday object." enum ObjectType { "Represents a board object type." Board "Represents a folder object type." Folder "Represents an overview object type." Overview } "The working status of a user." type OutOfOffice { "Is the status active?" active: Boolean "Are notification disabled?" disable_notifications: Boolean "The status end date." end_date: Date "The status start date." start_date: Date "Out of office type." type: String } "A monday.com overview." type Overview { "The time the overview was created at." created_at: ISO8601DateTime "The creator of the overview." creator: User! "The overview's folder unique identifier." folder_id: ID "The unique identifier of the overview." id: ID! "The overview's kind (public/private)." kind: String "The overview's name." name: String! "The overview's state." state: String! "The last time the overview was updated at." updated_at: ISO8601DateTime "The overview's workspace unique identifier." workspace_id: ID } type PeopleEntity { "Id of the entity: a person or a team" id: ID! "Type of entity" kind: Kind } type PeopleValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The people and teams assigned to the item." persons_and_teams: [PeopleEntity!] text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type PersonValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The person assigned to the item." person_id: ID text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type PhoneValue implements ColumnValue { "The column that this value belongs to." column: Column! "ISO-2 country code" country_short_name: String "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Phone number" phone: String text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } "A payment plan." type Plan { "The maximum users allowed in the plan." max_users: Int! "The plan's time period." period: String "The plan's tier." tier: String "The plan's version." version: Int! } "The position relative method." enum PositionRelative { "position after at the given entity." after_at "position before at the given entity." before_at } type ProgressValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } type RatingValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Rating value" rating: Int text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } "Response type for detailed board permissions. Contains information about the permissions that were set." type SetBoardPermissionResponse { "The technical board write permissions value that was set (e.g., 'everyone', 'collaborators', 'owners')." edit_permissions: BoardEditPermissions! "List of any actions that failed during the permission update process." failed_actions: [String!] } "The possible states for a board or item." enum State { "Active only (Default)." active "Active, Archived and Deleted." all "Archived only." archived "Deleted only." deleted } "A status label style." type StatusLabelStyle { "The label's border color in hex format." border: String! "The label's color in hex format." color: String! } type StatusValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "The index of the status in the board" index: Int "Whether the status is done" is_done: Boolean "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The label of the status" label: String "The style of the status label" label_style: StatusLabelStyle text: String "The column's type." type: ColumnType! "The ID of an update attached to the status" update_id: ID "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } type SubtasksValue implements ColumnValue { "The column that this value belongs to." column: Column! "A string representing all the names of the subtasks, separated by commas" display_value: String! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The subitems" subitems: [Item!]! "The subitems IDs" subitems_ids: [ID!]! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "A tag" type Tag { "The tag's color." color: String! "The tag's unique identifier." id: ID! "The tag's name." name: String! } type TagsValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Tag ID's" tag_ids: [Int!]! "A list of tags" tags: [Tag!]! text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "A team of users." type Team { "The team's unique identifier." id: ID! "The users who are the owners of the team." owners( "A list of users' unique identifiers." ids: [ID!]): [User!]! "The team's picture url." picture_url: String "The users in the team." users( "A list of users' emails." emails: [String], "A list of users' unique identifiers." ids: [ID!], "The kind to search users by (all / non_guests / guests / non_pending)." kind: UserKind, "Number of users to get." limit: Int, "Allows to fuzzy search by name" name: String, "Get the recently created users at the top of the list" newest_first: Boolean, "Return non active users in the account." non_active: Boolean, "Page number to get, starting at 1." page: Int): [User] "The team's name." name: String! "Whether the team is a guest team" is_guest: Boolean } type TeamValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "ID of the assigned team" team_id: Int text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } "A monday.com template." type Template { "The template process unique identifier for async operations." process_id: String } type TextValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The column's textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } type TimelineValue implements ColumnValue { "The column that this value belongs to." column: Column! "The start date of the timeline" from: Date "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The range of dates representing the timeline (YYYY-MM-DD)" text: String "The end date of the timeline" to: Date "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON "The visualization type for the timeline" visualization_type: String } type TimeTrackingHistoryItem { "When the session was added to the cell" created_at: Date! "Only applicable if the session has ended" ended_at: Date "The identifier of an user which ended the tracking" ended_user_id: ID "A unique session identifier" id: ID! "Is true if the session end date was manually entered" manually_entered_end_date: Boolean! "Is true if the session end time was manually entered" manually_entered_end_time: Boolean! "Is true if the session start date was manually entered" manually_entered_start_date: Boolean! "Is true if the session start time was manually entered" manually_entered_start_time: Boolean! "Only applicable if the session was added by pressing the play button or via automation" started_at: Date "The identifier of an user which started the tracking" started_user_id: ID "The status of the session" status: String! "When the session was updated" updated_at: Date } type TimeTrackingValue implements ColumnValue { "The column that this value belongs to." column: Column! "Total duration of the time tracker" duration: Int history: [TimeTrackingHistoryItem!]! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Whether the time tracker is running" running: Boolean "The date when the time tracker was started" started_at: Date text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date value: JSON } type UnsupportedValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "Text representation of the column value. Note: Not all columns support textual value" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "Attributes for updating a board's position and location" input UpdateBoardHierarchyAttributesInput { "The ID of the account product where the board should be placed" account_product_id: ID "The ID of the folder where the board should be placed" folder_id: ID "The position of the board in the left pane" position: DynamicPosition "The ID of the workspace where the board should be placed" workspace_id: ID } "Result of updating a board's position" type UpdateBoardHierarchyResult { "The updated board" board: Board "A message about the operation result" message: String "Whether the operation was successful" success: Boolean! } "Result type for updating an overview's hierarchy" type UpdateOverviewHierarchy { "Message about the operation result" message: String! "The updated overview" overview: Overview "Whether the operation was successful" success: Boolean! } "Attributes for updating an overview's hierarchy and location" input UpdateOverviewHierarchyAttributesInput { "The ID of the account product where the overview should be placed" account_product_id: ID "The ID of the folder where the overview should be placed" folder_id: ID "The position of the overview in the left pane" position: DynamicPosition "The ID of the workspace where the overview should be placed" workspace_id: ID } "Attributes of a workspace to update" input UpdateWorkspaceAttributesInput { "The target account product's ID to move the workspace to" account_product_id: ID "The description of the workspace to update" description: String "The kind of the workspace to update (open / closed / template)" kind: WorkspaceKind "The name of the workspace to update" name: String } "The possibilities for a user kind." enum UserKind { "All users in account." all "Only guests." guests "Only company members." non_guests "All non pending members." non_pending } "An object containing the API version details" type Version { "The display name of the API version" display_name: String! "The type of the API version" kind: VersionKind! "Version string that can be used in API-Version header" value: String! } "All possible API version types" enum VersionKind { "Current version" current "No longer supported version. Migrate to current version as soon as possible" deprecated "Bleeding-edge rolling version that constantly changes" dev "Previous version. Migrate to current version as soon as possible" maintenance "Old version that will be deprecated in January. Migrate to current version as soon as possible" old__maintenance "Old version that will be deprecated in January. Migrate to current version as soon as possible" old_previous_maintenance "Older version that will be deprecated in January. Migrate to current version as soon as possible" previous_maintenance "Next version" release_candidate } type VoteValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON "The total number of votes" vote_count: Int! "A list of IDs of users who voted" voter_ids: [ID!]! "A list of users who voted" voters: [User!]! } "Monday webhooks" type Webhook { "The webhooks's board id." board_id: ID! "The webhooks's config." config: String "The event webhook will listen to" event: WebhookEventType! "The webhooks's unique identifier." id: ID! } "The webhook's target type." enum WebhookEventType { "Column value changed on board" change_column_value "An item name changed on board" change_name "Specific Column value changed on board" change_specific_column_value "Status column value changed on board" change_status_column_value "Column value changed on board subitem" change_subitem_column_value "An subitem name changed on board" change_subitem_name "Column created on a board" create_column "An item was created on board" create_item "A subitem was created on a board" create_subitem "An update was posted on board subitem" create_subitem_update "An update was posted on board item" create_update "An update was deleted from board item" delete_update "An update was edited on board item" edit_update "An item was archived on a board" item_archived "An item was deleted from a board" item_deleted "An item is moved to any group" item_moved_to_any_group "An item is moved to a specific group" item_moved_to_specific_group "An item restored back to board" item_restored "A subitem is moved from one parent to another" move_subitem "A subitem was archived on a board" subitem_archived "A subitem was deleted from a board" subitem_deleted } type WeekValue implements ColumnValue { "The column that this value belongs to." column: Column! "The end date of the week" end_date: Date "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! "The start date of the week" start_date: Date "The range of dates representing the week (YYYY-MM-DD)" text: String "The column's type." type: ColumnType! "The column's raw value in JSON format." value: JSON } "A monday.com workspace." type Workspace { "The account product that contains workspace." account_product: AccountProduct "The workspace's creation date." created_at: Date "The workspace's description." description: String "The workspace's unique identifier." id: ID "Returns true if it is the default workspace of the product or account" is_default_workspace: Boolean "The workspace's kind (open / closed / template)." kind: WorkspaceKind "The workspace's name." name: String! "The workspace's user owners." owners_subscribers( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [User] "The workspace's settings." settings: WorkspaceSettings "The workspace's state (all / active / archived / deleted)." state: State "The workspace's team owners." team_owners_subscribers( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [Team!] "The teams subscribed to the workspace." teams_subscribers( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [Team] "The users subscribed to the workspace" users_subscribers( "Number of items to get, the default is 25." limit: Int = 25, "Page number to get, starting at 1." page: Int = 1): [User] } "The workspace's icon." type WorkspaceIcon { "The icon color in hex value. Used as a background for the image." color: String """ The public image URL, which is temporary in the case of a file that was uploaded by the user, so you'll need to pull a new version at least once an hour. In case it is null, you can use the first letter of the workspace name. """ image: String } "The workspace kinds available." enum WorkspaceKind { "Closed workspace, available to enterprise only." closed "Open workspace." open "Template workspace." template } "The membership kind of the user in the workspace." enum WorkspaceMembershipKind { "All accessible workspaces" all "Workspace member." member } "The workspace's settings." type WorkspaceSettings { "The workspace icon." icon: WorkspaceIcon } "Options to order by." enum WorkspacesOrderBy { "The rank order of the workspace creation time (desc)." created_at } "The account product kinds available for workspaces query." enum WorkspacesQueryAccountProductKind { "monday work management" core "monday CRM" crm "workforms" forms "monday marketer" marketing "monday projects" project_management "monday service" service "monday dev" software "canvas" whiteboard } "Parameters to filter workspaces" input WorkspacesQueryInput { """ Filter workspaces by account product kind (core / marketing / crm / software / project_management / service / forms / whiteboard) """ account_product_kind: WorkspacesQueryAccountProductKind } "The workspace subscriber kind." enum WorkspaceSubscriberKind { "Workspace owner." owner "Workspace subscriber." subscriber } type WorldClockValue implements ColumnValue { "The column that this value belongs to." column: Column! "The column's unique identifier." id: ID! "Whether this item is a leaf (has no subitems)." is_leaf: Boolean! text: String "Timezone" timezone: String "The column's type." type: ColumnType! "The date when column value was last updated." updated_at: Date "The column's raw value in JSON format." value: JSON } "Enum representing different usage types for board operations" enum BoardUsage { "Board can be converted to a project" CONVERT_TO_PROJECT "Board can be connected to a portfolio" CONNECT_TO_PORTFOLIO } input ColumnsMappingInput { project_status: ID! project_timeline: ID! project_owner: ID! } input ConvertBoardToProjectInput { board_id: ID! column_mappings: ColumnsMappingInput! callback_url: String } type ConvertBoardToProjectResult { success: Boolean message: String projectId: ID process_id: String } input CreateProjectInput { "The name of the project to create" name: String! "The project's privacy setting (public / private)" board_kind: BoardKind! "Optional template id to create the project from. Currently only supported for solution templates" template_id: ID """ Optional list of companion features to enable (currently only "resource_planner") """ companions: [String!] "Optional workspace ID to associate with the project" workspace_id: String "Optional folder ID to associate with the project" folder_id: String "Optional external callback URL where the project ID will be sent after async creation. The callback will receive a POST request with { is_success: boolean, process_id: string, project_id?: number }" callback_url: String } type CreateProjectResult { "Indicates if the project creation request was accepted" success: Boolean "Success message when project creation is initiated" message: String "Error message if project creation request failed" error: String "Unique process ID for tracking this creation request. This will be included in the callback when creation completes." process_id: ID } "An action item from a meeting." type ActionItem { "The unique identifier of the action item." id: ID! "The text content of the action item." content: String! "Whether the action item has been completed." is_completed: Boolean! "The owner assigned to the action item." owner: String "The due date of the action item." due_date: Date } "A recorded meeting with its metadata, transcript, and insights." type Meeting { "The unique identifier of the meeting." id: ID! "The title of the meeting." title: String! "The start time of the meeting." start_time: Date! "The end time of the meeting." end_time: Date! "The duration of the recording in seconds." recording_duration: Int "The type of access the current user has to this meeting." access_type: MeetingAccess! "The URL to view the meeting in the notetaker." meeting_link: String! "The list of participants in the meeting." participants: [Participant!]! "The AI-generated summary of the meeting." summary: String "The topics discussed during the meeting." topics: [Topic!] "The action items from the meeting." action_items: [ActionItem!] "The transcript entries for the meeting." transcript: [TranscriptEntry!] } "The type of access the current user has to a meeting." enum MeetingAccess { "The user was a participant in the meeting or invited the bot." OWN "The meeting was shared directly with the user or their team." SHARED_WITH_ME "The meeting was shared with the account." SHARED_WITH_ACCOUNT } "Filter for the access level of meetings in the query." enum MeetingAccessFilter { "The user was a participant in the meeting or invited the bot." OWN "The meeting was shared directly with the user or their team." SHARED_WITH_ME "The meeting was shared with the account." SHARED_WITH_ACCOUNT "All meetings the user has access to (own, shared with user, and shared with account)." ALL } "Filters for the meetings query." input MeetingsFilterInput { "Filter meetings by specific IDs." ids: [ID!] "Search meetings by title, participant name, or email." search: String "Filter meetings by access level. Defaults to OWN, returning only meetings the user owns." access: MeetingAccessFilter = OWN } "A paginated response containing meetings." type MeetingsResponse { "The list of meetings in the current page." meetings: [Meeting!] "Pagination metadata for fetching additional pages." page_info: PageInfo } "Namespace for all notetaker-related queries." type NotetakerQueries { "Retrieve a paginated list of meetings with completed recordings that the current user has view permissions for." meetings( "Maximum number of meetings to return per page (1-100)." limit: Int = 10, "Cursor for pagination. Use cursor from the previous page_info." cursor: String, "Filters to apply to the meetings list." filters: MeetingsFilterInput): MeetingsResponse } "Pagination metadata for cursor-based pagination." type PageInfo { "Whether there are more results available after this page." has_next_page: Boolean """ Cursor to use as the "after" argument to fetch the next page. """ cursor: String } "A meeting participant." type Participant { "The email address of the participant." email: String } "A talking point within a meeting topic." type TalkingPoint { "The text content of the talking point." content: String! "The timestamp of the talking point in seconds." timestamp: Float! } "A topic discussed during a meeting." type Topic { "The title of the topic." title: String! "The talking points discussed under this topic." talking_points: [TalkingPoint!]! } "A single entry in a meeting transcript." type TranscriptEntry { "The transcribed text content." text: String! "The start time of the transcript entry in seconds." start_time: Float! "The end time of the transcript entry in seconds." end_time: Float! "The name of the speaker." speaker: String! "The language of the transcript entry." language: String! } type BoardMuteSettings { "Board ID" board_id: ID "Human-friendly mute state for the board and current user" mute_state: BoardMuteState "List of enabled customizable settings when the board is in CUSTOM_SETTINGS mute state. Null otherwise." enabled: [CustomizableBoardSettings!] } """ Represents the mute state of a board for the current user. - NOT_MUTED: The board is not muted at all (default state). This state, as well as MUTE_ALL, is set by the board owner(s) and only they can change it. - MUTE_ALL: All notifications for all users are muted on this board. This state, as well as NOT_MUTED, is set by the board owner(s) and only they can change it. - MENTIONS_AND_ASSIGNS_ONLY: The current user will only be notified if mentioned or assigned on the board. - CUSTOM_SETTINGS: The current user will only be notified for the enabled custom settings. configurable settings: IM_MENTIONED, IM_ASSIGNED, AUTOMATION_NOTIFY - CURRENT_USER_MUTE_ALL: Only the current user has all notifications muted from this board. """ enum BoardMuteState { "The board is not muted at all (default state). This state is set by the board owner(s) and only they can change it." NOT_MUTED "All notifications for all users are muted on this board. This state is set by the board owner(s) and only they can change it." MUTE_ALL "The current user will only be notified if mentioned or assigned on the board" MENTIONS_AND_ASSIGNS_ONLY "The current user will only be notified for the enabled custom settings. configurable settings: IM_MENTIONED, IM_ASSIGNED, AUTOMATION_NOTIFY" CUSTOM_SETTINGS "Only the current user has all notifications muted from this board" CURRENT_USER_MUTE_ALL } "Whether this channel is editable, always enabled, or not relevant to the notification" enum ChannelEditableStatus { AllRelatedNotificationsDontHaveChannel AlwaysEnabled Editable } "Available notification channel types: Monday, Email, Slack" enum ChannelType { Monday Email Slack } "These settings can be customized when the board is in CUSTOM_SETTINGS mute state. Configurable settings: IM_MENTIONED, IM_ASSIGNED, AUTOMATION_NOTIFY" enum CustomizableBoardSettings { "Notify me when I am mentioned on this board" IM_MENTIONED "Notify me when I am assigned on this board" IM_ASSIGNED "Notify me on automation notify step on this board" AUTOMATION_NOTIFY } "Represents notification settings configuration" type NotificationSetting { "Notification setting kind" kind: String "Description of the notification setting" description: String "Whether this setting is only configurable by admins" is_for_admins_only: Boolean "Whether this setting is not applicable for guest users" is_for_non_guests_only: Boolean "Available notification channels for this setting" channels: [NotificationSettingChannel!]! } "Represents a notification channel configuration" type NotificationSettingChannel { "Notification channel destination: Monday, Email, Slack" name: ChannelType "Whether notifications are enabled for this channel" enabled: Boolean "Whether or not this channel settings is editable" editable_status: ChannelEditableStatus } "A notification." type NotificationV2 { "The unique identifier of the notification." id: ID! "The date and time the notification was created." created_at: Date "The title of the notification." title: String "The text content of the notification." text: String "The users who created the notification." creators: [User!]! "Whether the notification has been read." read: Boolean! "The update that triggered the notification." update: Update "The item that is associated with the notification." item: Item "The board that is associated with the notification." board: Board } "notification settings scope types, the options are account user defaults or user private settings" enum ScopeType { User AccountNewUserDefaults } "The central type in the Monday.com Objects Platform, representing any entity in the system. This unified type can represent instances of boards, docs, dashboards, workflows, and specialized objects. The specific type of an object is determined by its object_type_unique_key." type Object { "The unique identifier of the object. Can be used to reference this specific object in queries and mutations." id: String "The display name of the object. This is what appears in the Monday.com interface." name: String "Optional description of the object, providing additional context about its purpose or contents." description: String "The kind/visibility setting of the object (private, public, share). Determines who can access it." privacy_kind: String "The ID of the folder containing this object, if the object is organized in a folder structure." folder_id: String "Timestamp of when the object was last updated. Format is ISO 8601." updated_at: String "The current state of the object. Determines visibility in the interface." state: String "The ID of the user who created this object. Useful for tracking object origin." creator: String "The ID of the workspace containing this object. Null indicates the object is in the main workspace." workspace_id: String "List of users who are owners of this object. Owners have full control permissions." owners: [User!] "List of users who are subscribers to this object. Subscribers receive notifications about changes." subscribers: [User!] "Relations for this object" relations( "Kind of the relation to fetch. If not provided, all relation kinds are returned." kind: RelationKind, """ Direction of the relation (defaults to "outgoing") """ direction: RelationDirection = OUTGOING): [ObjectRelation!] } "Response for object operations indicating success or failure" type ObjectOperationResponse { "Indicates whether the operation was successful" success: Boolean } "Represents a relation between two objects" type ObjectRelation { "Unique identifier for the relation" id: ID "ID of the source object in the relation" source_object_id: ID "ID of the target object in the relation" target_id: ID "Type of the target object (board or dashboard)" target_object_type: TargetObject "Kind of the relation" kind: String } "Input for creating object relations" input ObjectRelationInput { "Kind of the relation" kind: RelationKind! "ID of the target object" target_id: ID! """ Type of the target object (defaults to "board") """ target_object_type: TargetObject = BOARD } "The state of the object." enum ObjectState { "The object is active." ACTIVE "The object is archived." ARCHIVED "The object is deleted." DELETED } "Represents object type unique key and metadata." type ObjectTypeUniqueKey { "The name of the app that provides this object type." app_name: String "The name of the app feature object type (e.g., 'Workflow', 'Capacity manager')." app_feature_name: String "A short description of what this object type represents." description: String "The unique identifier for the object type, formatted as 'app_slug::app_feature_slug'" object_type_unique_key: String } "Defines the sorting order for returned objects in the objects query." enum OrderBy { "Sort objects by their creation date, from newest to oldest." CREATED_AT "Sort objects by when they were last used, from most recent to least recent." USED_AT } "The direction of the relation from the object perspective" enum RelationDirection { "Relations where the object is the source" OUTGOING "Relations where the object is the target" INCOMING } "The kind/type of relation between objects" enum RelationKind { "Alias relation type" ALIAS "Dependency relation type" DEPENDENCY } "Defines the type of the user's role as members of the object" enum SubscriberKind { "User will be added as an owner of the object, granting them full control permissions." OWNER "User will be added as a subscriber to the object, receiving notifications about changes." SUBSCRIBER } "The type of target object for a relation" enum TargetObject { "Board object type" BOARD "Dashboard object type" DASHBOARD } "Input for updating an object" input UpdateObjectInput { "The new name for the object." name: String "The new description for the object" description: String "The new privacy kind for the object." privacy_kind: PrivacyKind "Optional relations to add to the object" relations: [ObjectRelationInput!] } "API usage data." type DailyAnalytics { "Last time the API usage data was updated." last_updated: ISO8601DateTime "API usage per day." by_day: [PlatformApiDailyAnalyticsByDay!] "API usage per app." by_app: [PlatformApiDailyAnalyticsByApp!] "API usage per user." by_user: [PlatformApiDailyAnalyticsByUser!] } "Platform API daily limit." type DailyLimit { "Base daily limit." base: Int "Total daily limit." total: Int } "The Platform API's data." type PlatformApi { "Platform API daily limit." daily_limit: DailyLimit "API analytics." daily_analytics: DailyAnalytics } "API usage per app." type PlatformApiDailyAnalyticsByApp { "Application." app: AppType "API usage for the app." usage: Int! "API app id" api_app_id: ID! } "API usage per day." type PlatformApiDailyAnalyticsByDay { "Day." day: String! "API usage for the day." usage: Int! } "API usage per user." type PlatformApiDailyAnalyticsByUser { "User." user: User "API usage for the user." usage: Int! } type ConnectProjectResult { "Indicates if the operation was successful." success: Boolean "A message describing the result of the operation." message: String "The ID of the created portfolio item, if successful." portfolio_item_id: String } type CreatePortfolioResult { "The ID of the solution that was created" solution_live_version_id: String "Indicates if the operation was successful." success: Boolean "A message describing the result of the operation." message: String } type AggregateBasicAggregationResult { result: Float } enum AggregateFromElementType { "A single table to select from" TABLE } input AggregateFromTableInput { "Always TABLE or DATA_VIEW" type: AggregateFromElementType! id: ID! } input AggregateGroupByElementInput { column_id: String! limit: Int } type AggregateGroupByResult { "The value of the group by result. Can be an integer, float, string, or boolean." value: JSON } input AggregateQueryInput { "Select elements to return. Each element must have either a function or column property. If selecting a column or transformative function, the element must appear in group by." select: [AggregateSelectElementInput!]! "Source to select from (table or data view)" from: AggregateFromTableInput! "Group by elements" group_by: [AggregateGroupByElementInput!] "ItemsQuery filter and sort. If not provided, all items will be returned." query: ItemsQuery "Max number of results to return" limit: Int } type AggregateQueryResult { results: [AggregateResultSet!] } union AggregateResult = AggregateBasicAggregationResult | AggregateGroupByResult type AggregateResultEntry { alias: String value: AggregateResult } type AggregateResultSet { entries: [AggregateResultEntry!] } input AggregateSelectColumnInput { column_id: String! } input AggregateSelectElementInput { "Type of the selected element" type: AggregateSelectElementType! "Column to select. Required if type is COLUMN. If selecting a column, the element must have a matching group by element with the same column_id or alias, if present." column: AggregateSelectColumnInput "Function to select. Required if type is FUNCTION. If selecting a transformative function, the element must have a matching group by element with the same alias. If selecting an aggregative function, the select element must not have a matching group by element." function: AggregateSelectFunctionInput "Alias for the selected element" as: String! } enum AggregateSelectElementType { "A column to select" COLUMN "A function to select" FUNCTION } input AggregateSelectFunctionInput { "Function to select. Required if type is FUNCTION" function: AggregateSelectFunctionName! params: [AggregateSelectElementInput!] } "Function to select. Required if type is FUNCTION" enum AggregateSelectFunctionName { "No function applied" NONE "Count the number of items" COUNT_ITEMS "Count the number of subitems" COUNT_SUBITEMS "Count the number of values" COUNT "Count the number of distinct values of the items" COUNT_DISTINCT "Count the number of keys in the object" COUNT_KEYS "Sum the values of the items" SUM "Average the values of the items" AVERAGE "Get the median of the values of the items" MEDIAN "Get the minimum value of the items" MIN "Get the maximum value of the items" MAX "Get the minimum and maximum values of the items" MIN_MAX "Check if the value is between two values" BETWEEN "Get the running duration of the items" DURATION_RUNNING "Convert text to uppercase" UPPER "Convert text to lowercase" LOWER "Remove whitespace from text" TRIM "Get the length of the value" LENGTH "Get the first value" FIRST "Get the leftmost characters" LEFT "Flatten nested values" FLATTEN "Conditional case statement" CASE "Check if values are equal" EQUALS "Truncate date to day precision" DATE_TRUNC_DAY "Truncate date to week precision" DATE_TRUNC_WEEK "Truncate date to month precision" DATE_TRUNC_MONTH "Truncate date to quarter precision" DATE_TRUNC_QUARTER "Truncate date to year precision" DATE_TRUNC_YEAR "Extract date component" DATE "Get start date from date range" START_DATE "Get end date from date range" END_DATE "Extract hour from datetime" HOUR "Extract person information" PERSON "Extract ID value" ID "Extract label text" LABEL "Extract color value" COLOR "Extract order value" ORDER "Get raw value without formatting" RAW "Check if status is done" IS_DONE "Extract phone country short name" PHONE_COUNTRY_SHORT_NAME } "A resource from the directory" type DirectoryResource { "The identifier of the directory resource." id: ID! "The name of the directory resource." name: String! "The email address of the directory resource." email: String "The job role of the directory resource." job_role: String "The skills of the directory resource." skills: [String!] "The location of the directory resource." location: String } "Attributes that can be updated on a resource directory entry" enum DirectoryResourceAttribute { "Represents the resource directory job role attribute." JOB_ROLE "Represents the resource directory skills attribute." SKILLS "Represents the resource directory location attribute." LOCATION } "Paginated response containing directory resources and cursor for next page" type DirectoryResourcesResponse { "Response identifier" id: ID! "List of directory resources" resources: [DirectoryResource!]! "Cursor for fetching the next page of results" cursor: String } "Response indicating whether the directory attribute update succeeded" type UpdateDirectoryResourceAttributesResponse { "Indicates whether the batch update completed successfully." success: Boolean! } "Input for enrolling multiple items to a single sequence" input EnrollToSequenceInput { "The ID of the sequence to enroll items to" sequence_id: ID! "The ID of the board containing the items" board_id: ID! "List of item IDs to enroll (maximum 50 items)" item_ids: [ID!]! } "Result of enrolling items to a sequence" type EnrollToSequenceResult { "List of item IDs that were successfully enrolled, including items that were provided and are already enrolled" succeeded_item_ids: [ID!] "List of item IDs that failed to enroll" failed_item_ids: [ID!] } "A sequence that can be used to automate email outreach" type Sequence { "The unique identifier of the sequence" id: ID "The title of the sequence" title: String "The current status of the sequence" status: SequenceStatus "The type of context the sequence is associated with" context_type: SequenceContext "The ID of the context (e.g., board ID) the sequence is associated with" context_id: ID "The ID of the user who owns the sequence" user_id: ID "The number of steps in the sequence" step_count: Int "The total duration of the sequence in seconds" duration: Int "The timestamp when the sequence was created or last updated" created_at: Date "The timestamp when the sequence was created or last updated" updated_at: Date } "The type of context a sequence is associated with" enum SequenceContext { "Sequence is associated with a board" BOARD } "The status of a sequence" enum SequenceStatus { "Sequence is active" ACTIVE "Sequence is inactive" INACTIVE "Sequence is missing required configuration" MISSING_CONFIG "Sequence has been deleted" DELETED } "A monday dev sprint." type Sprint { "monday dev sprint unique identifier" id: ID! "monday dev sprint name" name: String "items associated with the monday dev sprint" items: [Item!] "date at which the monday dev sprint start action was performed, null if the sprint was never started" start_date: Date "date at which the monday dev sprint complete action was performed, null if the sprint was never completed" end_date: Date "user-editable planned timeline for the monday dev sprint, which may differ from its start and complete dates" timeline: SprintTimeline "current state of the monday dev sprint" state: SprintState "snapshots of the monday dev sprint" snapshots( "type of the monday dev sprint snapshot" type: [SprintSnapshotKind!]): [SprintSnapshot!] } "A monday dev sprint snapshot." type SprintSnapshot { "monday dev sprint snapshot unique identifier" id: ID "monday dev sprint snapshot kind" type: SprintSnapshotKind "monday dev sprint snapshot items" items: [SprintSnapshotItem!] "monday dev sprint snapshot columns metadata" columns_metadata: [SprintSnapshotColumnMetadata!] "monday dev sprint unique identifier" sprint_id: ID "date and time when the object was created" created_at: Date "date and time when the object was last updated" updated_at: Date } "A monday dev sprint snapshot column metadata." type SprintSnapshotColumnMetadata { "monday dev sprint snapshot column id" id: String! "monday dev sprint snapshot status column done status indexes" done_status_indexes: [Int!]! } "A monday dev sprint snapshot item." type SprintSnapshotItem { "monday dev sprint item unique identifier" id: ID! "monday dev sprint item column values" column_values: [SprintSnapshotItemColumnValue!] } "A monday dev sprint snapshot item column value." type SprintSnapshotItemColumnValue { "monday dev sprint snapshot item column id" id: String! "monday dev sprint snapshot item column type" type: String! "monday dev sprint snapshot item column value" value: JSON } "The kind of sprint snapshot." enum SprintSnapshotKind { "Sprint start snapshot kind." START "Sprint complete snapshot kind." COMPLETE } "current state of the monday dev sprint." enum SprintState { "sprint is planned and not yet started." PLANNED "sprint is active and in progress." ACTIVE "sprint is completed." COMPLETED } "user-editable planned timeline for the monday dev sprint, which may differ from its start and complete dates" type SprintTimeline { "user-editable start date of the monday dev sprint timeline, may be different than the sprint start date" from: Date "user-editable complete date of the monday dev sprint timeline, may be different than the sprint complete date" to: Date } "A role in the account" type AccountRole { "The ID of the role" id: ID "The name of the role" name: String "The type of the role" roleType: String } "Error that occurred during activation." type ActivateUsersError { "The error message." message: String "The error code." code: ActivateUsersErrorCode "The id of the user that caused the error." user_id: ID } "Error codes for activating users." enum ActivateUsersErrorCode { EXCEEDS_BATCH_LIMIT INVALID_INPUT USER_NOT_FOUND CANNOT_UPDATE_SELF FAILED } "Result of activating users." type ActivateUsersResult { "The users that were activated." activated_users: [User!] "Errors that occurred during activation." errors: [ActivateUsersError!] } "Error that occurred while changing team owners." type AssignTeamOwnersError { "The error message." message: String "The error code." code: AssignTeamOwnersErrorCode "The id of the user that caused the error." user_id: ID } "Error codes that can occur while changing team owners." enum AssignTeamOwnersErrorCode { VIEWERS_OR_GUESTS USER_NOT_MEMBER_OF_TEAM EXCEEDS_BATCH_LIMIT INVALID_INPUT USER_NOT_FOUND CANNOT_UPDATE_SELF FAILED } "Result of changing the team's ownership." type AssignTeamOwnersResult { "The team for which the owners were changed." team: Team "Errors that occurred while changing team owners." errors: [AssignTeamOwnersError!] } "The role of the user." enum BaseRoleName { GUEST VIEW_ONLY MEMBER ADMIN } "Attributes of the team to be created." input CreateTeamAttributesInput { "The team's name." name: String! "Whether the team can contain guest users." is_guest_team: Boolean "The parent team identifier." parent_team_id: ID "The team members. Must not be empty, unless allow_empty_team is set." subscriber_ids: [ID!] } "Options for creating a team." input CreateTeamOptionsInput { "Whether to allow a team without any subscribers." allow_empty_team: Boolean } "Error that occurred during deactivation." type DeactivateUsersError { "The error message." message: String "The error code." code: DeactivateUsersErrorCode "The id of the user that caused the error." user_id: ID } "Error codes for deactivating users." enum DeactivateUsersErrorCode { EXCEEDS_BATCH_LIMIT INVALID_INPUT USER_NOT_FOUND CANNOT_UPDATE_SELF FAILED } "Result of deactivating users." type DeactivateUsersResult { "The users that were deactivated." deactivated_users: [User!] "Errors that occurred during deactivation." errors: [DeactivateUsersError!] } "Error that occurred while inviting users" type InviteUsersError { "The error message." message: String "The error code." code: InviteUsersErrorCode "The email address for the user that caused the error." email: ID } "Error codes that can occur while changing email domain." enum InviteUsersErrorCode { ERROR } "Result of inviting users to the account." type InviteUsersResult { "The users that were successfully invited." invited_users: [User!] "Errors that occurred while inviting users" errors: [InviteUsersError!] } "The product to invite the users to." enum Product { work_management crm dev service whiteboard knowledge forms workflows } "Error that occurred while removing team owners." type RemoveTeamOwnersError { "The error message." message: String "The error code." code: RemoveTeamOwnersErrorCode "The id of the user that caused the error." user_id: ID } "Error codes that can occur while removing team owners." enum RemoveTeamOwnersErrorCode { VIEWERS_OR_GUESTS USER_NOT_MEMBER_OF_TEAM EXCEEDS_BATCH_LIMIT INVALID_INPUT USER_NOT_FOUND CANNOT_UPDATE_SELF FAILED } "Result of removing the team's ownership." type RemoveTeamOwnersResult { "The team for which the owners were removed." team: Team "Errors that occurred while removing team owners." errors: [RemoveTeamOwnersError!] } "Attributes of the email domain to be updated." input UpdateEmailDomainAttributesInput { "The user identifiers (max 200)" user_ids: [ID!]! "The new email domain." new_domain: String! } "Error that occurred while changing email domain." type UpdateEmailDomainError { "The error message." message: String "The error code." code: UpdateEmailDomainErrorCode "The id of the user that caused the error." user_id: ID } "Error codes that can occur while changing email domain." enum UpdateEmailDomainErrorCode { UPDATE_EMAIL_DOMAIN_ERROR EXCEEDS_BATCH_LIMIT INVALID_INPUT USER_NOT_FOUND CANNOT_UPDATE_SELF FAILED } "Result of updating the email domain for the specified users." type UpdateEmailDomainResult { "The users for which the email domain was updated." updated_users: [User!] "Errors that occurred during the update." errors: [UpdateEmailDomainError!] } "Error that occurred while updating users attributes." type UpdateUserAttributesError { "The error message." message: String "The error code." code: UpdateUserAttributesErrorCode "The id of the user that caused the error." user_id: ID } "Error codes that can occur while updating user attributes." enum UpdateUserAttributesErrorCode { INVALID_FIELD } "The result of updating users attributes." type UpdateUserAttributesResult { "The users that were updated." updated_users: [User!] "Errors that occurred during the update." errors: [UpdateUserAttributesError!] } "Error that occurred during updating users role." type UpdateUsersRoleError { "The error message." message: String "The error code." code: UpdateUsersRoleErrorCode "The id of the user that caused the error." user_id: ID } "Error codes for updating users roles." enum UpdateUsersRoleErrorCode { EXCEEDS_BATCH_LIMIT INVALID_INPUT USER_NOT_FOUND CANNOT_UPDATE_SELF FAILED } "Result of updating users role." type UpdateUsersRoleResult { "The users that were updated." updated_users: [User!] "Errors that occurred during updating users role." errors: [UpdateUsersRoleError!] } "The attributes to update for a user." input UserAttributesInput { "The birthday of the user." birthday: String "The email of the user." email: String "The join date of the user." join_date: String "The name of the user." name: String "The location of the user." location: String "The mobile phone of the user." mobile_phone: String "The phone of the user." phone: String "The title of the user." title: String "The department of the user." department: String } "The role of the user." enum UserRole { GUEST VIEW_ONLY MEMBER ADMIN } input UserUpdateInput { user_id: ID! user_attribute_updates: UserAttributesInput! } "Aggregates data from one or more boards." type Dashboard { "Unique identifier of the dashboard." id: ID "Dashboard title (UTF-8 chars)." name: String "ID of the workspace that owns this dashboard." workspace_id: ID "Visibility level: `PUBLIC` (default) or `PRIVATE`." kind: DashboardKind "Folder ID that groups elements inside the workspace (null = workspace root)." board_folder_id: ID } "Dashboard visibility. `PUBLIC` dashboards are visible to all workspace members; `PRIVATE` dashboards are only visible to invited users." enum DashboardKind { PUBLIC PRIVATE } "Widget types available for creating data visualizations and displays" enum ExternalWidget { "Chart widgets for visual data representation including pie charts, bar charts, line graphs, and column charts. Used to display trends, comparisons, distributions, and relationships between data points over time or categories." CHART "Number widgets for displaying numeric metrics such as accumulated sums, averages, counts, totals, percentages. Ideal for showing single-value metrics, counters, calculated aggregations, and key performance indicators in a prominent numeric format." NUMBER "Battery widgets for progress tracking and completion status visualization. Displays progress bars, completion percentages, status indicators, and goal achievement metrics. Perfect for showing project completion, task progress, capacity utilization, and milestone tracking." BATTERY "Calendar widgets for timeline and schedule visualization. Displays date and timeline column data in a traditional calendar format, supporting time slots, color-coded events by board/group/status, and multi-board aggregation. Ideal for project scheduling, deadline tracking, event planning, and time-based workflow visualization." CALENDAR "A Gantt chart visualization of board timelines with dependencies, grouping, and coloring capabilities." GANTT "App feature widgets for displaying custom application features. Used to embed and render app-specific functionality within dashboards and views." APP_FEATURE "ListView widgets for displaying cross-board items in a tabular list format with filtering and sorting." LISTVIEW } "Data visualization object." type Widget { "Unique identifier of this widget." id: ID "Parent container where the widget is placed." parent: WidgetParentOutput "The type of widget (CHART, NUMBER, BATTERY, CALENDAR, GANTT, MAP)." kind: ExternalWidget "Widget label (UTF-8 chars)." name: String } "Parent container input where the widget will be placed." input WidgetParentInput { "The type of parent container (DASHBOARD or BOARD_VIEW)" kind: WidgetParentKind! "The ID of the parent container." id: ID! } "The kind of parent container where the widget will be placed." enum WidgetParentKind { "Widget placed in a dashboard" DASHBOARD "Widget placed in a specific board view" BOARD_VIEW } "Parent container information in widget responses. Indicates where the widget is placed." type WidgetParentOutput { "The type of parent container (DASHBOARD or BOARD_VIEW)" kind: WidgetParentKind "The ID of the parent container." id: ID } "Information about a widget type and its JSON schema" type WidgetSchemaInfo { "The widget kind (e.g., Chart, Number, Battery)" widget_type: ExternalWidget "The JSON schema (draft 7) for this widget type" schema: JSON } input CreateFormTagInput { "The name of the tag. Must be unique within the form and not reserved." name: String! "The value of the tag" value: String } input CreateQuestionInput { """ The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). """ type: FormQuestionType! "Optional explanatory text providing additional context, instructions, or examples for the question." description: String "Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed." visible: Boolean = true "Boolean indicating if the question must be answered before form submission." required: Boolean "Question-specific configuration object that varies by question type." settings: FormQuestionSettingsInput "The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response." title: String! "Array of option objects for choice-based questions (single_select, multi_select). Required for select types." options: [QuestionOptionInput!] } type DehydratedFormResponse { "The board ID connected to the form. Used to store form responses as items." boardId: ID! "The unique identifier token for the form. Required for all form-specific operations." token: String! } input DeleteFormTagInput { "Options for deleting the tag" deleteAssociatedColumn: Boolean } "Object containing accessibility options such as language, alt text, etc." type FormAccessibility { """ Language code for form localization and interface text (e.g., "en", "es", "fr"). """ language: String "Alternative text description for the logo image for accessibility." logoAltText: String } "Accessibility configuration including language and reading direction." input FormAccessibilityInput { """ Language code for form localization and interface text (e.g., "en", "es", "fr"). """ language: String "Alternative text description for the logo image for accessibility." logoAltText: String } type FormAfterSubmissionView { "Text displayed as the title after successful form submission." title: String "Text shown to users after they complete the form." description: String "Object containing redirect configuration after form submission." redirectAfterSubmission: FormRedirectAfterSubmission "Boolean allowing users to submit multiple responses to the same form." allowResubmit: Boolean! "Boolean displaying a success image after form completion." showSuccessImage: Boolean! "Boolean allowing users to modify their submitted responses after submission." allowEditSubmission: Boolean! "Boolean allowing users to view their submitted responses." allowViewSubmission: Boolean! } "Object containing settings for the post-submission user experience." input FormAfterSubmissionViewInput { "Text displayed as the title after successful form submission." title: String "Text shown to users after they complete the form." description: String "Object containing redirect configuration after form submission." redirectAfterSubmission: FormRedirectAfterSubmissionInput "Boolean allowing users to submit multiple responses to the same form." allowResubmit: Boolean "Boolean displaying a success image after form completion." showSuccessImage: Boolean "Boolean allowing users to modify their submitted responses after submission." allowEditSubmission: Boolean "Boolean allowing users to view their submitted responses." allowViewSubmission: Boolean } enum FormAlignment { FullLeft Left Center Right FullRight } "Object containing visual styling including colors, layout, fonts, and branding elements." type FormAppearance { "Boolean hiding monday branding from the form display." hideBranding: Boolean! "Boolean displaying a progress indicator showing form completion progress bar." showProgressBar: Boolean! "Hex color code for the primary theme color used throughout the form." primaryColor: String "Object containing form structure and presentation settings." layout: FormLayout "Object containing background appearance configuration for the form." background: FormBackground "Object containing typography and text styling configuration." text: FormText "Object containing logo display configuration for form branding." logo: FormLogo "Object containing submit button styling and text configuration." submitButton: FormSubmitButton } "Visual styling configuration including colors, layout, and branding." input FormAppearanceInput { "Boolean hiding monday branding from the form display." hideBranding: Boolean "Boolean displaying a progress indicator showing form completion progress bar." showProgressBar: Boolean "Hex color code for the primary theme color used throughout the form." primaryColor: String "Object containing form structure and presentation settings." layout: FormLayoutInput "Object containing background appearance configuration for the form." background: FormBackgroundInput "Object containing typography and text styling configuration." text: FormTextInput "Object containing logo display configuration for form branding." logo: FormLogoInput "Object containing submit button styling and text configuration." submitButton: FormSubmitButtonInput } "Object containing background appearance configuration for the form." type FormBackground { "String specifying background style." type: FormBackgrounds "String containing the background value. The value will depend on the background type. If the background type is color, the value will be a hex color code. If the background type is image, the value will be an image URL." value: String } "Object containing background appearance configuration for the form." input FormBackgroundInput { "String specifying background style." type: FormBackgrounds! "String containing the background value. The value will depend on the background type. If the background type is color, the value will be a hex color code. If the background type is image, the value will be an image URL." value: String } enum FormBackgrounds { Image Color None } type FormCloseDate { "Boolean enabling automatic form closure at a specified date and time." enabled: Boolean! "ISO timestamp when the form will automatically stop accepting responses." date: String } "Object containing automatic form closure configuration." input FormCloseDateInput { "Boolean enabling automatic form closure at a specified date and time." enabled: Boolean "ISO timestamp when the form will automatically stop accepting responses." date: String } enum FormDirection { LtR Rtl } type FormDraftSubmission { "Boolean allowing users to save incomplete responses as drafts." enabled: Boolean! } "Object containing draft saving configuration allowing users to save progress." input FormDraftSubmissionInput { "Boolean allowing users to save incomplete responses as drafts." enabled: Boolean } "Object containing form features including but not limited to password protection, response limits, login requirements, etc." type FormFeatures { "Boolean indicating if the form is restricted to internal users only." isInternal: Boolean! "Boolean enabling reCAPTCHA verification to prevent spam submissions." reCaptchaChallenge: Boolean! "Object containing shortened URL configuration for easy form sharing." shortenedLink: FormShortenedLink "Object containing password protection configuration for the form." password: FormPassword "Object containing draft saving configuration allowing users to save progress." draftSubmission: FormDraftSubmission "Object containing login requirement settings for form access." requireLogin: FormRequireLogin "Object containing response limitation settings to control submission volume." responseLimit: FormResponseLimit "Object containing automatic form closure configuration." closeDate: FormCloseDate "Object containing welcome screen configuration displayed before the form." preSubmissionView: FormPreSubmissionView "Object containing settings for the post-submission user experience." afterSubmissionView: FormAfterSubmissionView "Object containing board settings for response handling." monday: FormMonday } "Form features configuration including security, limits, and access controls." input FormFeaturesInput { "Boolean enabling reCAPTCHA verification to prevent spam submissions." reCaptchaChallenge: Boolean "Object containing draft saving configuration allowing users to save progress." draftSubmission: FormDraftSubmissionInput "Object containing login requirement settings for form access." requireLogin: FormRequireLoginInput "Object containing response limitation settings to control submission volume." responseLimit: FormResponseLimitInput "Object containing automatic form closure configuration." closeDate: FormCloseDateInput "Object containing welcome screen configuration displayed before the form." preSubmissionView: FormPreSubmissionViewInput "Object containing settings for the post-submission user experience." afterSubmissionView: FormAfterSubmissionViewInput "Object containing board settings for response handling." monday: FormMondayInput "Object containing password protection configuration for the form." password: FormPasswordInput } enum FormFontSize { Small Medium Large } "String specifying the form display format. Can be a step by step form or a classic one page form." enum FormFormat { OneByOne Classic } "Object containing form structure and presentation settings." type FormLayout { "String specifying the form display format. Can be a step by step form or a classic one page form." format: FormFormat "String controlling text and content alignment." alignment: FormAlignment "String setting reading direction." direction: FormDirection } "Object containing form structure and presentation settings." input FormLayoutInput { "String specifying the form display format. Can be a step by step form or a classic one page form." format: FormFormat "String controlling text and content alignment." alignment: FormAlignment "String setting reading direction." direction: FormDirection } "Object containing logo display configuration for form branding." type FormLogo { """ String specifying logo placement ("top", "bottom", "header"). """ position: FormLogoPosition "URL pointing to the logo image file for display on the form." url: String """ String specifying logo size ("small", "medium", "large") for the logo that appears on the header of the form. """ size: FormLogoSize } "Object containing logo display configuration for form branding." input FormLogoInput { """ String specifying logo placement ("top", "bottom", "header"). """ position: FormLogoPosition """ String specifying logo size ("small", "medium", "large") for the logo that appears on the header of the form. """ size: FormLogoSize } enum FormLogoPosition { Auto Left Center Right } "Available logo sizes for form branding" enum FormLogoSize { "Small logo size for compact form branding, height of 32px, width will be scaled to maintain aspect ratio" Small "Medium logo size for standard form branding, height of 40px, width will be scaled to maintain aspect ratio" Medium "Large logo size for prominent form branding, height of 72px, width will be scaled to maintain aspect ratio" Large "Extra large logo size for maximum form branding impact, height of 96px, width will be scaled to maintain aspect ratio" ExtraLarge } type FormMonday { "The board group ID where new items from form responses will be created." itemGroupId: String "Boolean adding a name question to the form. This is a special question type that represents the name column from the associated monday board" includeNameQuestion: Boolean! "Boolean adding an update/comment field to the form. This is a special question type that represents the updates from the associated item of the submission on the monday board. " includeUpdateQuestion: Boolean! "Boolean synchronizing form question titles with board column names. When true, the form question titles will be synchronized with the board column names." syncQuestionAndColumnsTitles: Boolean! } "Object containing board settings for response handling." input FormMondayInput { "The board group ID where new items from form responses will be created." itemGroupId: String "Boolean adding a name question to the form. This is a special question type that represents the name column from the associated monday board" includeNameQuestion: Boolean "Boolean adding an update/comment field to the form. This is a special question type that represents the updates from the associated item of the submission on the monday board. " includeUpdateQuestion: Boolean "Boolean synchronizing form question titles with board column names. When true, the form question titles will be synchronized with the board column names." syncQuestionAndColumnsTitles: Boolean } type FormPassword { "Boolean disabling password protection. Can only be updated to false, to enable password protection, use the set_form_password mutation instead." enabled: Boolean! } "Password configuration for the form. Only setting enabled to false is supported. To enable a form to be password protected, please use the set_form_password mutation instead." input FormPasswordInput { "Boolean disabling password protection. Can only be updated to false, to enable password protection, use the set_form_password mutation instead." enabled: Boolean } type FormPreSubmissionView { "Boolean showing a welcome/introduction screen before the form begins." enabled: Boolean! "Text displayed as the title on the welcome screen." title: String "Text providing context or instructions on the welcome screen." description: String "Object containing start button configuration for the welcome screen." startButton: FormStartButton } "Object containing welcome screen configuration displayed before the form." input FormPreSubmissionViewInput { "Boolean showing a welcome/introduction screen before the form begins." enabled: Boolean "Text displayed as the title on the welcome screen." title: String "Text providing context or instructions on the welcome screen." description: String "Object containing start button configuration for the welcome screen." startButton: FormStartButtonInput } type FormQuestion { "The unique identifier for the question. Used to target specific questions within a form." id: String! """ The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). """ type: FormQuestionType "Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed." visible: Boolean! "The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response." title: String! "Optional explanatory text providing additional context, instructions, or examples for the question." description: String "Boolean indicating if the question must be answered before form submission." required: Boolean! settings: FormQuestionSettings options: [FormQuestionOption!] "Conditional logic rules that control when this question is displayed based on other question answers." showIfRules: JSON } type FormQuestionOption { "The display text for individual option choices in select-type questions." label: String! } "Sources for prefilling question values" enum FormQuestionPrefillSources { Account QueryParam } "Display options for select-type questions" enum FormQuestionSelectDisplay { Horizontal Vertical Dropdown } "Ordering options for select question options" enum FormQuestionSelectOrderByOptions { Alphabetical Random Custom } "Question-specific configuration object that varies by question type." type FormQuestionSettings { "Configuration for automatically populating question values from various data sources such as user account information or URL query parameters." prefill: PrefillSettings "Phone questions only: Automatically detect and fill the phone country prefix based on the user's geographic location or browser settings." prefixAutofilled: Boolean "Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users." prefixPredefined: PhonePrefixPredefined "Boolean/checkbox questions only: Whether the checkbox should be checked by default when the form loads." checkedByDefault: Boolean "Date based questions only: Automatically set the current date as the default value when the form loads." defaultCurrentDate: Boolean "Date questions only: Whether to include time selection (hours and minutes) in addition to the date picker. When false, only date selection is available." includeTime: Boolean "Single/Multi Select questions only: Controls how the selection options are visually presented to users." display: FormQuestionSelectDisplay "Single/Multi Select questions only: Determines the ordering of selection options." optionsOrder: FormQuestionSelectOrderByOptions "Location questions only: Automatically detect and fill the user's current location using browser geolocation services, requiring user permission." locationAutofilled: Boolean "Rating questions only: Maximum rating value that users can select." limit: Int "Link/URL questions only: Whether to skip URL format validation, allowing any text input." skipValidation: Boolean } "Question-specific configuration object that varies by question type." input FormQuestionSettingsInput { "Configuration for automatically populating question values from various data sources such as user account information or URL query parameters." prefill: PrefillSettingsInput "Phone questions only: Automatically detect and fill the phone country prefix based on the user's geographic location or browser settings." prefixAutofilled: Boolean "Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users." prefixPredefined: PhonePrefixPredefinedInput "Boolean/checkbox questions only: Whether the checkbox should be checked by default when the form loads." checkedByDefault: Boolean "Date based questions only: Automatically set the current date as the default value when the form loads." defaultCurrentDate: Boolean "Date questions only: Whether to include time selection (hours and minutes) in addition to the date picker. When false, only date selection is available." includeTime: Boolean "Single/Multi Select questions only: Controls how the selection options are visually presented to users." display: FormQuestionSelectDisplay "Single/Multi Select questions only: Determines the ordering of selection options." optionsOrder: FormQuestionSelectOrderByOptions "Multi Select questions only: Limits the number of options a user can select." labelLimitCount: Int "Location questions only: Automatically detect and fill the user's current location using browser geolocation services, requiring user permission." locationAutofilled: Boolean "Link/URL questions only: Whether to skip URL format validation, allowing any text input." skipValidation: Boolean } "The type of the question (ex. text, number, MultiSelect etc.)" enum FormQuestionType { "A yes/no checkbox question." Boolean "A question that links to items on a connected board. Board configuration must be done through the column settings." ConnectedBoards "A country selection question with a searchable dropdown." Country "A date picker question with optional time selection." Date "A date range question allowing start and end date selection." DateRange "An email address input question with format validation." Email "A file upload question for attachments." File "A URL/link input question with optional format validation." Link "A location/address input question with optional geolocation autofill." Location "A multi-line text input question for longer responses." LongText "A multiple-choice question allowing several selections." MultiSelect "A name input question mapped to the item name column on the board." Name "A numeric input question." Number "A people picker question for selecting monday.com users." People "A phone number input question with optional country prefix." Phone "A rating question with a configurable scale." Rating "A single-line text input question." ShortText "A signature capture question for collecting drawn or uploaded signatures." Signature "A single-choice question allowing one selection." SingleSelect "A subitems question that creates sub-items on the board. Sub-items columns must be configured through the board." Subitems "An updates/comments question mapped to the item updates feed." Updates } type FormRedirectAfterSubmission { "Boolean enabling automatic redirect after form completion to a specified URL." enabled: Boolean! "The URL where users will be redirected after successfully submitting the form." redirectUrl: String } "Object containing redirect configuration after form submission." input FormRedirectAfterSubmissionInput { "Boolean enabling automatic redirect after form completion to a specified URL." enabled: Boolean "The URL where users will be redirected after successfully submitting the form." redirectUrl: String } type FormRequireLogin { "Boolean requiring users to be logged in before submitting responses." enabled: Boolean! "Boolean automatically redirecting unauthenticated users to the login page." redirectToLogin: Boolean! } "Object containing login requirement settings for form access." input FormRequireLoginInput { "Boolean requiring users to be logged in before submitting responses." enabled: Boolean "Boolean automatically redirecting unauthenticated users to the login page." redirectToLogin: Boolean } type FormResponseLimit { "Boolean enabling response count limits for the form." enabled: Boolean! "Integer specifying the maximum number of responses allowed." limit: Int } "Object containing response limitation settings to control submission volume." input FormResponseLimitInput { "Boolean enabling response count limits for the form." enabled: Boolean "Integer specifying the maximum number of responses allowed." limit: Int } type FormShortenedLink { "Boolean enabling generation of shortened URLs for the form." enabled: Boolean! "The generated shortened URL for form access. Only available when shortened links are enabled." url: String } type FormStartButton { "Custom text for the button that begins the form experience." text: String } "Object containing start button configuration for the welcome screen." input FormStartButtonInput { "Custom text for the button that begins the form experience." text: String } "Object containing submit button styling and text configuration." type FormSubmitButton { "Custom text displayed on the form submission button." text: String } "Object containing submit button styling and text configuration." input FormSubmitButtonInput { "Custom text displayed on the form submission button." text: String } type FormTag { "The unique identifier for the tag" id: String! "The name of the tag" name: String! "The value of the tag" value: String "The ID of the column this tag is associated with" columnId: String! } "Object containing typography and text styling configuration." type FormText { "String specifying the font family used throughout the form." font: String "Hex color code for the text color in the form." color: String "String or number specifying the base font size for form text." size: FormFontSize } "Object containing typography and text styling configuration." input FormTextInput { "String specifying the font family used throughout the form." font: String "Hex color code for the text color in the form." color: String "String or number specifying the base font size for form text." size: FormFontSize } "Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users." type PhonePrefixPredefined { "Whether a predefined phone prefix is enabled for phone number questions. When true, the specified prefix will be pre-selected." enabled: Boolean! """ The predefined phone country prefix to use as country code in capital letters (e.g., "US", "UK", "IL"). Only used when enabled is true. """ prefix: String } "Phone questions only: Configuration for setting a specific predefined phone country prefix that will be pre-selected for users." input PhonePrefixPredefinedInput { "Whether a predefined phone prefix is enabled for phone number questions. When true, the specified prefix will be pre-selected." enabled: Boolean! """ The predefined phone country prefix to use as country code in capital letters (e.g., "US", "UK", "IL"). Only used when enabled is true. """ prefix: String } "Configuration for automatically populating question values from various data sources such as user account information or URL query parameters." type PrefillSettings { "Whether prefill functionality is enabled for this question. When true, the question will attempt to auto-populate values from the specified source." enabled: Boolean! "The data source to use for prefilling the question value. Check the PrefillSources for available options." source: FormQuestionPrefillSources """ The specific field or parameter name to lookup from the prefill source. For account sources, this would be a user property like "name" or "email". For query parameters, this would be the parameter name that would be set in the URL. """ lookup: String! } "Configuration for automatically populating question values from various data sources such as user account information or URL query parameters." input PrefillSettingsInput { "Whether prefill functionality is enabled for this question. When true, the question will attempt to auto-populate values from the specified source." enabled: Boolean! "The data source to use for prefilling the question value. Check the PrefillSources for available options." source: FormQuestionPrefillSources """ The specific field or parameter name to lookup from the prefill source. For account sources, this would be a user property like "name" or "email". For query parameters, this would be the parameter name that would be set in the URL. """ lookup: String } input QuestionOptionInput { "The display text for the option shown to respondents. Must be at least 1 character long." label: String! } input QuestionOrderInput { "The unique identifier for the question. Used to target specific questions within a form." id: String! } type ResponseForm { "The unique identifier for the form. Auto-generated upon creation." id: Int! "The unique identifier token for the form. Required for all form-specific operations." token: String! "Boolean indicating if the form is currently accepting responses and visible to users." active: Boolean! "The display title shown to users at the top of the form." title: String! "The ID of the user who created and owns this form. Determines permissions." ownerId: Int "Boolean indicating if this form was built using monday’s AI form builder agent." builtWithAI: Boolean! "Optional detailed description explaining the form purpose, displayed below the title." description: String "Array of question objects that make up the form content, in display order." questions: [FormQuestion!] "Boolean indicating if responses are collected without identifying the submitter." isAnonymous: Boolean! "The category or classification of the form for organizational purposes." type: String "Object containing feature toggles and settings like password protection, response limits, etc." features: FormFeatures "Object containing visual styling settings including colors, fonts, layout, and branding." appearance: FormAppearance "Object containing accessibility settings such as language, alt text, and reading direction." accessibility: FormAccessibility "Array of tracking tags for categorization and analytics (e.g., UTM parameters for marketing tracking)." tags: [FormTag!] } "Input type for setting a form password" input SetFormPasswordInput { "The password to set for the form. Must be at least 1 character long." password: String! } input UpdateFormInput { "The title text for the form. Must be at least 1 character long." title: String "Optional description text providing context about the form purpose." description: String "Ordered array of dehydrated questions, object only including each question ID, for reordering. Must include all existing question IDs." questions: [QuestionOrderInput!] } input UpdateFormSettingsInput { "Object containing form features including but not limited to password protection, response limits, login requirements, etc." features: FormFeaturesInput "Object containing visual styling including colors, layout, fonts, and branding elements." appearance: FormAppearanceInput "Object containing accessibility options such as language, alt text, etc." accessibility: FormAccessibilityInput } input UpdateFormTagInput input UpdateQuestionInput { """ The question type determining input behavior and validation (e.g., "text", "email", "single_select", "multi_select"). """ type: FormQuestionType! "Optional explanatory text providing additional context, instructions, or examples for the question." description: String "Boolean controlling question visibility to respondents. Hidden questions remain in form structure but are not displayed." visible: Boolean "Boolean indicating if the question must be answered before form submission." required: Boolean "Question-specific configuration object that varies by question type." settings: FormQuestionSettingsInput "The question text displayed to respondents. Must be at least 1 character long and clearly indicate the expected response." title: String } scalar policy__Policy "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations." type __Schema { description: String "A list of all types supported by this server." types: [__Type!]! "The type that query operations will be rooted at." queryType: __Type! "If this server supports mutation, the type that mutation operations will be rooted at." mutationType: __Type "If this server support subscription, the type that subscription operations will be rooted at." subscriptionType: __Type "A list of all directives supported by this server." directives: [__Directive!]! } """ The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. """ type __Type { kind: __TypeKind! name: String description: String specifiedByURL: String fields(includeDeprecated: Boolean = false): [__Field!] interfaces: [__Type!] possibleTypes: [__Type!] enumValues(includeDeprecated: Boolean = false): [__EnumValue!] inputFields(includeDeprecated: Boolean = false): [__InputValue!] ofType: __Type isOneOf: Boolean } "An enum describing what kind of type a given `__Type` is." enum __TypeKind { "Indicates this type is a scalar." SCALAR "Indicates this type is an object. `fields` and `interfaces` are valid fields." OBJECT "Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields." INTERFACE "Indicates this type is a union. `possibleTypes` is a valid field." UNION "Indicates this type is an enum. `enumValues` is a valid field." ENUM "Indicates this type is an input object. `inputFields` is a valid field." INPUT_OBJECT "Indicates this type is a list. `ofType` is a valid field." LIST "Indicates this type is a non-null. `ofType` is a valid field." NON_NULL } "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type." type __Field { name: String! description: String args(includeDeprecated: Boolean = false): [__InputValue!]! type: __Type! isDeprecated: Boolean! deprecationReason: String } "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value." type __InputValue { name: String! description: String type: __Type! "A GraphQL-formatted string representing the default value for this input value." defaultValue: String isDeprecated: Boolean! deprecationReason: String } "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string." type __EnumValue { name: String! description: String isDeprecated: Boolean! deprecationReason: String } """ A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. """ type __Directive { name: String! description: String isRepeatable: Boolean! locations: [__DirectiveLocation!]! args(includeDeprecated: Boolean = false): [__InputValue!]! } "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies." enum __DirectiveLocation { "Location adjacent to a query operation." QUERY "Location adjacent to a mutation operation." MUTATION "Location adjacent to a subscription operation." SUBSCRIPTION "Location adjacent to a field." FIELD "Location adjacent to a fragment definition." FRAGMENT_DEFINITION "Location adjacent to a fragment spread." FRAGMENT_SPREAD "Location adjacent to an inline fragment." INLINE_FRAGMENT "Location adjacent to a variable definition." VARIABLE_DEFINITION "Location adjacent to a schema definition." SCHEMA "Location adjacent to a scalar definition." SCALAR "Location adjacent to an object type definition." OBJECT "Location adjacent to a field definition." FIELD_DEFINITION "Location adjacent to an argument definition." ARGUMENT_DEFINITION "Location adjacent to an interface definition." INTERFACE "Location adjacent to a union definition." UNION "Location adjacent to an enum definition." ENUM "Location adjacent to an enum value definition." ENUM_VALUE "Location adjacent to an input object type definition." INPUT_OBJECT "Location adjacent to an input object field definition." INPUT_FIELD_DEFINITION } directive @cost( weight: Int! ) on SCALAR | OBJECT | FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM | INPUT_FIELD_DEFINITION directive @listSize( assumedSize: Int slicingArguments: [String!] sizedFields: [String!] requireOneSlicingArgument: Boolean = true ) on FIELD_DEFINITION directive @policy( policies: [[policy__Policy!]!]! ) on SCALAR | OBJECT | FIELD_DEFINITION | INTERFACE | ENUM "Directs the executor to include this field or fragment only when the `if` argument is true." directive @include( "Included when true." if: Boolean! ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT "Directs the executor to skip this field or fragment when the `if` argument is true." directive @skip( "Skipped when true." if: Boolean! ) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT "Marks an element of a GraphQL schema as no longer supported." directive @deprecated( "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/)." reason: String = "No longer supported" ) on FIELD_DEFINITION | ARGUMENT_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION "Exposes a URL that specifies the behavior of this scalar." directive @specifiedBy( "The URL that specifies the behavior of this scalar." url: String! ) on SCALAR "Indicates exactly one field must be supplied and this field must not be `null`." directive @oneOf on INPUT_OBJECT