Object Schemas

Learn how to read, create, update, and delete object schemas, manage their columns, and connect boards using the platform API

Object schemas define the column structure that can be applied consistently across multiple boards in your monday.com account. Each schema has a unique name, optional description, and a set of typed columns with configurable policies that control which properties boards can override. Boards can be connected to an object schema to inherit its column definitions.

🚧

Only available in API versions 2026-07 and later

Queries

Get object schemas

  • Required permission: manage_account_data_entities
  • Returns an array containing one or a collection of account object schemas
  • Can only be queried directly at the root; can't be nested within another query
query {
  get_object_schemas(limit: 10, page: 1) {
    id
    name
    description
    revision
    columns {
      id
      title
      type
    }
    connected_boards_count
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
exclude_created_by_mondayBooleanWhen true, returns only object schemas created by users in this account, excluding the default schemas seeded by monday.com. When combined with ids or names, only results satisfying both conditions are returned.
ids[ID]A list of object schema IDs to filter by. Cannot be combined with names.
limitIntThe number of object schemas to return per page. The default is 25 and the maximum is 100.
names[String]A list of object schema names to filter by. Names are unique identifiers. Cannot be combined with ids.
pageIntThe page number to retrieve. Pages are 1-indexed. The default is 1.

Fields

FieldTypeDescriptionSupported Subfields
account_idID!The unique identifier of the account the object schema belongs to.
columns[ObjectSchemaColumn!]!The columns defined in this object schema.id title type description settings policy tags
connected_boards_countInt!The number of boards currently connected to this object schema.
created_atDateTime!The date and time the object schema was created.
created_byID!The unique identifier of the user who created the object schema.
descriptionStringThe object schema's description. Returns null if no description is set.
idID!The object schema's unique identifier.
nameStringThe object schema's unique name (slug). Used as an identifier in mutations.
parent_idIDThe unique identifier of the parent object schema. Returns null if the schema has no parent.
revisionInt!The current revision number. Used for optimistic locking when updating the schema.
updated_atDateTime!The date and time the object schema was last updated.

Mutations

  • Required permission: manage_account_data_entities

Create object schema

Creates a new account object schema. Returns ObjectSchema.

mutation {
  create_object_schema(
    name: "project_tracker"
    description: "Standard columns for all project boards"
  ) {
    id
    name
    description
    revision
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
descriptionStringThe object schema's description.
nameString!A unique human-readable name for the object schema. Must be 3–15 characters, contain at least one letter, and use only lowercase letters, numbers, and underscores (e.g. my_schema).
parent_idIDThe unique identifier of a parent object schema.

Update object schema

Updates an existing account object schema. Returns ObjectSchema.

mutation {
  update_object_schema(
    id: "1234567890"
    revision: 1
    description: "Updated description for project boards"
  ) {
    id
    name
    description
    revision
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
descriptionStringThe updated description for the object schema.
idID!The unique identifier of the object schema to update.
parent_idIDThe unique identifier of a new parent object schema.
revisionInt!The current revision number of the object schema. Used for optimistic locking to prevent conflicting updates.

Delete object schema

Deletes an account object schema. Returns ObjectSchema. The schema can only be deleted if no boards are connected to it.

mutation {
  delete_object_schema(id: "1234567890") {
    id
    name
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
idIDThe unique identifier of the object schema to delete. Either id or name must be provided.
nameStringThe name of the object schema to delete. Either id or name must be provided.

Create object schema columns

Creates one or more columns on an account object schema. Returns ObjectSchema.

mutation {
  create_object_schema_columns(
    object_schema_id: "1234567890"
    columns: [
      {
        type: status
        title: "Project Status"
        description: "Current phase of the project"
        opt_out_by_default: false
        policy: { can_override: [title, description], cannot_delete: false }
      }
    ]
  ) {
    id
    columns {
      id
      title
      type
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
columns[CreateObjectSchemaColumnInput!]!An array of column definitions to create on the object schema.
object_schema_idIDThe unique identifier of the object schema. Either object_schema_id or object_schema_name must be provided.
object_schema_nameStringThe name of the object schema. Either object_schema_id or object_schema_name must be provided.

Update object schema columns

Updates one or more columns on an account object schema. Returns ObjectSchema.

mutation {
  update_object_schema_columns(
    object_schema_id: "1234567890"
    columns: [
      {
        column_id: "9876543210"
        title: "Updated Status"
        description: "Updated phase tracking column"
      }
    ]
  ) {
    id
    columns {
      id
      title
      description
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
columns[UpdateObjectSchemaColumnInput!]!An array of column updates to apply to the object schema.
object_schema_idIDThe unique identifier of the object schema. Either object_schema_id or object_schema_name must be provided.
object_schema_nameStringThe name of the object schema. Either object_schema_id or object_schema_name must be provided.

Delete object schema columns

Deletes columns from an account object schema. Returns ObjectSchema. Columns can only be deleted when no boards are connected to the object schema.

🚧

Only available in API version dev(experimental)

mutation {
  delete_object_schema_columns(
    object_schema_id: "1234567890"
    column_ids: ["9876543210", "1122334455"]
  ) {
    id
    columns {
      id
      title
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
column_ids[ID!]!An array of column IDs to delete from the object schema.
object_schema_idIDThe unique identifier of the object schema. Either object_schema_id or object_schema_name must be provided.
object_schema_nameStringThe name of the object schema. Either object_schema_id or object_schema_name must be provided.

Set object schema column active state

Deactivates or reactivates a column on an account object schema. Returns ObjectSchema. Use DEACTIVATE to deprecate a column and REACTIVATE to restore it.

mutation {
  set_object_schema_column_active_state(
    object_schema_id: "1234567890"
    column_id: "9876543210"
    action: DEACTIVATE
  ) {
    id
    columns {
      id
      title
      tags {
        deprecated
      }
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
actionColumnActiveStateAction!The action to perform on the column.DEACTIVATE (deprecate the column)
REACTIVATE (restore a deprecated column)
column_idID!The unique identifier of the column to deactivate or reactivate.
object_schema_idIDThe unique identifier of the object schema. Either object_schema_id or object_schema_name must be provided.
object_schema_nameStringThe name of the object schema. Either object_schema_id or object_schema_name must be provided.

Bulk object schema column actions

Executes multiple column actions on an account object schema in a single request. Returns [ObjectSchemaActionResult]. Actions are executed sequentially in the order provided; if any action fails, execution stops and an error is returned. Each action type may appear at most once per request.

mutation {
  bulk_object_schema_column_actions(
    object_schema_id: "1234567890"
    actions: [
      {
        action: CREATE_OBJECT_SCHEMA_COLUMNS
        create_object_schema_columns: {
          columns: [
            {
              type: text
              title: "Notes"
              policy: { can_override: [title, description], cannot_delete: false }
            }
          ]
        }
      },
      {
        action: UPDATE_OBJECT_SCHEMA_COLUMNS
        update_object_schema_columns: {
          columns: [
            {
              column_id: "9876543210"
              title: "Updated Status"
            }
          ]
        }
      }
    ]
  ) {
    action
    object_schema {
      id
      columns {
        id
        title
      }
    }
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
actions[ObjectSchemaActionInput!]!An array of actions to execute sequentially on the object schema's columns.
object_schema_idIDThe unique identifier of the object schema. Either object_schema_id or object_schema_name must be provided.
object_schema_nameStringThe name of the object schema. Either object_schema_id or object_schema_name must be provided.

Connect board to object schema

Connects a board to an object schema, making the board inherit the schema's column definitions. Returns BoardConnection.

mutation {
  connect_board_to_object_schema(
    board_id: "1234567890"
    object_schema_id: "9876543210"
  ) {
    id
    object_schema_id
  }
}

Arguments

ArgumentTypeDescriptionEnum Values
board_idID!The unique identifier of the board to connect to the object schema.
object_schema_idIDThe unique identifier of the object schema. Either object_schema_id or object_schema_name must be provided.
object_schema_nameStringThe name of the object schema. Either object_schema_id or object_schema_name must be provided.

Detach boards from object schema

Detaches one or more boards from their object schemas. Returns [BulkDetachBoardResult].

mutation {
  detach_boards_from_object_schema(
    board_ids: ["1234567890", "9876543210"]
  ) {
    board_id
    success
    error
  }
}

Arguments

ArgumentTypeDescription
board_ids[ID!]!An array of board IDs to detach from their object schemas.