Learn how to read, create, update, and delete monday.com board views using the platform API
monday.com board views allows you to visualize your board data differently through colors, shapes, and graphs.
Queries
You can retrieve monday.com board view data via the API through the views
query.
- Returns an array containing metadata about a collection of board views
- Can only be nested inside a
boards
query
query {
boards (ids: 1234567890) {
views {
type
settings_str
view_specific_data_str
name
id
}
}
}
import { ApiClient } from "@mondaydotcomorg/api";
const mondayApiClient = new ApiClient({ token: myToken });
const query = `query ($board: [ID!]) { boards (ids: $board) { views { id name type } } }`
const variables = {
board: 1234567
}
const response = await mondayApiClient.request(query, variables);
Arguments
You can use the following argument(s) to reduce the number of results returned in your views
query.
Argument | Description |
---|---|
ids [ID!] | The specific board IDs to return views for. |
type String | The specific type of views to return. |
Fields
You can use the following field(s) to specify what information your views
query will return.
Field | Description | Enum Values |
---|---|---|
access_level BoardViewAccessLevel! | The user's board view access level. | edit view |
filter JSON | The view's filter metadata. Only available in API versions 2025-10 and later. | |
filter_team_id Int | The team ID the view is filtered by. Only available in API versions 2025-10 and later. | |
filter_user_id Int | The user ID the view is filtered by. Only available in API versions 2025-10 and later. | |
id ID! | The view's unique identifier. | |
name String! | The view's name. | |
settings JSON | The view's settings. The structure varies by view type. Only available in API versions 2025-10 and later. | |
settings_str String! | The view's settings. | |
sort JSON | The view's sort metadata. Only available in API versions 2025-10 and later. | |
source_view_id ID | The unique identifier of the original view this was duplicated from (if applicable). | |
tags [String!] | The view's tags. Only available in API versions 2025-10 and later. | |
type String! | The view's type. | |
view_specific_data_str String! | Specific board view data (only supported for forms). |
Mutations
The API allows you to create, update, and delete board views using the following mutations. These operations let you programmatically control a view's full lifecycle.
Create view
Required scope: boards:write
The create_view
mutation creates a new board view via the platform API. You can also specify what fields to query back from the tag when you run the mutation.
mutation {
create_view (
board_id: 1234567890
type: APP
name: "My app view"
settings: {
app_feature_id: 54321
}
) {
id
name
}
}
{
"data": {
"create_view": {
"id": "9876543210",
"name": "My app view"
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}
Arguments
You can use the following arguments to define the new board view's characteristics.
Argument | Description | Supported Fields |
---|---|---|
board_id ID! | The board's unique identifier. | |
filter ItemsQueryGroup | The view's filters. | groups [ItemsQueryGroup!] operator ItemsQueryOperator rules [ItemsQueryRule!] |
filter_user_id ID | The user ID to filter by. | |
filter_team_id ID | The team ID to filter by. | |
name String | The view's name. | |
settings JSON | The view's type-specific configuration settings. Query get_view_schema_by_type to see available properties. | |
sort [ItemsQueryOrderBy!] | The view's sort order. | |
tags [String!] | The view's tags. | |
type ViewKind! | The type of view to create: APP , DASHBOARD , FORM , or TABLE . |
Create view table
Required scope: boards:write
The create_view_table
mutation creates a new table board view via the platform API. You can also specify what fields to query back from the tag when you run the mutation.
mutation {
create_view_table (
board_id: 1234567890
name: "My new table view"
) {
id
name
}
}
{
"data": {
"create_view_table": {
"id": "9876543210",
"name": "My new table view"
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}
Arguments
You can use the following arguments to define the new table board view's characteristics.
Argument | Description | Supported fields |
---|---|---|
board_id ID! | The board's unique identifier. | |
filter ItemsQueryGroup | The table view's filters. | groups [ItemsQueryGroup!] operator ItemsQueryOperator rules [ItemsQueryRule!] |
filter_user_id ID | The user ID to filter by. | |
filter_team_id ID | The team ID to filter by. | |
name String | The table view's name. | |
settings TableViewSettingsInput | The table view's configuration settings. | columns ColumnsConfigInput group_by GroupBySettingsInput |
sort [ItemsQueryOrderBy!] | The table view's sort order. | column_id String! direction ItemsOrderByDirection |
tags [String!] | The table view's tags. |
Update view
Required scope: boards:write
The update_view
mutation updates a board view via the platform API. You can also specify what fields to query back from the tag when you run the mutation.
mutation {
update_view (
board_id: 1234567890
view_id: 54321
sort: {
column_id: "name"
direction: asc
}
type:TABLE
) {
id
sort
}
}
{
"data": {
"update_view": {
"id": "54321",
"sort": [
{
"column_id": "name",
"direction": "ASC"
}
]
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}
Arguments
You can use the following arguments to define the update board view's characteristics.
Argument | Description | Supported fields |
---|---|---|
board_id ID! | The board's unique identifier. | |
filter ItemsQueryGroup | The view's filters. | groups [ItemsQueryGroup!] operator ItemsQueryOperator rules [ItemsQueryRule!] |
filter_user_id ID | The user ID to filter by. | |
filter_team_id ID | The team ID to filter by. | |
name String | The view's name. | |
settings JSON | The view's type-specific configuration settings. Query get_view_schema_by_type to see available properties. | |
sort [ItemsQueryOrderBy!] | The view's sort order. | column_id String! direction ItemsOrderByDirection |
tags [String!] | The view's tags. | |
type ViewKind! | The type of view to create: APP , DASHBOARD , FORM , or TABLE . | |
view_id ID! | The view's unique identifier. |
Update view table
Required scope: boards:write
The update_view_table
mutation updates a table board view via the platform API. You can also specify what fields to query back from the tag when you run the mutation.
mutation {
update_view_table(
board_id: 1234567890
view_id: 54321
settings: {
columns:{
column_properties:{
column_id:"date",
visible: false
}
}
}
) {
id
sort
}
}
Arguments
You can use the following argument(s) to define the updated table board view's characteristics.
Argument | Description | Supported fields |
---|---|---|
board_id ID! | The board's unique identifier. | |
filter ItemsQueryGroup | The table view's filters. | groups [ItemsQueryGroup!] operator ItemsQueryOperator rules [ItemsQueryRule!] |
filter_user_id ID | The user ID to filter by. | |
filter_team_id ID | The team ID to filter by. | |
name String | The table view's name. | |
settings TableViewSettingsInput | The table view's configuration settings. | columns ColumnsConfigInput group_by GroupBySettingsInput |
sort [ItemsQueryOrderBy!] | The table view's sort order. | column_id String! direction ItemsOrderByDirection |
tags [String!] | The table view's tags. | |
view_id ID! | The view's unique identifier. |
Delete view
Required scope: boards:write
The delete_view
mutation deletes a board view via the platform API. You can also specify what fields to query back from the tag when you run the mutation.
mutation {
delete_view (
board_id: 1234567890
view_id: 54321
) {
name
}
}
{
"data": {
"delete_view": {
"name": "Deleted Form"
}
},
"extensions": {
"request_id": "YOUR_REQUEST_ID"
}
}
Arguments
You can use the following arguments to specify which board view to delete.
Argument | Description |
---|---|
board_id ID! | The board's unique identifier. |
view_id ID! | The view's unique identifier. |