Learn how to create, read, update, and delete objects using the platform API
Objects are a core component of the platform API that represent a generic item within the monday.com platform. They can represent boards, dashboards, workflows, or other specialized objects.
Queries
Get objects
- Returns an array containing metadata about a collection of objects
- Can only be queried directly at the root; can't be nested within another query
query {
objects(
limit: 4,
state: ACTIVE,
order_by: CREATED_AT
) {
id
name
owners {
id
name
}
}
}{
"data": {
"objects": [
{
"id": "OBJECT_ID_1",
"name": "Object 1",
"owners": [
{
"id": "OWNER_ID_1",
"name": "Owner 1"
}
]
},
{
"id": "OBJECT_ID_2",
"name": "Object 2",
"owners": [
{
"id": "OWNER_ID_2",
"name": "Owner 2"
}
]
},
{
"id": "OBJECT_ID_3",
"name": "Object 3",
"owners": [
{
"id": "OWNER_ID_3",
"name": "Owner 3"
}
]
},
{
"id": "OBJECT_ID_4",
"name": "Object 4",
"owners": [
{
"id": "OWNER_ID_4",
"name": "Owner 4"
}
]
}
]
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}Arguments
| Argument | Type | Description | Enum Values |
|---|---|---|---|
| ids | [ID!] | The unique identifiers of the objects to filter by. | |
| limit | Int | The number of objects to get. The default is 25. | |
| object_type_unique_keys | [String!] | The unique identifier of the object type to filter by. Query object_types_unique_keys to see available types. | |
| order_by | OrderBy | The order in which to return objects. | CREATED_ATUSED_AT |
| privacy_kind | PrivacyKind | The object visibility settings to filter by. | PRIVATEPUBLIC |
| state | ObjectState | The object state to filter by. | ACTIVEARCHIVEDDELETED |
| workspace_ids | [ID!] | The unique identifiers of the workspaces to filter by. |
Fields
| Field | Type | Description |
|---|---|---|
| creator | String | The object's creator. |
| description | String | The object's description. |
| folder_id | String | The unique identifier of the folder that contains the object. |
| id | String | The object's unique identifier. |
| name | String | The object's name. |
| owners | [User!] | The object's owners. |
| privacy_kind | String | The object's visibility settings. |
| state | String | The object's state. |
| subscribers | [User!] | The object's subscribers. |
| updated_at | String | The object's last updated date. |
| workspace_id | String | The unique identifier of the workspace that contains the object. |
| relations | [ObjectRelation!] | Relations for this object (alias or dependency), filterable by kind (ALIAS, DEPENDENCY) and direction (OUTGOING, INCOMING). Only available in versions 2026-04 and later. |
Mutations
Create object
Creates an object. Returns Object.
mutation {
create_object(
name: "New Marketing Campaign"
privacy_kind: PUBLIC
object_type_unique_key: "service::portal-object"
description: "Our Q3 marketing campaign."
folder_id: 9876543210
owner_ids: [12345]
) {
id
name
description
owners {
id
}
}
}{
"data": {
"create_object": {
"id": "1234567890",
"name": "New Marketing Campaign",
"description": "Our Q3 marketing campaign.",
"owners": [
{
"id": "12345"
}
]
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}Arguments
| Argument | Type | Description | Enum Values |
|---|---|---|---|
| description | String | The new object's description. | |
| folder_id | ID | The unique identifier of the folder to create the object in. | |
| name | String! | The new object's name. | |
| object_type_unique_key | String! | The object type's unique identifier. Query object_types_unique_keys to see available types. | |
| owner_ids | [ID!] | The unique identifiers of the new object's owners. | |
| owner_team_ids | [ID!] | The unique identifiers of the new object's team owners. | |
| payload | JSON | The new object's JSON payload. | |
| privacy_kind | PrivacyKind! | The new object's visibility settings. | PRIVATEPUBLIC |
| subscriber_ids | [ID!] | The unique identifiers of the new object's subscribers. | |
| subscriber_team_ids | [ID!] | The unique identifiers of the new object's team subscribers. | |
| workspace_id | ID | The unique identifier of the workspace to create the object in. | |
| relations | [ObjectRelationInput!] | Optional relations to create with the object. Each relation requires kind (ALIAS or DEPENDENCY), target_id, and optionally target_object_type (defaults to BOARD). Only available in versions 2026-04 and later. |
Update object
Updates an object. Returns Object.
mutation {
update_object(
id: "12345678",
input: {
description: "Our Q4 marketing campaign.",
name: "New Marketing Campaign"
privacy_kind: PRIVATE
}
) {
name
description
privacy_kind
}
}{
"data": {
"update_object": {
"name": "New Marketing Campaign",
"description": "Our Q4 marketing campaign.",
"privacy_kind": "private"
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}Arguments
| Argument | Type | Description | Supported Fields |
|---|---|---|---|
| id | String! | The unique identifier of the object to update. | |
| input | UpdateObjectInput! | The updated object's characteristics. | description Stringname Stringprivacy_kind PrivacyKind |
Add subscribers to object
Adds subscribers or owners to an existing object. Returns Object.
mutation {
add_subscribers_to_object(
id: 12345,
user_ids: [1234567890, 9876543210],
kind: SUBSCRIBER
) {
subscribers {
id
name
}
}
}{
"data": {
"add_subscribers_to_object": {
"subscribers": [
{
"id": "1234567890",
"name": "Owner 1"
},
{
"id": "9876543210",
"name": "Owner 2"
},
{
"id": "123459876",
"name": "Owner 3"
}
]
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}Arguments
| Argument | Type | Description | Enum Values |
|---|---|---|---|
| id | ID! | The unique identifier of the object to add subscribers to. | |
| kind | SubscriberKind | The role to assign the subscribers. The default is SUBCRIBER. | OWNER (full control permissions)SUBSCRIBER (notification access only) |
Archive object
Archives an object. Returns Object.
mutation {
archive_object(id: 12345) {
state
name
}
}{
"data": {
"archive_object": {
"state": "archived",
"name": "Object 3"
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}Arguments
| Argument | Type | Description |
|---|---|---|
| id | ID! | The unique identifier of the object to archive. |
Delete object
Permanently deletes any object. Returns Object.
When an object is deleted, there is a 30-day grace period to reverse the action. After those initial 30 days, the object will be permanently deleted and can't be retrieved.
mutation {
delete_object(id: 12345) {
state
name
}
}{
"data": {
"delete_object": {
"state": "deleted",
"name": "Object 4"
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}Arguments
| Argument | Type | Description |
|---|---|---|
| id | ID! | The unique identifier of the object to delete. |
