Board
Access and manage boards via the client.board resource.
Methods
query
Retrieves boards from your account.
client.board.query(args: {}, select: DEFAULT_SELECT)
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args |
Hash | {} |
Query arguments (see boards query) |
select |
Array | ["id", "name", "description"] |
Fields to retrieve |
Returns: Monday::Response
Common args:
ids- Array of board IDslimit- Number of results (default: 25)page- Page numberstate-:active,:archived,:deleted, or:allboard_kind-:public,:private, or:shareworkspace_ids- Array of workspace IDsorder_by-:created_ator:used_at
Example:
response = client.board.query(
args: { ids: [123, 456], state: :active },
select: ["id", "name", "url"]
)
boards = response.body.dig("data", "boards")
GraphQL: query { boards { ... } }
create
Creates a new board.
client.board.create(args: {}, select: DEFAULT_SELECT)
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args |
Hash | {} |
Creation arguments (required) |
select |
Array | ["id", "name", "description"] |
Fields to retrieve |
Required args:
board_name- Stringboard_kind- Symbol (:public,:private, or:share)
Optional args:
description- Stringworkspace_id- Integerfolder_id- Integertemplate_id- Integer
Returns: Monday::Response
Example:
response = client.board.create(
args: {
board_name: "New Board",
board_kind: :public
}
)
board = response.body.dig("data", "create_board")
GraphQL: mutation { create_board { ... } }
update
Updates a board’s attributes.
client.board.update(args: {})
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args |
Hash | {} |
Update arguments (required) |
Required args:
board_id- Integerboard_attribute- Symbol (:name,:description, or:communication)new_value- String
Returns: Monday::Response
The response body contains a JSON string at response.body["data"]["update_board"] that must be parsed:
result = JSON.parse(response.body["data"]["update_board"])
# => { "success" => true, "undo_data" => "..." }
Example:
response = client.board.update(
args: {
board_id: 123,
board_attribute: :name,
new_value: "Updated Name"
}
)
result = JSON.parse(response.body["data"]["update_board"])
GraphQL: mutation { update_board { ... } }
duplicate
Duplicates an existing board.
client.board.duplicate(args: {}, select: DEFAULT_SELECT)
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
args |
Hash | {} |
Duplication arguments (required) |
select |
Array | ["id", "name", "description"] |
Fields to retrieve |
Required args:
board_id- Integerduplicate_type- Symbol
Duplicate types:
:duplicate_board_with_structure- Structure only:duplicate_board_with_pulses- Structure + items:duplicate_board_with_pulses_and_updates- Structure + items + updates
Optional args:
board_name- Stringworkspace_id- Integerfolder_id- Integerkeep_subscribers- Boolean
Returns: Monday::Response
The duplicated board is nested under board:
board = response.body.dig("data", "duplicate_board", "board")
Example:
response = client.board.duplicate(
args: {
board_id: 123,
duplicate_type: :duplicate_board_with_structure
}
)
board = response.body.dig("data", "duplicate_board", "board")
GraphQL: mutation { duplicate_board { board { ... } } }
See: monday.com duplicate_board
archive
Archives a board.
client.board.archive(board_id, select: ["id"])
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
board_id |
Integer | - | Board ID to archive (required) |
select |
Array | ["id"] |
Fields to retrieve |
Returns: Monday::Response
Example:
response = client.board.archive(123)
board = response.body.dig("data", "archive_board")
GraphQL: mutation { archive_board { ... } }
delete
Permanently deletes a board.
client.board.delete(board_id, select: ["id"])
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
board_id |
Integer | - | Board ID to delete (required) |
select |
Array | ["id"] |
Fields to retrieve |
Returns: Monday::Response
This operation cannot be undone. All board data will be permanently lost.
Example:
response = client.board.delete(123)
board = response.body.dig("data", "delete_board")
GraphQL: mutation { delete_board { ... } }
items_page
Retrieves paginated items from a board using cursor-based pagination.
client.board.items_page(
board_ids:,
limit: 25,
cursor: nil,
query_params: nil,
select: DEFAULT_PAGINATED_SELECT
)
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
board_ids |
Integer or Array | - | Board ID(s) to query (required) |
limit |
Integer | 25 |
Items per page (max: 500) |
cursor |
String | nil |
Pagination cursor |
query_params |
Hash | nil |
Query filters with rules and operators |
select |
Array | ["id", "name"] |
Item fields to retrieve |
Returns: Monday::Response
The response contains items and cursor:
items_page = response.body.dig("data", "boards", 0, "items_page")
items = items_page["items"]
cursor = items_page["cursor"]
Example:
# First page
response = client.board.items_page(
board_ids: 123,
limit: 50
)
items_page = response.body.dig("data", "boards", 0, "items_page")
cursor = items_page["cursor"]
# Next page
response = client.board.items_page(
board_ids: 123,
cursor: cursor
)
GraphQL: query { boards { items_page { ... } } }
See:
delete_subscribers
This method is deprecated and will be removed in v2.0.0. Use client.user.delete_from_board instead.
Deletes subscribers from a board.
client.board.delete_subscribers(board_id, user_ids, select: ["id"])
Parameters:
| Name | Type | Default | Description | |
|---|---|---|---|---|
board_id |
Integer | - | Board ID (required) | |
user_ids |
Integer[] | - | User IDs to remove (required) | |
select |
Array | ["id"] |
Fields to retrieve | –> |
Returns: Monday::Response
GraphQL: mutation { delete_subscribers_from_board { ... } }
Response Structure
All methods return a Monday::Response object. Access data using:
response.success? # => true/false
response.status # => 200
response.body # => Hash with GraphQL response
Typical Response Pattern
response = client.board.query(args: { ids: [123] })
if response.success?
boards = response.body.dig("data", "boards")
# Work with boards
else
# Handle error
end
Constants
DEFAULT_SELECT
Default fields returned by query, create, and duplicate:
DEFAULT_PAGINATED_SELECT
Default fields returned by items_page:
Error Handling
See the Error Handling guide for common errors and how to handle them.
External References
Was this page helpful?
Thanks for your feedback!